From playbooks-virtuoso
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.
npx claudepluginhub krzysztofsurdy/code-virtuoso --plugin playbooks-virtuosoThis skill uses the workspace's default tool permissions.
Scaffold a well-formed Claude Code plugin with exactly the components the user wants -- no more, no less. A plugin is a self-contained directory with a manifest (`.claude-plugin/plugin.json`) plus any of: skills, agents, hooks, MCP servers, LSP servers, bin executables, output styles, default settings. This tool generates the correct structure, writes a valid manifest, adds a marketplace entry ...
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 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'.
Guides full Claude Code plugin lifecycle: scoping, initializing plugin.json, adding commands/agents/hooks/skills, validating with audits, and distributing to marketplaces.
Share bugs, ideas, or general feedback.
Scaffold a well-formed Claude Code plugin with exactly the components the user wants -- no more, no less. A plugin is a self-contained directory with a manifest (.claude-plugin/plugin.json) plus any of: skills, agents, hooks, MCP servers, LSP servers, bin executables, output styles, default settings. This tool generates the correct structure, writes a valid manifest, adds a marketplace entry when requested, and explains how to test locally with --plugin-dir.
| Principle | Meaning |
|---|---|
| Manifest is optional, but recommended | If omitted, the directory name becomes the plugin name and components auto-discover at default locations. Provide one whenever metadata, versioning, or custom paths matter. |
| Default locations first | Prefer skills/, agents/, hooks/hooks.json, .mcp.json, .lsp.json at plugin root. Only override paths in plugin.json when there is a real reason. |
Components live at the root, not in .claude-plugin/ | Only plugin.json belongs inside .claude-plugin/. Everything else (skills/, agents/, etc.) is at the plugin root. This is the single most common mistake. |
Use ${CLAUDE_PLUGIN_ROOT} for every plugin-internal path | Absolute paths break when the plugin is cached. ${CLAUDE_PLUGIN_ROOT} resolves to the installed plugin directory at runtime. Use ${CLAUDE_PLUGIN_DATA} for state that must survive updates. |
| Namespacing is automatic | Plugin skills are always invoked as /plugin-name:skill-name. Names are derived from the name field in plugin.json (or directory name if no manifest). |
| Semantic versioning in one place | Set version in plugin.json OR in the marketplace entry -- not both. When present in both, plugin.json wins. |
This skill uses guided phases -- each phase is a separate file loaded one at a time. Every phase ends with a gate where you must wait for user confirmation before proceeding. Do not skip phases or merge them.
If the user aborts at any phase, discard progress and exit without writing a partial plugin.
| Phase | File | What it covers |
|---|---|---|
| 1 | Plugin Identity | Name, description, version, author, optional metadata |
| 2 | Component Selection | Which component types to include (skills, agents, hooks, etc.) |
| 3 | Component Details | Per-component sub-questionnaires (skills, agents, hooks, MCP, LSP, bin, styles, settings) |
| 4 | Distribution | Standalone, new marketplace, or add to existing marketplace |
| 5 | Write Files | Validate, confirm, write all files to disk |
| 6 | Test Instructions | Test commands, reload, validation, next steps |
Start by loading Phase 1. After the user confirms each phase, load the next. Never load multiple phases at once. Never skip a phase.
.claude-plugin/. Only plugin.json lives there.plugin.json, hooks, or MCP configs. All plugin-internal paths must start with ./ or use ${CLAUDE_PLUGIN_ROOT}.../ -- the plugin cache will not copy them. Symlinks are preserved, so use those if cross-plugin sharing is truly needed.hooks, mcpServers, or permissionMode on a plugin-shipped agent -- these are blocked for security.version in plugin.json and in the marketplace entry. Pick one authoritative location.claude-code-marketplace, anthropic-marketplace, etc. -- full list in references/marketplace-manifest.md).plugin.json breaks the plugin silently in some cases and loudly in others -- both waste the user's time.The smallest valid plugin is a directory with one SKILL.md:
my-plugin/
└── skills/
└── hello/
└── SKILL.md
No plugin.json is required -- the directory name becomes the plugin name. Add a manifest only when you need metadata, versioning, or custom paths.
| Reference | Contents |
|---|---|
| plugin-manifest.md | Complete plugin.json schema: required + metadata + component path fields, userConfig, channels, path behavior rules, ${CLAUDE_PLUGIN_ROOT} and ${CLAUDE_PLUGIN_DATA} usage. |
| marketplace-manifest.md | Complete marketplace.json schema: owner, plugins array, all source types (relative, github, url, git-subdir, npm), strict mode, reserved names. |
| component-templates.md | Ready-to-use templates for plugin.json, SKILL.md, agent files, hooks/hooks.json, .mcp.json, .lsp.json, settings.json, bin/ scripts, and output styles. |
| distribution.md | Hosting options (git hosts, local, URL, npm), semantic versioning, release workflow, auto-update behavior, team marketplace configuration via extraKnownMarketplaces. |
| Situation | Recommended Skill |
|---|---|
| Creating the actual skill content inside a plugin | skill-creator |
| Writing the agent body for a plugin-shipped agent | Check existing agent definitions in agents/ for patterns |
| Generating rules files to pair with a plugin | agentic-rules-writer |
| Writing tickets for plugin-related backlog items | ticket-writer |