create
⛔ Create Plugin — STOP AND READ
DO NOT ACT ON ASSUMPTIONS. Read this file first.
This is a structured workflow command for creating a new plugin in a Claude Code marketplace.
Your FIRST and ONLY action right now: Execute the TodoWrite below.
⛔ MANDATORY FIRST ACTION: TodoWrite Initialization
YOUR FIRST ACTION MUST BE the TodoWrite call below.
DO NOT:
- ❌ Create any directories before TodoWrite
- ❌ Read marketplace.json before TodoWrite
- ❌ Ask questions before TodoWrite
- ❌ Jump to any phase without completing Step 0
Step 0.1: Detect Marketplace Root
Before executing TodoWrite, verify you're in a marketplace directory:
/usr/bin/env bash << 'PREFLIGHT_EOF'
# Check for marketplace.json in cwd
if [ -f ".claude-plugin/marketplace.json" ]; then
echo "✅ Marketplace detected: $(jq -r .name .claude-plugin/marketplace.json)"
else
echo "❌ Not a marketplace directory. Run from a marketplace root."
exit 1
fi
PREFLIGHT_EOF
Step 0.2: Execute MANDATORY TodoWrite
Execute TodoWrite NOW with this template:
TodoWrite with todos:
- "[Plugin] Phase 0: Detect marketplace root" | in_progress
- "[Plugin] Phase 0: Interactive prompts (name, category, components)" | pending
- "[Plugin] Phase 0: Confirm plugin doesn't exist" | pending
- "[Plugin] Phase 1: Skill → plugin-structure (scaffold)" | pending
- "[Plugin] Phase 1: Create plugin directory + plugin.json" | pending
- "[Plugin] Phase 1: Skill → implement-plan-preflight (ADR)" | pending
- "[Plugin] Phase 2: Skill → skill-architecture (if has-skills)" | pending
- "[Plugin] Phase 2: Skill → hook-development (if has-hooks)" | pending
- "[Plugin] Phase 2: Skill → command-development (if has-commands)" | pending
- "[Plugin] Phase 2: Skill → agent-development (if has-agents)" | pending
- "[Plugin] Phase 2: Agent → skill-reviewer (if skills created)" | pending
- "[Plugin] Phase 3: Add to marketplace.json" | pending
- "[Plugin] Phase 3: Run validate-plugins.mjs" | pending
- "[Plugin] Phase 3: Skill → code-hardcode-audit" | pending
- "[Plugin] Phase 3: Agent → plugin-validator" | pending
- "[Plugin] Phase 4: Git commit (conventional format)" | pending
- "[Plugin] Phase 4: Push to remote" | pending
- "[Plugin] Phase 4: Skill → semantic-release" | pending
After TodoWrite completes, proceed to Phase 0 section below.
Quick Reference
Skills Invoked (Optimized Sequence)
| Order | Skill | Phase | Purpose | Invocation |
|---|---|---|---|---|
| 1 | plugin-structure | 1 | Directory & manifest | Skill(plugin-dev:plugin-structure) |
| 2 | implement-plan-preflight | 1 | ADR + Design Spec + Diagrams | Skill(itp:implement-plan-preflight) |
| 3 | skill-architecture | 2 | Create skills (if has-skills) | Skill(plugin-dev:skill-architecture) |
| 4 | hook-development | 2 | Create hooks (if has-hooks) | Skill(plugin-dev:hook-development) |
| 5 | command-development | 2 | Create commands (if has-commands) | Skill(plugin-dev:command-development) |
| 6 | agent-development | 2 | Create agents (if has-agents) | Skill(plugin-dev:agent-development) |
| 7 | code-hardcode-audit | 3 | Quality audit | Skill(itp:code-hardcode-audit) |
| 8 | plugin-validator | 3 | Silent failure audit | Skill(plugin-dev:plugin-validator) |
| 9 | semantic-release | 4 | Version & publish | Skill(itp:semantic-release) |
Skills EXCLUDED (Redundant)
| Skill | Reason Excluded |
|---|---|
| plugin-dev:skill-development | Use skill-architecture instead (3x more comprehensive) |
| plugin-dev:plugin-settings | Merged into hook-development |
| itp:adr-graph-easy-architect | Invoked BY implement-plan-preflight (not separately) |
Agents Spawned
| Phase | Agent | Purpose | Invocation |
|---|---|---|---|
| 2 | skill-reviewer | Review skill quality | Task(plugin-dev:skill-reviewer) |
| 3 | plugin-validator | Validate final structure | Task(plugin-dev:plugin-validator) |
File Locations
| Artifact | Path | Notes |
|---|---|---|
| Plugin Directory | plugins/{name}/ |
Main plugin folder |
| Plugin Manifest | plugins/{name}/plugin.json |
Required manifest |
| Plugin README | plugins/{name}/README.md |
Documentation |
| Marketplace JSON | .claude-plugin/marketplace.json |
Must add plugin entry |
| ADR | docs/adr/YYYY-MM-DD-{name}.md |
Created by preflight skill |
| Design Spec | docs/design/YYYY-MM-DD-{name}/spec.md |
Created by preflight skill |
Phase 0: Discovery & Validation
Detect marketplace root, gather plugin name/category/components via interactive prompts, confirm the plugin does not already exist.
Detailed steps: Phase 0 Reference
Phase 0 Gate
- Marketplace root detected (
.claude-plugin/marketplace.jsonexists) - Plugin name collected (kebab-case, no spaces)
- Category selected
- Components selected (skills/hooks/commands/agents)
- Plugin directory does NOT exist
- Plugin NOT in marketplace.json
Phase 1: Scaffold Plugin
- Invoke
Skill(plugin-dev:plugin-structure)-- directory & manifest patterns - Create plugin directory with component subdirs based on user selections
- Generate
plugin.jsonusing marketplace version - Invoke
Skill(itp:implement-plan-preflight)-- creates ADR + Design Spec + diagrams
Detailed steps: Phase 1 Reference
Phase 1 Gate
- Plugin directory exists:
plugins/$PLUGIN_NAME/ - plugin.json created with marketplace version
- ADR exists:
docs/adr/$ADR_ID.md - Design spec exists:
docs/design/$ADR_ID/spec.md - Both diagrams in ADR (Before/After + Architecture)
Phase 2: Component Creation (Conditional)
Execute ONLY the skills for components the user selected:
| Component | Skill Invocation | Then |
|---|---|---|
| Skills | Skill(plugin-dev:skill-architecture) |
Spawn Task(plugin-dev:skill-reviewer) |
| Hooks | Skill(plugin-dev:hook-development) |
-- |
| Commands | Skill(plugin-dev:command-development) |
-- |
| Agents | Skill(plugin-dev:agent-development) |
-- |
Detailed steps: Phase 2 Reference
Phase 2 Gate
- All selected components created
- If skills: skill-reviewer agent completed review
- Files follow plugin-dev patterns
Phase 3: Registration & Validation
- Add plugin to
marketplace.json(includehooksfield if hooks exist) - Run
node scripts/validate-plugins.mjs-- expect all-pass - Invoke
Skill(itp:code-hardcode-audit)-- quality audit - Run silent failure audit on all hook entry points
- Spawn
Task(plugin-dev:plugin-validator)-- structural validation
Detailed steps: Phase 3 Reference
Phase 3 Gate
- Plugin added to marketplace.json
- validate-plugins.mjs passes
- code-hardcode-audit passes
- silent-failure-audit passes (no errors)
- plugin-validator agent approves
Phase 4: Commit & Release
- Stage changes: plugin dir, marketplace.json, ADR, design spec
- Conventional commit:
feat($PLUGIN_NAME): add plugin for [brief description] - Push to remote
- Invoke
Skill(itp:semantic-release)-- tag, changelog, GitHub release
Detailed steps: Phase 4 Reference
Phase 4 Success Criteria
- All changes committed with conventional commit
- Pushed to remote
- semantic-release completed
- New version tag created
- GitHub release published
Troubleshooting
See Troubleshooting Reference for common issues and fixes.