Agent Skill
2/7/2026

plugin-dev

Claude Code plugin development - create plugins, skills, commands, agents, hooks, MCP servers, and marketplaces. Use when: 'create a plugin', 'add a skill', 'write a command', 'configure hooks', 'integrate MCP server', 'build marketplace', 'How do plugins work?', 'What goes in plugin.json?'

G
ggprompts
1GitHub Stars
1Views
npx skills add GGPrompts/my-plugins

SKILL.md

Nameplugin-dev
DescriptionClaude Code plugin development - create plugins, skills, commands, agents, hooks, MCP servers, and marketplaces. Use when: 'create a plugin', 'add a skill', 'write a command', 'configure hooks', 'integrate MCP server', 'build marketplace', 'How do plugins work?', 'What goes in plugin.json?'

name: plugin-dev description: "Claude Code plugin development - create plugins, skills, commands, agents, hooks, MCP servers, and marketplaces. Use when: 'create a plugin', 'add a skill', 'write a command', 'configure hooks', 'integrate MCP server', 'build marketplace', 'How do plugins work?', 'What goes in plugin.json?'" user-invocable: true allowed-tools: Read, Glob, Grep, Write, Edit, Bash

Claude Code Plugin Development

Comprehensive guidance for creating well-structured plugins, skills, hooks, agents, commands, and MCP integrations.

Core Principles (Anthropic Official)

  1. Composable - Multiple skills work together seamlessly, Claude coordinates automatically
  2. Portable - Same format works across Claude apps, Claude Code, and Claude API
  3. Efficient - Progressive disclosure loads only what's needed (description → SKILL.md → references)
  4. Powerful - Combines prompts + executable code for complete workflows
  5. Secure - Never hardcode secrets, use ${CLAUDE_PLUGIN_ROOT} for paths

Critical Budget Limits

LimitValueConsequence if Exceeded
All skill descriptions combined15,000 charsSilent filtering, skills won't activate
Individual description1,024 charsTruncation
SKILL.md body5,000 wordsContext saturation, partial execution
Target per description300-400 charsAllows ~40 skills safely

Quick Start

Create a New Plugin

mkdir -p my-plugin/.claude-plugin
mkdir -p my-plugin/skills/my-skill/references

cat > my-plugin/.claude-plugin/plugin.json << 'PLUGIN'
{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "What this plugin does"
}
PLUGIN

cat > my-plugin/skills/my-skill/SKILL.md << 'SKILL'
---
name: my-skill
description: Use when creating X, configuring Y, or analyzing Z
---

# My Skill

Instructions for Claude when this skill activates...
SKILL

Install and Test

# Symlink to Claude's plugin directory
ln -s $(pwd)/my-plugin ~/.claude/plugins/my-plugin

# Restart Claude Code to load
/restart

# Test the skill
/my-plugin:my-skill

Component Reference

Choose a topic for detailed guidance:

šŸ“ @references/structure.md - Plugin Directory Structure

  • Standard plugin layout
  • Marketplace vs standalone patterns
  • Auto-discovery rules
  • Portable path references (${CLAUDE_PLUGIN_ROOT})
  • Common troubleshooting

šŸŽÆ @references/skills-reference.md - Creating Skills

  • SKILL.md format and frontmatter
  • Progressive disclosure patterns
  • Bundled resources (scripts/, references/, assets/)
  • Description best practices with trigger phrases
  • Writing style (imperative, not second person)
  • Validation checklist

šŸ’¬ @references/commands-reference.md - Slash Commands

  • Command file format with frontmatter
  • Dynamic arguments ($1, $2, @$1)
  • Bash execution inline
  • Tool restrictions (allowed-tools)
  • Organization (flat vs namespaced)
  • Plugin command portability

šŸ¤– @references/agents-reference.md - Subagents

  • Agent frontmatter (name, description, model, color, tools)
  • Name validation rules
  • Description with examples
  • Color guidelines by purpose
  • Tool restriction patterns
  • System prompt best practices

šŸŽ£ @references/hooks-reference.md - Event Hooks

  • Hook types (prompt-based vs command)
  • Event types (PreToolUse, PostToolUse, Stop, etc.)
  • Configuration (hooks.json format)
  • Matchers (exact, wildcard, regex)
  • Output structure and exit codes
  • Security best practices
  • Environment variables

šŸ”Œ @references/mcp-reference.md - MCP Integration

  • MCP server configuration (.mcp.json)
  • Server types (stdio, SSE, HTTP, WebSocket)
  • Tool naming conventions
  • Environment variable usage
  • Security and testing

šŸŖ @references/marketplace-reference.md - Marketplaces

  • Standalone vs marketplace patterns
  • marketplace.json schema
  • Skills array pattern
  • Bundle plugin pattern
  • Common mistakes to avoid
  • Team configuration

šŸ“‹ @references/plugin-reference.md - Plugin Manifest

  • plugin.json required fields
  • Optional metadata
  • Custom component paths
  • Installation and deployment

āš™ļø @references/settings.md - Plugin Settings

  • .local.md settings files
  • YAML frontmatter for configuration
  • Reading settings in hooks
  • Best practices and gitignore

Common Patterns

Minimal Skill

---
name: simple-skill
description: Use when user asks to "do X" or "configure Y"
---

# Simple Skill

Step-by-step instructions...

1. Check if condition exists
2. Execute action
3. Verify result

For detailed patterns, see @references/advanced-patterns.md

Command with Arguments

---
description: Review code for security issues
allowed-tools: Read, Grep
argument-hint: [file] [severity]
---

Review @$1 for security issues.
Focus on severity level: $2

Use these patterns:
- SQL injection
- XSS vulnerabilities  
- Hardcoded credentials

Hook with Validation

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh",
        "timeout": 30
      }]
    }]
  }
}

File Organization

my-plugin/
ā”œā”€ā”€ .claude-plugin/
│   └── plugin.json          # Manifest
ā”œā”€ā”€ commands/                 # Slash commands
│   └── action.md
ā”œā”€ā”€ agents/                   # Subagents
│   └── analyzer.md
ā”œā”€ā”€ skills/                   # Skills
│   └── my-skill/
│       ā”œā”€ā”€ SKILL.md         # Main skill file
│       ā”œā”€ā”€ references/      # Detailed docs
│       ā”œā”€ā”€ scripts/         # Executable code
│       └── assets/          # Templates, images
ā”œā”€ā”€ hooks/
│   └── hooks.json           # Event handlers
└── .mcp.json                # MCP servers

Development Workflow

  1. Plan - Identify what your plugin should do
  2. Structure - Create directory layout (see @references/structure.md)
  3. Implement - Write skills, commands, or agents
  4. Configure - Add hooks or MCP servers if needed
  5. Test - Install and verify functionality
  6. Iterate - Refine based on usage
  7. Document - Update README and examples

Best Practices

PracticeReason
Keep SKILL.md under 2000 wordsMove details to references/ for progressive disclosure
Use specific trigger phrases"when user asks to 'create X'" not "provides guidance"
Imperative writing style"Parse the config" not "You should parse"
Portable paths${CLAUDE_PLUGIN_ROOT} not hardcoded
Test after changes/restart then invoke skill/command
Single responsibilityOne focused purpose per component

Common Mistakes

MistakeSolution
Vague skill descriptionsAdd specific trigger phrases users would say
8000-word SKILL.mdMove content to references/, keep SKILL.md brief
Hardcoded pathsUse ${CLAUDE_PLUGIN_ROOT} for portability
Missing frontmatterAll components need valid YAML frontmatter
Wrong directory structureSee @references/structure.md for correct layout

Validation

Before releasing a plugin:

  • plugin.json has required name field
  • All SKILL.md files have name and description
  • Descriptions include specific trigger phrases
  • All referenced files exist
  • No hardcoded paths (use ${CLAUDE_PLUGIN_ROOT})
  • Skills under 2000 words (details in references/)
  • Commands have argument-hint if they take args
  • Agents have valid name (3-50 chars, lowercase-hyphens)
  • Hooks return valid JSON with proper exit codes
  • README documents installation and usage

Related Tools

  • /plugin-dev:create-plugin - Interactive plugin scaffolding command
  • /plugin-dev:plugin-cli - CLI commands for plugin management
  • /skill-creator:skill-creation - Focused skill creation workflow
  • /agent-creator:agent-design - Subagent design patterns
  • /mcp-builder:mcp-servers - MCP server development

Quick Navigation:

Need to...See
Understand plugin layout@references/structure.md
Create a skill@references/skills-reference.md
Add a slash command@references/commands-reference.md
Configure a subagent@references/agents-reference.md
Set up hooks@references/hooks-reference.md
Integrate MCP server@references/mcp-reference.md
Build a marketplace@references/marketplace-reference.md

Status: Consolidated plugin development skill with progressive disclosure pattern

Skills Info
Original Name:plugin-devAuthor:ggprompts