plugin-creator

Installation
SKILL.md

Plugin Creator

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.

Core Principles

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.

Workflow

Related skills

More from krzysztofsurdy/code-virtuoso

Installs
13
GitHub Stars
17
First Seen
Apr 14, 2026