From rcc
Scaffolds Claude Code plugin packages: gathers requirements, creates directory structure, generates manifest, adds initial skill and README, tests installation. Triggers on 'create plugin', 'new plugin', 'scaffold plugin'.
npx claudepluginhub wayne930242/reflexive-claude-codeThis skill uses the workspace's default tool permissions.
**Creating plugins IS scaffolding a distributable agent engineering package.**
Scaffolds complete Claude Code plugins interactively: generates plugin.json manifest, skills, agents, hooks, MCP/LSP servers, optional marketplace.json. Runs guided questionnaire, writes files to disk, prints test instructions.
Guides developers in creating, scaffolding, validating, and publishing Claude Code plugins including directory structure, plugin.json schema, YAML frontmatter, agents, commands, skills, and marketplace deployment.
Guides creation of Claude Code plugins including skills, commands, agents, hooks, MCP servers, and configuration. Use for 'create plugin', 'make skill', scaffolding structures.
Share bugs, ideas, or general feedback.
Creating plugins IS scaffolding a distributable agent engineering package.
A plugin is the distribution unit for agent engineering — it bundles skills, commands, agents, hooks, MCP servers, and LSP configs into a single installable package. Plugins are not just "skill containers" — they can provide complete workflows with automated enforcement (hooks), external tool access (MCP), and language intelligence (LSP).
Core principle: Plugins are reusable across projects. Keep them focused and well-documented.
Violating the letter of the rules is violating the spirit of the rules.
Pattern: Skill Steps Handoff: none Next: none
Before ANY action, create task list using TaskCreate:
TaskCreate for EACH task below:
- Subject: "[creating-plugins] Task N: <action>"
- ActiveForm: "<doing action>"
Tasks:
Announce: "Created 6 tasks. Starting execution..."
Execution rules:
TaskUpdate status="in_progress" BEFORE starting each taskTaskUpdate status="completed" ONLY after verification passesTaskList to confirm all completedGoal: Understand what the plugin should contain.
Questions to ask:
Naming rules:
my-pluginhelper, utils, anthropic, claudeVerification: Can state plugin name and purpose in one sentence.
Goal: Scaffold the plugin directory.
<plugin-name>/
├── .claude-plugin/
│ └── plugin.json # Manifest
├── skills/ # Capabilities (auto-discovered)
│ └── <skill-name>/
│ ├── SKILL.md
│ └── references/ # On-demand loaded docs
├── commands/ # Slash command aliases (auto-discovered)
│ └── <command>.md
├── agents/ # Subagent definitions (auto-discovered)
│ └── <agent>.md
├── hooks/ # Lifecycle hooks (auto-discovered)
│ └── hooks.json
├── .mcp.json # MCP server configs (auto-discovered)
├── .lsp.json # Language server configs (auto-discovered)
└── README.md
Skills inside a plugin can reference these variables (substituted at runtime):
| Variable | Purpose |
|---|---|
${CLAUDE_SKILL_DIR} | This skill's directory — reference bundled scripts/data |
${CLAUDE_PLUGIN_ROOT} | Plugin install directory (changes on update) |
${CLAUDE_PLUGIN_DATA} | Persistent data directory (survives updates) |
$ARGUMENTS / $N | Arguments passed when invoking the skill |
Skills can also inject live data using shell commands:
!`git status` (runs before Claude sees the content)```! code blockshell: powershell in frontmatter (user must have CLAUDE_CODE_USE_POWERSHELL_TOOL=1)Verification: Directory structure created with all required paths.
Goal: Create the plugin.json manifest file.
CRITICAL: Read references/plugin-templates.md for manifest format, required fields, and marketplace structure.
Verification: plugin.json is valid JSON with required fields.
Goal: Create the first skill using the writing-skills workflow.
CRITICAL: Invoke the writing-skills skill.
Do not write SKILL.md directly. The writing-skills skill ensures:
Verification: Initial skill created and passes skill-reviewer.
Goal: Document the plugin for users.
CRITICAL: Read references/plugin-templates.md for README template.
Verification: README has installation instructions and skill list.
Goal: Verify the plugin installs and works correctly.
Install locally (claude plugin add <path>), verify skills are discoverable and load correctly, then clean up (claude plugin remove <name>).
Verification: Plugin installs without errors, skills are discoverable and load correctly.
| Thought | Reality |
|---|---|
| "Add skills later" | Empty plugins are useless. Ship with at least one. |
| "Skip README" | Undocumented plugins don't get used. |
| "Skip testing" | Broken installs frustrate users. Test it. |
| "One big skill" | Multiple focused skills > one bloated skill. |
| "Version later" | Version from day 1. Semantic versioning matters. |
digraph plugin_creation {
rankdir=TB;
start [label="Create plugin", shape=doublecircle];
gather [label="Task 1: Gather\nrequirements", shape=box];
structure [label="Task 2: Create\ndirectory structure", shape=box];
manifest [label="Task 3: Generate\nmanifest", shape=box];
skill [label="Task 4: Create\ninitial skill", shape=box];
readme [label="Task 5: Write\nREADME", shape=box];
test [label="Task 6: Test\ninstallation", shape=box];
test_pass [label="Install\nworks?", shape=diamond];
done [label="Plugin complete", shape=doublecircle];
start -> gather;
gather -> structure;
structure -> manifest;
manifest -> skill;
skill -> readme;
readme -> test;
test -> test_pass;
test_pass -> done [label="yes"];
test_pass -> manifest [label="no"];
}
Once your plugin is ready:
/plugin marketplace add username/repo
/plugin install plugin-name@marketplace-name