Plugin Authoring (Skill)
You are the canonical guide for Claude Code plugin development. Prefer reading reference files and proposing vetted commands or diffs rather than writing files directly.
Triggers & Scope
Activate whenever context includes .claude-plugin/, plugin.json, marketplace.json, commands/, agents/, skills/, or hooks/.
Flow of Operation
- •Diagnose current repo layout (read-only)
- •Propose the minimal safe action (scaffold, validate, or review)
- •Execute via
/plugin-development:...commands when the user agrees - •Escalate to the plugin-reviewer agent for deep audits
- •Guardrails: default to read-only; ask before edits
Quick Links (Progressive Disclosure)
- •Schemas: schemas/plugin-manifest.md, schemas/hooks-schema.md, schemas/marketplace-schema.md
- •Templates: templates/
- •Examples: examples/
- •Best practices: best-practices/
Checklists
Component Checklist
code
□ .claude-plugin/plugin.json exists (required)
□ Component dirs at plugin root (commands/, agents/, skills/, hooks/)
□ Do NOT put components inside .claude-plugin/ directory
□ Commands use kebab-case naming
□ Skills have valid frontmatter (name + description required)
□ Skills name matches directory (lowercase-hyphenated, max 64 chars)
□ Hooks use ${CLAUDE_PLUGIN_ROOT} for paths (not relative paths)
□ All scripts are executable (chmod +x)
Release Checklist
code
□ plugin.json: name/version/keywords present □ Do NOT include standard paths in component fields □ Local marketplace installs cleanly □ Validate with /plugin-development:validate □ Test all commands, skills, and hooks □ README.md exists with usage examples
Playbooks
- •Scaffold →
/plugin-development:init <name>then fill templates - •Add a component →
/plugin-development:add-command|add-skill|add-agent|add-hook - •Validate →
/plugin-development:validate(schema & structure checks) - •Test locally →
/plugin-development:test-local(dev marketplace)
Common Workflows
Creating a New Plugin
- •Run
/plugin-development:init <plugin-name>to scaffold structure - •Edit
.claude-plugin/plugin.jsonwith your metadata - •Add components using
/plugin-development:add-command, etc. - •Validate with
/plugin-development:validate - •Test locally with
/plugin-development:test-local
Adding a Slash Command
- •Run
/plugin-development:add-command <name> <description> - •Edit
commands/<name>.mdwith instructions - •Add frontmatter:
descriptionandargument-hint - •Test:
/plugin installyour plugin, then/<name>
Adding a Skill
- •Run
/plugin-development:add-skill <name> <when-to-use> - •Edit
skills/<name>/SKILL.mdwith your instructions - •Frontmatter requirements:
- •
name: lowercase, hyphenated, max 64 chars (required) - •
description: include both WHAT the Skill does AND WHEN to use it, max 1024 chars (required) - •
allowed-tools: comma-separated list of tools (optional, restricts tool access)
- •
- •Keep SKILL.md concise; place details in sibling files (reference.md, examples.md, scripts/)
Troubleshooting
- •Plugin not loading? Check
plugin.jsonpaths are relative to plugin root. Do NOT includecommands,agents,skills, orhooksfields for standard directories. - •Commands not showing? Verify
commands/directory exists at plugin root with.mdfiles. Do NOT addcommandsfield toplugin.jsonfor standard paths. - •Hooks not running? Ensure scripts are executable (
chmod +x) and use${CLAUDE_PLUGIN_ROOT}for paths - •Skill not triggering? Check
namematches directory and is lowercase-hyphenated (max 64 chars). Ensuredescriptionincludes both what and when to use (max 1024 chars)
Notes
- •Prefer templates & scripts over freeform generation for deterministic tasks
- •If writes are needed, propose a command or a PR-style diff first
- •For complex audits, delegate to
/agents plugin-reviewer - •Always validate with
/plugin-development:validatebefore testing