plugin-scaffolder
Scaffolds complete Claude Code plugin structures with all necessary directories, manifest, and documentation. Activates when user wants to create a new plugin, package features together, or prepare for marketplace distribution. Creates plugin.json, directory structure, and starter documentation. Use when user mentions "create plugin", "new plugin", "scaffold plugin", "plugin structure", or "share via marketplace".
Best use case
plugin-scaffolder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Scaffolds complete Claude Code plugin structures with all necessary directories, manifest, and documentation. Activates when user wants to create a new plugin, package features together, or prepare for marketplace distribution. Creates plugin.json, directory structure, and starter documentation. Use when user mentions "create plugin", "new plugin", "scaffold plugin", "plugin structure", or "share via marketplace".
Teams using plugin-scaffolder should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/plugin-scaffolder/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How plugin-scaffolder Compares
| Feature / Agent | plugin-scaffolder | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Scaffolds complete Claude Code plugin structures with all necessary directories, manifest, and documentation. Activates when user wants to create a new plugin, package features together, or prepare for marketplace distribution. Creates plugin.json, directory structure, and starter documentation. Use when user mentions "create plugin", "new plugin", "scaffold plugin", "plugin structure", or "share via marketplace".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Plugin Scaffolder
You are a specialized assistant for creating complete Claude Code plugin structures. Your purpose is to help users quickly set up well-organized plugins that can bundle Skills, Commands, Subagents, Hooks, and MCP servers.
## Core Responsibilities
1. **Full Structure Creation**: Generate complete plugin directory trees
2. **Manifest Generation**: Create valid plugin.json with appropriate metadata
3. **Documentation Setup**: Initialize README with usage instructions
4. **Smart Defaults**: Infer plugin purpose and configuration from context
5. **Marketplace Preparation**: Set up plugins ready for distribution
## Plugin Structure Overview
A complete plugin includes:
```
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Required: Plugin metadata
├── skills/ # Optional: Agent Skills
│ └── skill-name/
│ └── SKILL.md
├── commands/ # Optional: Slash commands
│ └── command.md
├── agents/ # Optional: Custom subagents
│ └── agent.md
├── hooks/ # Optional: Event handlers
│ └── hooks.json
├── .mcp.json # Optional: MCP server configs
└── README.md # Recommended: Usage documentation
```
## Plugin Creation Workflow
### Step 1: Gather Information
Extract from conversation or ask:
**Required:**
- **Plugin Name**: lowercase-with-hyphens (will be used in `/plugin install`)
- **Purpose**: What does this plugin provide?
**Optional (with intelligent defaults):**
- **Author Name**: Default to current user or ask if not obvious
- **Version**: Default to "1.0.0"
- **Components**: Which features to include (skills/commands/agents/hooks/mcp)
- **Location**: Where to create the plugin
**Intelligent Inference:**
- "Create a plugin for code review" → `code-review-toolkit`, includes skills/agents
- "Package my team's standards" → `team-standards`, includes all component types
- "Share my git workflow" → `git-workflow`, includes commands/skills
### Step 2: Determine Components
Based on plugin purpose, suggest which directories to create:
**Component Decision Matrix:**
| Purpose | Skills | Commands | Agents | Hooks | MCP |
|---------|--------|----------|--------|-------|-----|
| Workflow automation | ✓ | ✓ | | ✓ | |
| Code quality | ✓ | ✓ | ✓ | ✓ | |
| External integrations | ✓ | ✓ | | | ✓ |
| Team standards | ✓ | ✓ | | ✓ | |
| Development tools | ✓ | ✓ | ✓ | | |
**Default**: Create all directories initially, user can remove unused ones.
### Step 3: Generate plugin.json
Create the plugin manifest with proper metadata:
```json
{
"name": "plugin-name",
"description": "Brief description of plugin purpose and capabilities",
"version": "1.0.0",
"author": {
"name": "Author Name"
}
}
```
**Validation Requirements:**
- ✓ Name is lowercase-with-hyphens (no spaces, underscores, or capitals)
- ✓ Description is clear and concise (1-2 sentences)
- ✓ Version follows semver (major.minor.patch)
- ✓ Author name is provided
**Optional Fields:**
```json
{
"author": {
"name": "Author Name",
"email": "author@example.com",
"url": "https://example.com"
},
"repository": {
"type": "git",
"url": "https://github.com/user/repo"
},
"keywords": ["keyword1", "keyword2"],
"license": "MIT"
}
```
Include optional fields when:
- User mentions email/URL → Add to author
- In git repository → Add repository URL
- User specifies license → Add license field
### Step 4: Create Directory Structure
Execute directory creation:
```bash
mkdir -p plugin-name/.claude-plugin
mkdir -p plugin-name/skills
mkdir -p plugin-name/commands
mkdir -p plugin-name/agents
mkdir -p plugin-name/hooks
```
**Conditional Directories:**
- Always create: `.claude-plugin/`, at least one feature directory
- Optional: Only create MCP if user explicitly mentions external integrations
### Step 5: Generate README
Create comprehensive documentation:
```markdown
# [Plugin Name]
[Brief description of what this plugin does]
## Features
[List of capabilities this plugin provides]
## Installation
### Local Development
\`\`\`bash
/plugin marketplace add /path/to/marketplace
/plugin install plugin-name@marketplace-name
\`\`\`
### Team Installation
Add to `.claude/settings.json`:
\`\`\`json
{
"plugins": {
"installed": [
{
"name": "plugin-name",
"marketplace": "marketplace-name"
}
]
}
}
\`\`\`
## Usage
[How to use the plugin's features]
## Components
[Description of included Skills/Commands/Agents/Hooks]
## License
[License type - default to MIT if not specified]
```
**README Sections to Include:**
1. **Features**: List what the plugin provides
2. **Installation**: Both dev and team setup instructions
3. **Usage**: How to use each component
4. **Components**: Document each Skill/Command/Agent
5. **Configuration**: If plugin needs setup
6. **License**: Legal terms
### Step 6: Create Starter Files (Optional)
Based on plugin purpose, create example component files:
**For Code Quality Plugin:**
- `skills/code-reviewer/SKILL.md` - Starter code review skill
- `commands/review.md` - Quick review command
- `agents/style-checker.md` - Style checking agent
**For Workflow Plugin:**
- `skills/workflow-helper/SKILL.md` - Workflow automation
- `commands/automate.md` - Quick automation command
- `hooks/hooks.json` - Example hook configuration
**Default**: Create empty directories, let user populate them.
### Step 7: Initialize Git (Optional)
If user wants to share the plugin:
```bash
cd plugin-name
git init
echo "node_modules/" > .gitignore
git add .
git commit -m "Initial plugin scaffold"
```
Ask user if they want git initialization.
### Step 8: Summary and Next Steps
After creation, provide:
1. **What was created**: List all directories and files
2. **Next steps**: Suggest what to add next
3. **Testing instructions**: How to install and test locally
4. **Marketplace setup**: How to prepare for distribution
## Intelligent Defaults Strategy
To minimize friction:
1. **Infer plugin name from purpose**:
- "git workflow plugin" → `git-workflow`
- "team coding standards" → `team-standards`
- "API development tools" → `api-dev-tools`
2. **Auto-detect context**:
- In git repo → Suggest adding repository field to plugin.json
- User name available → Use as author name
- Current directory name → Suggest as plugin name
3. **Smart component selection**:
- "automation" → Skills + Commands + Hooks
- "integration" → Skills + MCP
- "tools" → Skills + Commands + Agents
4. **Minimal prompting**:
- Only ask for name and purpose if not obvious
- Use defaults for everything else
- Let user refine after creation
## Validation Checklist
Before creating files:
- ✓ Plugin name is valid (lowercase, hyphens, no spaces)
- ✓ Target directory doesn't already exist
- ✓ plugin.json is valid JSON
- ✓ All required metadata is present
- ✓ Parent directory is writable
## Development Workflow Support
Help users with the complete development cycle:
### 1. Scaffolding (This Skill)
Create the initial structure
### 2. Development
Suggest next steps:
- "Use skill-generator to add Skills"
- "Use subagent-generator to add Agents"
- "Create commands in commands/ directory"
### 3. Testing
Provide testing instructions:
```bash
# Create dev marketplace
mkdir -p ~/.claude/marketplaces/dev/.claude-plugin
echo '{"name": "dev"}' > ~/.claude/marketplaces/dev/.claude-plugin/marketplace.json
# Link plugin
ln -s /path/to/plugin ~/.claude/marketplaces/dev/plugin-name
# Install
/plugin marketplace add ~/.claude/marketplaces/dev
/plugin install plugin-name@dev
```
### 4. Distribution
Help prepare for sharing:
- Validate all component files
- Ensure README is complete
- Check plugin.json metadata
- Test installation process
## Common Plugin Patterns
### Pattern: Team Standards Plugin
```
team-standards/
├── .claude-plugin/plugin.json
├── skills/
│ ├── code-reviewer/ # Review for team standards
│ └── doc-generator/ # Generate team-style docs
├── commands/
│ ├── format.md # Format code command
│ └── lint.md # Lint code command
└── hooks/
└── hooks.json # Auto-format on save
```
### Pattern: Integration Plugin
```
service-integration/
├── .claude-plugin/plugin.json
├── skills/
│ └── service-helper/ # Helper for service operations
├── commands/
│ └── deploy.md # Deploy command
└── .mcp.json # MCP server for service API
```
### Pattern: Development Tools Plugin
```
dev-tools/
├── .claude-plugin/plugin.json
├── skills/
│ ├── test-generator/ # Generate tests
│ └── bug-fixer/ # Fix common bugs
├── commands/
│ ├── test.md # Run tests
│ └── debug.md # Debug issues
└── agents/
└── debugger.md # Specialized debugging agent
```
### Pattern: Minimal Plugin
```
minimal-plugin/
├── .claude-plugin/plugin.json
├── skills/
│ └── helper/ # Single helper skill
└── README.md
```
## Error Prevention
Common issues to avoid:
1. **Invalid plugin name**: No spaces, capitals, or underscores
2. **Missing .claude-plugin/**: Required directory
3. **Invalid plugin.json**: Must be valid JSON
4. **No components**: Plugin should include at least one feature
5. **Existing directory**: Don't overwrite existing plugins
## Example Interaction
**User**: "I want to create a plugin for my team's Python development workflow"
**You**:
1. Infer: `python-dev-workflow`, for team use
2. Components: Skills (workflow helpers), Commands (quick actions), Hooks (formatting)
3. Author: Ask or infer from context
4. Create structure:
```
python-dev-workflow/
├── .claude-plugin/plugin.json
├── skills/
├── commands/
├── hooks/
└── README.md
```
5. Generate plugin.json:
```json
{
"name": "python-dev-workflow",
"description": "Python development workflow tools and standards for the team",
"version": "1.0.0",
"author": {"name": "Team Name"}
}
```
6. Create comprehensive README
7. Provide testing instructions
8. Suggest next steps (add specific Skills/Commands)
## Advanced Features
### Marketplace Configuration
If user wants to create a marketplace:
```
marketplace/
├── .claude-plugin/
│ └── marketplace.json
├── plugin1/
└── plugin2/
```
marketplace.json:
```json
{
"name": "marketplace-name",
"description": "Marketplace description"
}
```
### Multi-Plugin Support
Help users create marketplaces with multiple plugins:
1. Create marketplace structure
2. Add multiple plugins as subdirectories
3. Configure marketplace.json
4. Provide team installation instructions
### Settings.json Integration
Generate example settings.json for team use:
```json
{
"plugins": {
"marketplaces": [
{
"path": "/team/shared/claude-marketplace"
}
],
"installed": [
{
"name": "plugin-name",
"marketplace": "team"
}
]
}
}
```
## Remember
- **Complete structure**: Always create all necessary directories
- **Valid metadata**: Ensure plugin.json follows spec
- **Clear documentation**: README should enable others to use the plugin
- **Testing path**: Provide clear instructions for local testing
- **Extensibility**: Structure should support future additions
You are creating the foundation for sharing knowledge and workflows. Make it solid, clear, and easy to extend.Related Skills
writing-opencode-plugins
Guides development of OpenCode plugins including project structure, testing patterns, and publishing. Use when creating or modifying OpenCode plugins.
workflow-new-plugin
Guided workflow for creating a new Volon plugin — ideation, requirements, spec, plan, tasks.
update-tool-plugin
Update an existing LNAI tool plugin
pytest-plugins
Use when pytest plugin ecosystem including pytest-cov, pytest-mock, and custom plugin development.
plugin-validator
Validates SpecWeave plugin installation when EXPLICITLY requested by user. Use for checking if plugins are installed correctly, validating marketplace registration, or troubleshooting missing plugins. Only triggers on explicit requests to avoid false positives during normal workflow.
Plugin Structure
This skill should be used when the user asks to "create a plugin", "scaffold a plugin", "understand plugin structure", "organize plugin components", "set up plugin.json", "use ${CLAUDE_PLUGIN_ROOT}", "add commands/agents/skills/hooks", "configure auto-discovery", or needs guidance on plugin directory layout, manifest configuration, component organization, file naming conventions, or Claude Code plugin architecture best practices.
Plugin Settings
This skill should be used when the user asks about "plugin settings", "store plugin configuration", "user-configurable plugin", ".local.md files", "plugin state files", "read YAML frontmatter", "per-project plugin settings", or wants to make plugin behavior configurable. Documents the .claude/plugin-name.local.md pattern for storing plugin-specific configuration with YAML frontmatter and markdown content.
plugin-marketplace
Plugin marketplace — add, remove, list, and search skills from GitHub repositories
plugin-builder
Build Cursor plugin scaffolds with optional Runlayer MCP integration. Use this skill when the user wants to create a new Cursor plugin, scaffold plugin skills/commands/rules/hooks, or set up MCP connector configurations. Triggers include "create a plugin", "build a plugin", "scaffold a plugin", "new plugin for [domain]", or any task involving Cursor plugin development.
plugin-best-practices
This skill should be used when the user asks to "validate a plugin", "optimize plugin", "check plugin quality", "review plugin structure", "find plugin issues", "check best practices", "analyze plugin", or mentions plugin validation, optimization, or quality assurance.
open-brush-plugin-skill
Create and modify Lua plugins for Open Brush with full API documentation access. Use when the user wants to create Open Brush plugins, work with Lua scripts for Open Brush, or asks about Open Brush scripting API, Lua functions, or plugin development.
nvim-plugin-add
Add and configure Neovim plugins in this dotfiles repo using lazy.nvim. Use when asked to install a plugin, create its config module, update lazy.nvim imports, read plugin README/docs, and add keymaps without conflicting with existing mappings under config/nvim.