Plugin Creator
Overview
Scaffolds new Claude Code plugins with proper directory structure, required files, marketplace catalog integration, and full validation. Supports all plugin types: command plugins, agent plugins, skill plugins, MCP server plugins, and hybrid combinations.
Prerequisites
- Write access to the
plugins/ directory and .claude-plugin/marketplace.extended.json
jq installed for JSON generation and validation
pnpm run sync-marketplace available at the repository root
./scripts/validate-all-plugins.sh available for post-creation validation
Instructions
- Gather requirements from the user request: plugin name (kebab-case), category (
productivity, security, devops, testing, etc.), plugin type (commands, agents, skills, MCP, or combination), description, and keywords. Default author to the repository owner if unspecified (see ${CLAUDE_SKILL_DIR}/references/plugin-creation-process.md).
- Create the plugin directory structure under
plugins/[category]/[plugin-name]/:plugins/[category]/[plugin-name]/
├── .claude-plugin/
│ └── plugin.json
├── README.md
├── LICENSE
└── [commands/ | agents/ | skills/ | hooks/ | mcp/]
- Generate
.claude-plugin/plugin.json using the template from ${CLAUDE_SKILL_DIR}/references/file-templates.md. Populate all required fields: name, version (default 1.0.0), description, author (name and email), repository, license (default MIT), and keywords (minimum 2).
- Generate
README.md with installation instructions, usage examples, a description section, and contributor information.
- Create a
LICENSE file with MIT license text (or the specified license).
- Generate component files based on the plugin type:
- Commands: create
commands/[command-name].md with proper YAML frontmatter (name, description, model).
- Agents: create
agents/[agent-name].md with YAML frontmatter including model field.
- Skills: create
skills/[skill-name]/SKILL.md with frontmatter (name, description, allowed-tools).
- MCP: create
package.json, tsconfig.json, src/index.ts, and .mcp.json.
- Add the new plugin entry to
.claude-plugin/marketplace.extended.json with matching name, version, category, description, source path, and keywords.
- Run
pnpm run sync-marketplace to regenerate marketplace.json.
- Validate the new plugin by running
./scripts/validate-all-plugins.sh plugins/[category]/[plugin-name]/. Fix any reported issues before completion.
Output
A complete, CI-ready plugin containing:
- All required files (
plugin.json, README.md, LICENSE)
- Component files matching the requested plugin type with proper frontmatter
- Marketplace catalog entry in
marketplace.extended.json
- Synchronized
marketplace.json
- Validation confirmation from
validate-all-plugins.sh
Error Handling
| Error |
Cause |
Solution |
| Plugin name already exists |
Duplicate name in plugins/ directory or marketplace catalog |
Choose a unique name; check existing plugins with ls plugins/*/ |
| Invalid category |
Category not recognized by marketplace schema |
Use one of the valid categories: productivity, security, devops, testing, community, examples, packages, mcp |
| JSON syntax error in generated files |
Malformed template output |
Run jq empty on each generated JSON file and fix syntax |
| Marketplace sync failure |
New entry has schema violations |
Verify all required fields are present in the marketplace.extended.json entry |
| Validation script failure |
Missing required files or incorrect structure |
Review the validation output and create/fix the flagged files |
Examples
Create a command plugin:
Trigger: "Create a new security plugin called 'owasp-scanner' with commands."
Process: Create plugins/security/owasp-scanner/ directory, generate plugin.json, README.md, LICENSE, and commands/scan.md with proper frontmatter. Add to marketplace, sync, validate (see ${CLAUDE_SKILL_DIR}/references/examples.md).
Scaffold a skills plugin:
Trigger: "Scaffold a skills plugin for code review."
Process: Create plugin directory with skills/code-review/SKILL.md containing trigger keywords for code review tasks. Generate plugin.json with appropriate keywords. Add to marketplace, sync, validate.
Create an MCP server plugin:
Trigger: "Create a new MCP plugin for database queries."
Process: Create plugins/mcp/db-query/ with package.json (including @modelcontextprotocol/sdk dependency), tsconfig.json, src/index.ts, .mcp.json, and standard files. Add to marketplace, sync, validate.
Resources
${CLAUDE_SKILL_DIR}/references/plugin-creation-process.md -- detailed creation workflow
${CLAUDE_SKILL_DIR}/references/file-templates.md -- templates for plugin.json, commands, agents, and skills
${CLAUDE_SKILL_DIR}/references/examples.md -- creation scenario walkthroughs
${CLAUDE_SKILL_DIR}/references/errors.md -- error handling patterns
1---2name: plugin-creator3description: Create automatically creates new AI assistant code plugins with proper structure, validation, and marketplace integration when user mentions creating a plugin, new plugin, or plugin from template. specific to AI assistant-code-plugins repository workflow. Use when generating or creating new content. Trigger with phrases like 'generate', 'create', or 'scaffold'.4license: MIT5---6# Plugin Creator78## Overview910Scaffolds new Claude Code plugins with proper directory structure, required files, marketplace catalog integration, and full validation. Supports all plugin types: command plugins, agent plugins, skill plugins, MCP server plugins, and hybrid combinations.1112## Prerequisites1314- Write access to the `plugins/` directory and `.claude-plugin/marketplace.extended.json`15- `jq` installed for JSON generation and validation16- `pnpm run sync-marketplace` available at the repository root17- `./scripts/validate-all-plugins.sh` available for post-creation validation1819## Instructions20211. Gather requirements from the user request: plugin name (kebab-case), category (`productivity`, `security`, `devops`, `testing`, etc.), plugin type (commands, agents, skills, MCP, or combination), description, and keywords. Default author to the repository owner if unspecified (see `${CLAUDE_SKILL_DIR}/references/plugin-creation-process.md`).222. Create the plugin directory structure under `plugins/[category]/[plugin-name]/`:23 ```24 plugins/[category]/[plugin-name]/25 ├── .claude-plugin/26 │ └── plugin.json27 ├── README.md28 ├── LICENSE29 └── [commands/ | agents/ | skills/ | hooks/ | mcp/]30 ```313. Generate `.claude-plugin/plugin.json` using the template from `${CLAUDE_SKILL_DIR}/references/file-templates.md`. Populate all required fields: `name`, `version` (default `1.0.0`), `description`, `author` (name and email), `repository`, `license` (default MIT), and `keywords` (minimum 2).324. Generate `README.md` with installation instructions, usage examples, a description section, and contributor information.335. Create a `LICENSE` file with MIT license text (or the specified license).346. Generate component files based on the plugin type:35 - **Commands**: create `commands/[command-name].md` with proper YAML frontmatter (`name`, `description`, `model`).36 - **Agents**: create `agents/[agent-name].md` with YAML frontmatter including `model` field.37 - **Skills**: create `skills/[skill-name]/SKILL.md` with frontmatter (`name`, `description`, `allowed-tools`).38 - **MCP**: create `package.json`, `tsconfig.json`, `src/index.ts`, and `.mcp.json`.397. Add the new plugin entry to `.claude-plugin/marketplace.extended.json` with matching name, version, category, description, source path, and keywords.408. Run `pnpm run sync-marketplace` to regenerate `marketplace.json`.419. Validate the new plugin by running `./scripts/validate-all-plugins.sh plugins/[category]/[plugin-name]/`. Fix any reported issues before completion.4243## Output4445A complete, CI-ready plugin containing:46- All required files (`plugin.json`, `README.md`, `LICENSE`)47- Component files matching the requested plugin type with proper frontmatter48- Marketplace catalog entry in `marketplace.extended.json`49- Synchronized `marketplace.json`50- Validation confirmation from `validate-all-plugins.sh`5152## Error Handling5354| Error | Cause | Solution |55|---|---|---|56| Plugin name already exists | Duplicate name in `plugins/` directory or marketplace catalog | Choose a unique name; check existing plugins with `ls plugins/*/` |57| Invalid category | Category not recognized by marketplace schema | Use one of the valid categories: `productivity`, `security`, `devops`, `testing`, `community`, `examples`, `packages`, `mcp` |58| JSON syntax error in generated files | Malformed template output | Run `jq empty` on each generated JSON file and fix syntax |59| Marketplace sync failure | New entry has schema violations | Verify all required fields are present in the `marketplace.extended.json` entry |60| Validation script failure | Missing required files or incorrect structure | Review the validation output and create/fix the flagged files |6162## Examples6364**Create a command plugin:**65Trigger: "Create a new security plugin called 'owasp-scanner' with commands."66Process: Create `plugins/security/owasp-scanner/` directory, generate `plugin.json`, `README.md`, `LICENSE`, and `commands/scan.md` with proper frontmatter. Add to marketplace, sync, validate (see `${CLAUDE_SKILL_DIR}/references/examples.md`).6768**Scaffold a skills plugin:**69Trigger: "Scaffold a skills plugin for code review."70Process: Create plugin directory with `skills/code-review/SKILL.md` containing trigger keywords for code review tasks. Generate `plugin.json` with appropriate keywords. Add to marketplace, sync, validate.7172**Create an MCP server plugin:**73Trigger: "Create a new MCP plugin for database queries."74Process: Create `plugins/mcp/db-query/` with `package.json` (including `@modelcontextprotocol/sdk` dependency), `tsconfig.json`, `src/index.ts`, `.mcp.json`, and standard files. Add to marketplace, sync, validate.7576## Resources7778- `${CLAUDE_SKILL_DIR}/references/plugin-creation-process.md` -- detailed creation workflow79- `${CLAUDE_SKILL_DIR}/references/file-templates.md` -- templates for `plugin.json`, commands, agents, and skills80- `${CLAUDE_SKILL_DIR}/references/examples.md` -- creation scenario walkthroughs81- `${CLAUDE_SKILL_DIR}/references/errors.md` -- error handling patterns