writing-cc-pluginlisted
Install: claude install-skill minjun0219/rocky
# Writing Claude Code Plugins
Authoring guide + authoritative reference for the Claude Code plugin system: how to create,
test, harden, and publish a plugin, plus the full `plugin.json` manifest and component spec
(skills / agents / hooks / MCP / LSP / monitors / themes), caching, scopes, versioning, and
the `claude plugin` CLI.
**Do not answer plugin-structure questions from memory** — several rules below are
counter-intuitive and commonly mis-recalled. Read [reference.md](reference.md) for full
detail (§1–9 spec, §10 authoring/publishing); the tables here are the fast path.
## When to use
- Creating a new plugin, or converting `.claude/` config into one
- Editing/reviewing `.claude-plugin/plugin.json` or `marketplace.json` (manifest side)
- Adding/debugging skills, commands, agents, hooks, bundled MCP/LSP servers, monitors
- A plugin loads but a component silently doesn't appear
- Local dev/test loop (`--plugin-dir`, `--plugin-url`, `/reload-plugins`)
- Deciding install scope, versioning strategy, or publishing to a marketplace
## Authoring workflow (detail → reference.md §10)
1. **Standalone vs plugin**: start standalone in `.claude/` for fast iteration; convert to a plugin when sharing / needing cross-project reuse / versioned releases. Plugin skills are namespaced `/plugin-name:skill`.
2. **Scaffold**: `.claude-plugin/plugin.json` (only `name` required) + components at plugin **root** (`skills/<name>/SKILL.md`, `commands/`, `agents/`, `hooks/hooks.json`, `.mcp.json`,