agentsclimarketplace

Plugin builder

Skill GerardoRdz96/aios-starter-kit/.claude/skills/plugin-builder

Use when the user asks to build, package, bundle, optimize, or audit a Claude Code plugin or marketplace — a distributable bundle of skills + agents + commands + hooks installed via `/plugin`. Triggers — "build a plugin", "package this as a plugin", "bundle my skills", "make a marketplace", "turn these skills into something shareable", or `/plugin-builder`. The packaging + distribution sibling of `/skill-builder`, `/agent-builder`, `/agents-team-builder`, `/routines-builder`, `/hooks-builder`, `/workflow-builder`. Runs a decision gate and Discovery Interview before writing files.From its SKILL.md

Install
npx -y skills add GerardoRdz96/aios-starter-kit --skill plugin-builder

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 7 commands, including `claude plugin new <name>` and 6 more.

SKILL.md

6.5 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

What This Skill Does

Guides creating, optimizing, and auditing Claude Code plugins and marketplaces. A plugin is a single installable package bundling any mix of commands, agents, skills, and hooks, distributed through a marketplace and installed with claude plugin install.

The six primitive builders each make one loose capability in .claude/. This one bundles capabilities and makes them shippable — to teammates, the public, or your own other machines. Build primitives with their builders first; package here.

Plugin vs the primitive builders

You want…UseWhy
One reusable workflow/SOP hereSkill (/skill-builder)Lives loose in .claude/skills/
One isolated-context delegate jobAgent (/agent-builder)Lives loose in .claude/agents/
A small crew working in parallelTeam (/agents-team-builder)Lives loose in .claude/teams/
Something unattended on a scheduleRoutine (/routines-builder)Scheduled, runs as you
An event-driven local triggerHooks (/hooks-builder)Lives in settings.json hooks; bundleable into a plugin
Width fan-out to N parallel agentsWorkflow (/workflow-builder)Lives loose in .claude/workflows/
To bundle + version + ship any mix of the abovePlugin (this skill)Distribution is the whole point

Mode 1: Build / Package a Plugin

Step 0 — Decision Gate (FIRST, before any interview)

  1. Real distribution need? Will this leave the project — a teammate, the public, another machine? No → don't build a plugin. A plugin you never distribute is just overhead.
  2. More than a single trivial primitive? One tiny skill used only here doesn't need a package.
  3. Confidentiality gate (hard). A plugin is built to leave the machine. If the bundle would contain employer-confidential content, client IP, or anything you're not free to publish → stop. Shipped plugins are personal- or public-data only.
  4. MCP check. If the plugin wraps an external tool, prefer a CLI-backed skill/command over an MCP server (CLI > API > MCP — MCP burns far more tokens). Keep MCP only with a reason.

If 1–2 don't justify a plugin, recommend the right primitive builder and stop.

Step 1 — Discovery Interview (one round at a time; skip rounds already answered)

  1. Purpose & name — what it delivers, who installs it. Name: lowercase-hyphens; it becomes plugin install <name> and namespaces every component.
  2. The bundle — which existing skills/agents/commands get packaged (copied in), which are new.
  3. Distribution — local test only → this-repo-as-marketplace → standalone public repo. Starting version (default 0.1.0).
  4. Manifest & guardrails — author, license (MIT default for public), keywords; re-confirm the confidentiality gate; secrets come from env at runtime, never committed.
  5. Confirmation — summarize the whole plan back; build only after a yes.

Step 2 — Build

(claude plugin new <name> can scaffold the skeleton for you, then fill it in.)

Scaffold under plugins/<name>/:

plugins/<name>/
├── .claude-plugin/
│   ├── plugin.json          ← manifest (name, version, description, author, keywords)
│   └── marketplace.json     ← required to install via a marketplace; lives in the dir you run `marketplace add` against ("source": "./")
├── skills/<skill>/SKILL.md  ← components live at the plugin ROOT, not in .claude-plugin/
├── agents/<agent>.md
├── commands/<cmd>.md
└── README.md                ← what it does, install line, components, quick start
  • Components at the ROOT — the #1 structural mistake is putting them inside .claude-plugin/.
  • No hardcoded paths — use ${CLAUDE_PLUGIN_ROOT} in every hook/script reference.
  • Minimal manifest: name, version, description, author, keywords. Nothing unused.
  • Minimal marketplace.json (one entry per plugin in the repo):
{ "name": "<market>", "owner": { "name": "..." }, "plugins": [ { "name": "<plugin>", "source": "./", "description": "what the plugin does" } ] }

source is the path to the plugin dir relative to the marketplace root — use "./" only when the plugin IS the repo root; otherwise point at it (e.g. "./plugins/<name>").

Step 3 — Validate (don't skip)

claude plugin validate ./plugins/<name>/.claude-plugin/plugin.json
claude plugin validate --strict ./plugins/<name>/.claude-plugin/plugin.json   # fail on warnings before shipping (use in CI)
claude plugin marketplace add ./plugins/<name> --scope local   # the dir holding .claude-plugin/marketplace.json (use "./" only if the plugin IS the repo root)
claude plugin install <name>@<marketplace> --scope local
claude plugin details <name>                       # inventory + token cost
# exercise each component, then tear down:
claude plugin uninstall <name> --scope local && claude plugin marketplace remove <marketplace>

Report exactly what ran and what passed. Don't claim it works without validate + a local install.

Step 4 — Document & Register

Update CLAUDE.md (one line) the same session; note durable facts in the wiki; log the decision if it was one.

Mode 2: Optimize / Mode 3: Audit

Read the plugin's plugin.json + tree first — never optimize what you haven't read. Checklist: components at the root (not in .claude-plugin/) · manifest minimal, semver matches the marketplace entry · ${CLAUDE_PLUGIN_ROOT} everywhere (no absolute paths) · claude plugin validate passes on both manifests · no secrets committed · nothing confidential in a public bundle · README present. Show the diff and the why per change before applying. For a review of a plugin you just built, route to a different-lineage model (No-Self-Review Law in multi-brain).

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.