4.5 KiB
4.5 KiB
name, description
| name | description |
|---|---|
| plugin-creator | Generate new Claude Code plugin scaffolds with configurable components. Use when users want to create a new plugin, start a plugin project, or scaffold plugin components. |
Plugin Creator
Generate well-structured Claude Code plugins following SideQuest marketplace patterns.
When to Use This Skill
- User wants to create a new plugin
- User asks about plugin structure or scaffolding
- User mentions "new plugin", "create plugin", "plugin template"
- User wants to add components (commands, MCP server, hooks, skills) to a project
Plugin Components
| Component | Purpose | Files Created |
|---|---|---|
| commands | Slash commands users invoke | commands/*.md |
| mcp-server | Tools Claude can call | mcp-servers/{name}/index.ts |
| hooks | Event handlers | hooks/hooks.json |
| skills | Autonomous capabilities | skills/{name}/SKILL.md |
Implementation Types
| Type | Use Case | Structure |
|---|---|---|
| Markdown only | Commands/skills are just prompts | No src/, stub scripts |
| TypeScript | CLI tools, utilities, testable logic | src/, full scripts |
Note: MCP server component auto-selects TypeScript (code required).
Quick Reference
Create Plugin
/plugin-template:create my-plugin
Then select:
- Components (commands, mcp-server, hooks, skills)
- Implementation type (markdown or typescript)
Strip TypeScript
/plugin-template:strip my-plugin
Converts TypeScript plugin to markdown-only.
Upgrade to TypeScript
/plugin-template:upgrade my-plugin
Adds TypeScript setup to markdown-only plugin.
Plugin Naming
- Use kebab-case:
my-awesome-plugin - Lowercase letters, numbers, hyphens
- Must start with a letter
Standard Structures
Markdown Only:
plugins/{name}/
├── .claude-plugin/plugin.json
├── package.json ←(stub scripts)
├── commands/
└── skills/{name}/
TypeScript:
plugins/{name}/
├── .claude-plugin/plugin.json
├── package.json ←(full scripts)
├── tsconfig.json
├── src/
│ ├── index.ts
│ └── index.test.ts
├── commands/
├── mcp-servers/{name}/
├── hooks/
└── skills/{name}/
Generation Workflow
- Validate plugin name (kebab-case, no conflicts)
- Ask which components to include
- Create directory structure
- Generate files from templates
- Register in marketplace.json
- Install dependencies with bun
- Verify with tests
Template Patterns
package.json
- Namespace:
@sidequest/{name} - Scripts: test, typecheck, format, lint, check
- Uses Biome for formatting/linting
MCP Server
- Uses
mcpezlibrary - Export types for testing
- Zod schemas for input validation
Commands
- YAML frontmatter with description
- argument-hint for usage hints
- allowed-tools for security
Skills
- YAML frontmatter with name, description
- When to use section
- Quick reference table
Post-Generation Steps
After generating a plugin:
- Navigate:
cd plugins/{name} - Install:
bun install - Test:
bun test - Develop: Add your logic to the generated files
Examples
Example 1: Create Simple Command Plugin
User: I want to create a plugin for managing todo lists
Assistant: I'll create a todo-manager plugin for you.
[Uses /plugin-template:create todo-manager]
[Selects commands component]
[Generates scaffold]
Example 2: Create Full Plugin with MCP
User: Create a plugin that provides git statistics
Assistant: I'll scaffold a git-stats plugin with an MCP server.
[Uses /plugin-template:create git-stats]
[Selects commands, mcp-server, skills]
[Generates full structure]
Example 3: Add Components to Existing Plugin
User: My plugin needs an MCP server now
Assistant: I'll add an MCP server to your existing plugin.
[Creates mcp-servers/{name}/ directory]
[Generates index.ts and package.json]
[Updates .mcp.json]
Troubleshooting
| Issue | Solution |
|---|---|
| Name conflict | Choose different name or remove existing |
| Invalid name | Use kebab-case (lowercase, hyphens) |
| Bun install fails | Check network, run manually |
| Tests fail | Check generated code, fix issues |
Related Commands
/plugin-template:create [name]- Create new plugin/plugin-template:strip [name]- Remove TypeScript, convert to markdown-only/plugin-template:upgrade [name]- Add TypeScript to markdown-only plugin/git:commit- Commit your plugin changes/para-brain:capture- Document plugin ideas