plugin-builderlisted
Install: claude install-skill petermcalister/shared-skills
# Plugin Builder
Build well-structured Claude Code plugins that match proven patterns.
## Before You Start
If you're in a repo with an existing plugin (look for `.claude-plugin/plugin.json`,
or a `plugins/<name>/` directory), read it first and match its conventions — an
existing plugin is the best reference implementation to follow.
## Plugin Skeleton
```
plugin-name/
├── .claude-plugin/
│ └── plugin.json # ONLY this file goes here
├── commands/ # User-invoked slash commands
├── skills/ # Auto-activating knowledge
│ └── skill-name/
│ └── SKILL.md
├── references/ # Shared guides (prefer this over per-skill refs/)
├── agents/ # Autonomous subagents
├── hooks/
│ └── hooks.json # Event-driven automation
├── .mcp.json # External tool connections
└── README.md
```
Nothing goes inside `.claude-plugin/` except `plugin.json`. This is the one rule
that causes the most confusion — commands, skills, agents all live at the plugin root.
## plugin.json
```json
{
"name": "plugin-name",
"version": "1.0.0",
"description": "One sentence: what this plugin does",
"author": { "name": "Your Name" }
}
```
`name` becomes the namespace — skills appear as `/plugin-name:skill-name`.
## Deciding What to Build
| User wants... | Build a... |
|--------------|------------|
| A `/slash-command` they type | **Command** (`commands/name.md`) |
| Claude to automatically apply knowledge | **Skill** (`skills/na