plugin-builder
Skill0 starsChanged 6 days agoApache-2.0View on GitHub
Assemble, validate, release, and migrate Claude Code plugins and plugin marketplaces: scaffold a plugin repo to the house GitHub standard, run offline preflight + claude plugin validate, ship releases (version bump, changelog, tag, GitHub Release, recipient update path), and migrate legacy repos into a consolidated marketplace. TRIGGER when: user says "создай плагин", "собери плагин", "упакуй в плагин", "новый маркетплейс", "провали дируй плагин", "проверь плагин", "зарелизь плагин", "выпусти версию плагина", "обнови маркетплейс", "перенеси плагин", "мигрируй репо", "упакуй мод", "make a plugin", "package as a plugin", "package a mod", "validate plugin", "release the plugin", "publish plugin version", "plugin marketplace", "migrate plugin repo", "plugin builder". DO NOT TRIGGER when: creating or improving a SKILL itself — its content, description, evals, benchmarks (use skill-builder; this skill packages finished work), writing a mod's code (Claude Code's built-in plugin-authoring skill), general git/GitHub work unrelated to plugins (use /github), installing third-party plugins for daily use (use /plugin).
- Commits and pushes
5 other projects use a version of this.
Adopted by
Most recently taken up by
- vi0let-dev/plugin-buildertheir own version, first seen Oct 25, 2026
- pobsteta/aigoratheir own version, first seen Oct 2, 2026
- GerardoRdz96/claude-skillstheir own version, first seen Jul 13, 2026
- vellum-ai/vellum-assistanttheir own version, first seen Jul 8, 2026
- GerardoRdz96/aios-starter-kittheir own version, first seen Jul 1, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- vellum-ai/vellum-assistant★ 1.5ksame name
- GerardoRdz96/aios-starter-kit★ 3same name
- GerardoRdz96/claude-skills★ 0same name
- pobsteta/aigora★ 0same name
- vi0let-dev/plugin-builder★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 99
Run Validate mode. Then suggest Release mode for the first tag.
- Very specific: line 125
Follow references/release-checklist.md top to bottom.
- Distinctive: line 149
Never break existing installs silently: keep the old marketplace readable until recipients are notified.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
plugin-builder — assemble, validate, release, migrate
Companion to skill-builder: that one authors skills; this one packages finished work into plugins/marketplaces and operates their lifecycle. Orchestration is inline — git/gh operations are sequential and state-heavy; no subagents in v1.
Ground rules (read before ANY mode)
- Never edit
~/.claude/plugins/marketplaces/<name>/. The background refresh resets it (wipes edits AND local branches; anyclaudestart — headless included — can trigger it). Work in a dev clone (~/<repo-name>), push branches early, run/plugin-operations only after push. Details: references/pitfalls.md §1. - Canon validation is
claude plugin validate—scripts/preflight_plugin.pyis an offline house-standard guardrail on top, never a replacement. - House standard (semver, $schema, LICENSE, CI, tags, README auto-update block) lives in references/repo-standard.md — every mode targets it.
- Facts about manifests/components/marketplaces: do not answer from memory — open the matching reference (below) or the official docs mirror.
| Question about… | Reference |
| which component fits (skill, agent, hook, mod, MCP, output style, monitor, …) | references/components.md §0 |
| plugin.json schema, userConfig, dependencies, path vars | references/manifest-reference.md |
| component types and their limits (skills/agents/hooks/MCP/LSP/…) | references/components.md |
mods: modules, types, claude plugin test, security, org distribution | references/mods.md |
| MCP server as a shared daemon (patterns U / L / C), MCP preflight checks | references/mcp-patterns.md |
| marketplace.json, 7 source types, hosting, managed limits, renames | references/marketplace-ops.md |
| shipping a version, validate matrix, tags, CI | references/release-checklist.md |
| field-tested traps (autoUpdate wipe, MCP prefixes, caches…) | references/pitfalls.md |
| repo layout norms, CI recipe, preflight invariants | references/repo-standard.md |
Mode routing
| User intent | Mode |
| "создай/собери/упакуй плагин", new marketplace, scaffold | Assemble |
| "проверь/провалидируй", pre-release check, CI failed | Validate |
| "зарелизь/выпусти/обнови у получателей", version bump | Release |
| "перенеси/мигрируй/консолидируй" legacy repo | Migrate |
Ambiguous → ask one question with the four options.
Assemble
Goal: existing work (skills/hooks/MCP/agents) → a repo matching repo-standard.md.
- Interview (short): what components (pick with components.md §0 — a mod
only for UI, no-turn commands or event rewriting; it needs Claude Code
≥ 2.1.287 and fails open); one plugin or a family (monorepo
plugins/<name>/is the default — repo-standard.md §layout); new repo or an entry in an existing marketplace; public/private. - Scaffold:
.claude-plugin/marketplace.json(+$schema, owner, sortedplugins[]), per-plugin.claude-plugin/plugin.json($schema, name,version: 1.0.0, description 10–2000 chars, license), LICENSE, README with the install line and the auto-update block (recipients have auto-update OFF by default), CI workflow from repo-standard.md §CI, CHANGELOG.md. - Move components in; check path behavior rules (manifest-reference.md §Path
behavior:
skillsADDS,commands/agents/workflowsREPLACE) and the MCP tool-name prefix change (mcp__plugin_<plugin>_<server>__<tool>— pitfalls.md §4: fix bodies and references, not just allowed-tools). Mods: the module code comes from Claude Code's built-inplugin-authoringskill; this skill packages it (hooks/hooks.json→modules, mods.md). MCP servers that may run as a shared daemon: mcp-patterns.md. - Run Validate mode. Then suggest Release mode for the first tag.
Validate
python3 "{PLUGIN_ROOT}/scripts/preflight_plugin.py" <root>— runsclaude plugin validateon the root and each local plugin dir first, then the house invariants (BOM, reserved names, entry = manifest name, version placement, $schema, LICENSE, I1–I11, hooks wrapper or modmodules, MCP variables and endpoints).<root>= marketplace repo or one plugin dir.claude plugin validate <root> --strict— the canon, strict. Also run the narrower modes that apply (plugin dir, bare skills dir — the matrix in release-checklist.md; NB: a rootSKILL.mdis only checked when the named directory is literally calledskills). Mods:claude plugin test.- Behaviour (when the plugin has an eval suite):
claude plugin eval— release-checklist.md §5b. - Runtime layer (validate ≠ loader): smoke-install into a clean env
(
cd /tmp && claude -pwith--plugin-dir), invoke a sentinel skill,claude plugin details <name>for the token inventory. - Report findings grouped E/W with the fix per finding; do not auto-fix without being asked.
{PLUGIN_ROOT} = this plugin's root; when running from a dev clone use the
relative scripts/ path.
Release
Follow references/release-checklist.md top to bottom. Spine: preflight +
validate green (+ claude plugin eval when a suite exists) → bump version in plugin.json ONLY (version = update cache
key; never duplicate it in the marketplace entry) → CHANGELOG → commit+push →
claude plugin tag --push ({plugin-name}--v{version}; needs clean tree and
consistent manifests) → gh release create → smoke-install → tell the user
what recipients must run (claude plugin update <plugin>@<marketplace> —
auto-update is off by default for third-party marketplaces). Bad release:
patch-release forward only, never force-push.
Migrate
Importer for legacy repos into a consolidated marketplace (the executor for marketplace-consolidation plans).
- Inventory the source repo:
claude plugin validate, manifest diff against repo-standard.md, list of installed recipients if known. - Plan the move: target marketplace +
plugins/<name>/dir; if the plugin name changes, use the append-onlyrenamesmap (marketplace-ops.md §11; recipients of a git/URL marketplace seePlugin "<name>" not cacheduntil they run/plugin install <new>@<marketplace>once — put that line in the release notes). - Execute in a dev clone; run Validate; Release in the TARGET marketplace; archive the source repo (README pointer + GitHub archive) only after the target release is live.
- Never break existing installs silently: keep the old marketplace readable until recipients are notified.
Non-goals
Skill content authoring, descriptions, single-skill evals → skill-builder.
Mod code → Claude Code's built-in plugin-authoring skill. Publishing to
Anthropic's official/community catalogs → their web forms (release-checklist.md
notes). Marketplace UI walkthroughs → official docs.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

