agentleFS
beCyborgbeCyborg/jadlis-plugin-creator/skills/plugin-builder/SKILL.md

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

  • Other versions5 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 5

    1. vellum-ai/vellum-assistant★ 1.5ksame name
    2. GerardoRdz96/aios-starter-kit★ 3same name
    3. GerardoRdz96/claude-skills★ 0same name
    4. pobsteta/aigora★ 0same name
    5. 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
  1. Distinctive:

    Run Validate mode. Then suggest Release mode for the first tag.

    line 99
  2. Very specific:

    Follow references/release-checklist.md top to bottom.

    line 125
  3. Distinctive:

    Never break existing installs silently: keep the old marketplace readable until recipients are notified.

    line 149

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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)

  1. Never edit ~/.claude/plugins/marketplaces/<name>/. The background refresh resets it (wipes edits AND local branches; any claude start — 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.
  2. Canon validation is claude plugin validate — scripts/preflight_plugin.py is an offline house-standard guardrail on top, never a replacement.
  3. House standard (semver, $schema, LICENSE, CI, tags, README auto-update block) lives in references/repo-standard.md — every mode targets it.
  4. 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 varsreferences/manifest-reference.md
component types and their limits (skills/agents/hooks/MCP/LSP/…)references/components.md
mods: modules, types, claude plugin test, security, org distributionreferences/mods.md
MCP server as a shared daemon (patterns U / L / C), MCP preflight checksreferences/mcp-patterns.md
marketplace.json, 7 source types, hosting, managed limits, renamesreferences/marketplace-ops.md
shipping a version, validate matrix, tags, CIreferences/release-checklist.md
field-tested traps (autoUpdate wipe, MCP prefixes, caches…)references/pitfalls.md
repo layout norms, CI recipe, preflight invariantsreferences/repo-standard.md

Mode routing

User intentMode
"создай/собери/упакуй плагин", new marketplace, scaffoldAssemble
"проверь/провалидируй", pre-release check, CI failedValidate
"зарелизь/выпусти/обнови у получателей", version bumpRelease
"перенеси/мигрируй/консолидируй" legacy repoMigrate

Ambiguous → ask one question with the four options.

Assemble

Goal: existing work (skills/hooks/MCP/agents) → a repo matching repo-standard.md.

  1. 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.
  2. Scaffold: .claude-plugin/marketplace.json (+$schema, owner, sorted plugins[]), 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.
  3. Move components in; check path behavior rules (manifest-reference.md §Path behavior: skills ADDS, commands/agents/workflows REPLACE) 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-in plugin-authoring skill; this skill packages it (hooks/hooks.json → modules, mods.md). MCP servers that may run as a shared daemon: mcp-patterns.md.
  4. Run Validate mode. Then suggest Release mode for the first tag.

Validate

  1. python3 "{PLUGIN_ROOT}/scripts/preflight_plugin.py" <root> — runs claude plugin validate on 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 mod modules, MCP variables and endpoints). <root> = marketplace repo or one plugin dir.
  2. 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 root SKILL.md is only checked when the named directory is literally called skills). Mods: claude plugin test.
  3. Behaviour (when the plugin has an eval suite): claude plugin eval — release-checklist.md §5b.
  4. Runtime layer (validate ≠ loader): smoke-install into a clean env (cd /tmp && claude -p with --plugin-dir), invoke a sentinel skill, claude plugin details <name> for the token inventory.
  5. 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).

  1. Inventory the source repo: claude plugin validate, manifest diff against repo-standard.md, list of installed recipients if known.
  2. Plan the move: target marketplace + plugins/<name>/ dir; if the plugin name changes, use the append-only renames map (marketplace-ops.md §11; recipients of a git/URL marketplace see Plugin "<name>" not cached until they run /plugin install <new>@<marketplace> once — put that line in the release notes).
  3. 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.
  4. 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.