developing-claude-code-plugins
Build, test, and distribute Claude Code plugins with slash commands, agents, skills, hooks, MCP servers, and LSP servers. MUST be loaded when creating, reviewing, debugging, or distributing plugins. Use PROACTIVELY when user mentions plugins, extensions, marketplaces, or wants to add custom commands/agents to Claude Code.
Best use case
developing-claude-code-plugins is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Build, test, and distribute Claude Code plugins with slash commands, agents, skills, hooks, MCP servers, and LSP servers. MUST be loaded when creating, reviewing, debugging, or distributing plugins. Use PROACTIVELY when user mentions plugins, extensions, marketplaces, or wants to add custom commands/agents to Claude Code.
Teams using developing-claude-code-plugins should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/developing-claude-code-plugins/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How developing-claude-code-plugins Compares
| Feature / Agent | developing-claude-code-plugins | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Build, test, and distribute Claude Code plugins with slash commands, agents, skills, hooks, MCP servers, and LSP servers. MUST be loaded when creating, reviewing, debugging, or distributing plugins. Use PROACTIVELY when user mentions plugins, extensions, marketplaces, or wants to add custom commands/agents to Claude Code.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
SKILL.md Source
<essential_principles>
Plugins extend Claude Code with reusable functionality: custom slash commands, agents, skills, hooks, MCP servers, and LSP servers. Unlike standalone `.claude/` configurations, plugins are namespaced, versioned, and distributable through marketplaces.
**1. Plugin Structure Is Sacred**
```
my-plugin/
├── .claude-plugin/
│ └── plugin.json # ONLY manifest here (required)
├── commands/ # Slash commands (plugin root)
├── agents/ # Subagent definitions (plugin root)
├── skills/ # Agent Skills (plugin root)
├── hooks/
│ └── hooks.json # Event handlers (plugin root)
├── .mcp.json # MCP server configs (plugin root)
└── .lsp.json # LSP server configs (plugin root)
```
**CRITICAL**: Never put commands/, agents/, skills/, or hooks/ inside `.claude-plugin/`. Only `plugin.json` goes there.
**2. Namespacing Prevents Conflicts**
Plugin commands use format `/plugin-name:command-name`. The `name` field in plugin.json becomes the namespace prefix. Choose names carefully - they're public-facing.
**3. Use `${CLAUDE_PLUGIN_ROOT}` for Paths**
All paths in hooks, MCP servers, and scripts must use `${CLAUDE_PLUGIN_ROOT}` to reference plugin files. Plugins are copied to a cache directory, so relative paths like `../` won't work.
**4. Test with `--plugin-dir` During Development**
```bash
claude --plugin-dir ./my-plugin
```
This loads your plugin without installation. Restart Claude Code after changes.
</essential_principles>
<intake>
**What would you like to do?**
1. Create a new plugin
2. Add a component (command, agent, skill, hook, MCP, LSP)
3. Test or debug a plugin
4. Create a marketplace for distribution
5. Something else
**Wait for response before proceeding.**
</intake>
<routing>
| Response | Workflow |
|----------|----------|
| 1, "new", "create", "build", "start", "plugin" | `workflows/create-plugin.md` |
| 2, "add", "component", "command", "agent", "skill", "hook", "mcp", "lsp" | `workflows/add-component.md` |
| 3, "test", "debug", "fix", "error", "not working", "broken" | `workflows/test-debug-plugin.md` |
| 4, "marketplace", "distribute", "share", "publish" | `workflows/create-marketplace.md` |
| 5, other | Clarify intent, then route to appropriate workflow |
**After reading the workflow, follow it exactly.**
</routing>
<verification_loop>
**After Every Change:**
1. Validate plugin structure:
```bash
claude plugin validate ./my-plugin
```
2. Test plugin loads:
```bash
claude --plugin-dir ./my-plugin
```
3. Verify components appear:
- Commands: `/help` shows plugin commands
- Agents: `/agents` lists plugin agents
- MCP: `/mcp` shows server status
Report to user:
- "Plugin validates: ✓"
- "Commands registered: X"
- "Ready for testing"
</verification_loop>
<reference_index>
All in `references/`:
**Structure:** plugin-structure.md
**Components:** commands.md, agents.md, skills.md, hooks.md, mcp-lsp.md
**Distribution:** marketplace.md
**Issues:** troubleshooting.md
</reference_index>
<workflows_index>
All in `workflows/`:
| Workflow | Purpose |
|----------|---------|
| create-plugin.md | Create new plugin from scratch |
| add-component.md | Add command, agent, skill, hook, MCP, or LSP |
| test-debug-plugin.md | Test locally and fix issues |
| create-marketplace.md | Create and host plugin marketplace |
</workflows_index>
<success_criteria>
A well-built plugin:
- Has valid plugin.json manifest in `.claude-plugin/`
- Components are in correct directories (commands/, agents/, skills/, hooks/)
- All paths use `${CLAUDE_PLUGIN_ROOT}` variable
- Passes `claude plugin validate`
- Loads correctly with `--plugin-dir`
- Commands appear in `/help` output
</success_criteria>Related Skills
developing-skills
MUST be loaded before working with any Skill. Covers creating, building, reviewing, assessing, checking, auditing, evaluating, updating, modifying, and improving skills. Invoke PROACTIVELY before writing or changing any SKILL.md file. Provides structure, workflows, and validation for skill development. Supports both personal skills and standalone distributable skills (GitHub repos). (user)
claude-skill-creator
Guide for creating effective Claude Code skills with proper YAML frontmatter, directory structure, and best practices. Use when creating new skills, updating existing skills, or learning about skill development.
claude-settings-audit
Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.
claude-plan
Anthropic 風格的專業計畫管理 Skill - 自然語言驅動、預設並行、全自動 GitHub 整合
claude-md-editor
Edit and maintain CLAUDE.md and project documentation files. Use when modifying documentation, asking about best practices, or performing documentation maintenance tasks.
claude-improve-config
Self-reflect on the current session to identify mistakes and propose improvements to .claude configuration (CLAUDE.md, hooks, skills).
claude-hooks-reference-2026
Complete reference for Claude Code hooks system (January 2026). Use when creating hooks, understanding hook events, matchers, exit codes, JSON output control, environment variables, plugin hooks, or implementing hook scripts.
claude-ecosystem
Claude Code ecosystem expertise. Modules: CLI tool (setup, slash commands, MCP servers, hooks, plugins, CI/CD), extensibility (agents, skills, output styles creation), CLAUDE.md (project instructions, optimization). Actions: configure, troubleshoot, create, deploy, integrate, optimize Claude Code. Keywords: Claude Code, Anthropic, CLI tool, slash command, MCP server, Agent Skill, hook, plugin, CI/CD, enterprise, CLAUDE.md, agentic coding, agent, skill, output-style, SKILL.md, subagent, Task tool, project instructions, token optimization. Use when: learning Claude Code features, configuring settings, creating skills/agents/hooks, setting up MCP servers, troubleshooting issues, CI/CD integration, initializing or optimizing CLAUDE.md files.
claude-code
Claude Code CLI and development environment. Use for Claude Code features, tools, workflows, MCP integration, configuration, and AI-assisted development.
claude-code-slash-commands
This skill should be used when the user asks to "create a command", "write a slash command", "build a plugin command", or wants to add custom commands to Claude Code.
claude-code-meta
Build Claude Code extensions - skills, agents, hooks, plugins, marketplaces, slash commands. Use when creating Claude Code components, building new skills, writing agents, creating hooks, making plugins, setting up marketplaces, writing slash commands, fixing extension configurations, or troubleshooting Claude Code extensions. Includes builder agents for autonomous creation. Not for looking up docs - use claude-code-docs-reference for that.
claude-code-analyzer
Analyzes Claude Code usage patterns and provides comprehensive recommendations. Runs usage analysis, discovers GitHub community resources, suggests CLAUDE.md improvements, and fetches latest docs on-demand. Use when user wants to optimize their Claude Code workflow, create configurations (agents/skills/commands), or set up project documentation.