## Why Plugin and marketplace management had no governed authoring path. Creating or updating a plugin required knowing the dual-manifest convention, version parity rules, and directory skeleton by memory — nothing enforced consistency or guided the process. `/plugin-author` closes that gap by owning the full plugin scaffold lifecycle: create, update, rename, and release. `/marketplace-author` handles the marketplace-facing side: register, deregister, and update plugin entries in `marketplace.json`. ADR-0016 codifies the version parity convention (identical `version` in both `plugin.json` and `.claude-plugin/plugin.json`) that `/plugin-author` now enforces. The two plugin.json files in this repo are backfilled to comply (keys also sorted to pass the pretty-format-json hook). CONTEXT.md gains glossary entries for "plugin scaffold" and "version parity" so future agents have shared vocabulary for these concepts. ## Implementation Notes `/plugin-author` ships a `scripts/new-plugin.sh` scaffold script that generates the directory skeleton and both manifests in one shot; the skill calls the script rather than generating files ad hoc so the scaffold is reviewable and repeatable. Version parity is an invariant, not a suggestion — the skill will fail loudly on create/update if the two versions would diverge. ADR: docs/adr/0016-plugin-version-parity.md
567 B
567 B
scripts/
new-plugin.sh
Scaffolds a new plugin directory with both manifests and empty skeleton dirs.
Usage: new-plugin.sh <plugin-name> <repo-root>
Creates <repo-root>/plugins/<plugin-name>/ containing: plugin.json (Copilot manifest), .claude-plugin/plugin.json (CC manifest), and empty skills/, agents/, hooks/, bin/ directories. Both manifest files carry FILL_IN_* placeholders for fields the user must supply. Each file and directory is a no-op if it already exists. Does not touch marketplace.json. See --help for full usage.