← ClaudeAtlas

writing-cc-pluginlisted

Use when creating, authoring, hardening, debugging, packaging, publishing, or reviewing a Claude Code plugin — anything touching plugin.json / the manifest, hooks/hooks.json, plugin-bundled MCP or LSP servers, monitors, agents, commands, skills, skills-directory (@skills-dir) plugins, local testing (--plugin-dir / --plugin-url / /reload-plugins), converting .claude/ config into a plugin, marketplace publishing, install scopes, version management, or `claude plugin` CLI commands. Covers non-obvious rules (component dir placement, hook→MCP tool scoping, version fallback) that are easy to get wrong from memory.
minjun0219/rocky · ★ 0 · Data & Documents · score 68
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`,