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'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rcc:creating-pluginsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Creating plugins IS scaffolding a distributable agent engineering package.**
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
npx claudepluginhub wayne930242/reflexive-claude-codeScaffolds a complete Claude Code plugin with manifest, skills, agents, hooks, MCP/LSP servers, and marketplace entry. Walks through component selection and writes files.
Creates Claude Code plugin directory structure with .claude-plugin/plugin.json manifest and optional components like commands, agents, skills, hooks, MCP servers, scripts. Use when building a new plugin from scratch.
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.