doing-a-simple-two-sta…
Use when analyzing a large corpus of text, code, or data that exceeds a single agent's effective context - orchestrates parallel…
Use when creating a new Claude Code plugin or setting up plugin structure - provides complete file organization, manifest format, and component definitions for commands, agents, skills, hooks, and MCP servers
Claude Code
$ npx -y skills add ed3dai/ed3d-plugins --skill creating-a-plugin --agent claude-code
Codex
$ npx skills add ed3dai/ed3d-plugins --skill creating-a-plugin -a codex -y
Cursor
$ npx skills add ed3dai/ed3d-plugins --skill creating-a-plugin -a cursor -y
Gemini CLI
$ npx skills add ed3dai/ed3d-plugins --skill creating-a-plugin -a gemini-cli -y
GitHub Copilot
$ npx skills add ed3dai/ed3d-plugins --skill creating-a-plugin -a github-copilot -y
OpenCode
$ npx skills add ed3dai/ed3d-plugins --skill creating-a-plugin -a opencode -y
Windsurf
$ npx skills add ed3dai/ed3d-plugins --skill creating-a-plugin -a windsurf -y
name: creating-a-plugin description: Use when creating a new Claude Code plugin or setting up plugin structure - provides complete file organization, manifest format, and component definitions for commands, agents, skills, hooks, and MCP servers user-invocable: false
A **Claude Code plugin** packages reusable components (commands, agents, skills, hooks, MCP servers) for distribution. Create a plugin when you have components that work across multiple projects.
**Don't create a plugin for:**
**Plugin storage locations:**
Minimal viable plugin:
1. Create directory: `my-plugin/` 2. Create `.claude-plugin/plugin.json` with at minimum:
{
"name": "my-plugin"
}3. Add components (commands, agents, skills, hooks, or MCP servers) 4. Test locally: `/plugin install file:///absolute/path/to/my-plugin` 5. Reload: `/plugin reload`
my-plugin/
.claude-plugin/
plugin.json # Required: plugin manifest
commands/ # Optional: slash commands
my-command.md
agents/ # Optional: specialized subagents
my-agent.md
skills/ # Optional: reusable techniques
my-skill/
SKILL.md
hooks/ # Optional: event handlers
hooks.json
.mcp.json # Optional: MCP server configs
README.md # Recommended: documentation**Critical:** The `.claude-plugin/` directory with `plugin.json` inside must exist at plugin root.
| Component | Location | File Format | When to Use | |-----------|----------|-------------|-------------| | Commands | `commands/*.md` | Markdown + YAML frontmatter | Custom slash commands for repetitive tasks | | Agents | `agents/*.md` | Markdown + YAML frontmatter | Specialized subagents for complex workflows | | Skills | `skills/*/SKILL.md` | Markdown + YAML frontmatter | Reusable techniques and patterns | | Hooks | `hooks/hooks.json` | JSON | Event handlers (format code, validate, etc.) | | MCP Servers | `.mcp.json` | JSON | External tool integrations |
**Minimal valid manifest:**
{
"name": "my-plugin"
}**Complete annotated manifest:**
{
"name": "my-plugin", // Required: kebab-case identifier
"version": "1.0.0", // Recommended: semantic versioning
"description": "What this plugin does", // Recommended: brief description
"author": { // Optional but recommended
"name": "Your Name",
"email": "you@example.com",
"url": "https://github.com/yourname"
},
"homepage": "https://github.com/yourname/my-plugin",
"repository": "https://github.com/yourname/my-plugin",
"license": "MIT",
"keywords": ["productivity", "automation"],
"commands": [ // Optional: explicit command paths
"./commands/cmd1.md",
"./commands/cmd2.md"
],
"agents": [ // Optional: explicit agent paths
"./agents/agent1.md"
],
"hooks": [ // Optional: inline hooks
{
"event": "PostToolUse",
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATHS\""
}
],
"mcpServers": { // Optional: inline MCP configs
"my-server": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/my-server",
"args": ["--port", "8080"],
"env": {
"API_KEY": "${API_KEY}"
}
}
}
}**Key points:**
**File location:** `commands/my-command.md` creates `/my-command` slash command
**Nested commands:** `commands/feature/sub-command.md` creates `/plugin-name:feature:sub-command`
**Template:**
--- description: Brief description of what this command does allowed-tools: Read, Grep, Glob, Bash model: sonnet argument-hint: "[file-path]" --- # Command Name Your command prompt goes here. You can use: - $1, $2, etc. for positional arguments - $ARGUMENTS for all arguments as single string - @filename to include file contents - !bash command to execute shell commands Example implementation instructions...
**Frontmatter fields:**
**Complete example** (`commands/review-pr.md`):
--- description: Review pull request for security and best practices allowed-tools: Read, Grep, Glob, Bash model: opus argument-hint: "[pr-number]" --- # Pull Request Review Review pull request #$1 for: 1. Security vulnerabilities 2. Performance issues 3. Best practices compliance 4. Error handling Steps: 1. Use Bash to run: gh pr diff $1 2. Use Read to examine changed files 3. Use Grep to search for common anti-patterns 4. Provide structured feedback with file:line references Focus on critical issues first.
**File location:** `agents/code-reviewer.md` creates agent named "code-reviewer"
**Template:**
Ed's repo of Claude Code plugins, centered around a research-plan-implement workflow. Only a tiny bit cursed. If you're lucky.
Use when analyzing a large corpus of text, code, or data that exceeds a single agent's effective context - orchestrates parallel…
Use when creating specialized subagents for Claude Code plugins or the Task tool - covers description writing for…
Use when creating, releasing, or maintaining a Claude Code Plugin Marketplace - covers marketplace.json schema, version…
Use when completing development phases or branches to identify and update CLAUDE.md or AGENTS.md files that may have become stale…
Use when writing skills, CLAUDE.md files, agent prompts, or any directives that involve shell commands, environment variables,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.