Help us improve
Share bugs, ideas, or general feedback.
From plugin-workshop
Scaffold a Claude Code plugin that installs rules into target projects. Creates the marketplace, plugin manifest, install/uninstall skills, and reference rule files. Use when building a plugin that injects .claude/rules/ into other projects.
npx claudepluginhub pablolion/plugin-workshop --plugin plugin-workshopHow this skill is triggered — by the user, by Claude, or both
Slash command
/plugin-workshop:rule-injectionThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a complete plugin that installs rules into a target project's
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.
Scaffolds a complete Claude Code plugin with manifest, skills, agents, hooks, MCP/LSP servers, and marketplace entry. Walks through component selection and writes files.
Share bugs, ideas, or general feedback.
Scaffold a complete plugin that installs rules into a target project's
./.claude/rules/<topic>/ directory. This is the pattern used by plugins like
subagent-orchestration to distribute reusable agent rules.
<plugin-name>/
├── .claude-plugin/
│ ├── marketplace.json
│ └── plugin.json
└── plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── install-<topic>-rule/
│ │ └── SKILL.md
│ └── uninstall-<topic>-rule/
│ └── SKILL.md
└── references/
└── (rule files go here)
Ask the user for:
my-rules)orchestration, testing, review)Create the directory structure above
Generate .claude-plugin/marketplace.json at repo root:
{
"name": "<plugin-name>",
"description": "<user-provided or generated>",
"owner": { "name": "<from git config>" },
"plugins": [{
"name": "<plugin-name>",
"source": "./plugin",
"description": "<description>",
"version": "0.1.0"
}]
}
Generate ./plugin/.claude-plugin/plugin.json
Generate install skill at ./plugin/skills/install-<topic>-rule/SKILL.md:
./.claude/rules/<topic>/ already exists./.claude/rules/<topic>/./references/ to the targetGenerate uninstall skill at ./plugin/skills/uninstall-<topic>-rule/SKILL.md:
./.claude/rules/<topic>/ existsCreate an empty ./plugin/references/ directory with a .gitkeep file
Create a .gitignore with .claude/tmp/
Report next steps:
./plugin/references/claude plugin marketplace add ./claude plugin marketplace add <org>/<repo>name field in frontmatter (folder name is the name)./ prefixdisable-model-invocation: true (user-invoked only)source must be a subdirectory path (not "." or "./")./plugin/ subdirectory, marketplace manifest at repo rootSee PabloLION/subagent-orchestration for a working example of this pattern.