skills/developing-claude-code-plugins/SKILL.md
Use when working on Claude Code plugins (creating, modifying, testing, releasing, or maintaining) - provides streamlined workflows, patterns, and examples for the complete plugin lifecycle
npx skillsauth add obra/superpowers-developing-for-claude-code developing-claude-code-pluginsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides efficient workflows for creating Claude Code plugins. Use it to make plugin development fast and correct - it synthesizes official docs into actionable steps and provides working examples.
Use this skill when:
For comprehensive official documentation, use the working-with-claude-code skill to access full docs.
| Need to... | Read This | Official Docs |
|-----------|-----------|---------------|
| Understand directory structure | references/plugin-structure.md | plugins.md |
| Choose a plugin pattern | references/common-patterns.md | plugins.md |
| Make hooks work cross-platform | references/polyglot-hooks.md | hooks.md |
| Debug plugin issues | references/troubleshooting.md | Various |
| See working examples | examples/ directory | N/A |
Before writing code:
Define your plugin's purpose
Choose your pattern (read references/common-patterns.md)
Review examples
examples/simple-greeter-plugin/ - Minimal pluginexamples/full-featured-plugin/ - All components~/.claude/plugins/Create directories (see references/plugin-structure.md for details):
mkdir -p my-plugin/.claude-plugin
mkdir -p my-plugin/skills
# Add other component directories as needed
Write plugin.json (required):
{
"name": "my-plugin",
"version": "1.0.0",
"description": "What your plugin does",
"author": {"name": "Your Name"}
}
See references/plugin-structure.md for complete format.
Create development marketplace (for local testing):
Create .claude-plugin/marketplace.json:
{
"name": "my-dev",
"plugins": [{
"name": "my-plugin",
"source": "./"
}]
}
See references/plugin-structure.md for complete format.
Use TodoWrite to track component creation:
Example:
- Create skill: main-workflow
- Add command: /hello
- Configure hooks
- Write README
- Test installation
For each component type, see:
references/plugin-structure.mdreferences/common-patterns.mdexamples/ directoryInstall for testing:
/plugin marketplace add /path/to/my-plugin
/plugin install my-plugin@my-dev
Then restart Claude Code.
Test each component:
/your-commandIterate:
/plugin uninstall my-plugin@my-dev
# Make changes
/plugin install my-plugin@my-dev
# Restart Claude Code
If something doesn't work, read references/troubleshooting.md for:
Common issues are usually:
${CLAUDE_PLUGIN_ROOT})Write README with:
Version your release using semantic versioning:
version in .claude-plugin/plugin.json"version": "1.2.1" (major.minor.patch)Commit and tag your release:
git add .
git commit -m "Release v1.2.1: [brief description]"
git tag v1.2.1
git push origin main
git push origin v1.2.1
Choose distribution method:
Option A: Direct GitHub distribution
/plugin marketplace add your-org/your-plugin-repoOption B: Marketplace distribution (recommended for multi-plugin collections)
.claude-plugin/marketplace.json with plugin references:
{
"name": "my-marketplace",
"owner": {"name": "Your Name"},
"plugins": [{
"name": "your-plugin",
"source": {
"source": "url",
"url": "https://github.com/your-org/your-plugin.git"
},
"version": "1.2.1",
"description": "Plugin description"
}]
}
/plugin marketplace add your-org/your-marketplaceOption C: Private/team distribution
.claude/settings.json:
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {"source": "github", "repo": "your-org/plugins"}
}
}
}
Test the release:
# Test fresh installation
/plugin marketplace add your-marketplace-source
/plugin install your-plugin@marketplace-name
# Verify functionality, then clean up
/plugin uninstall your-plugin@marketplace-name
Announce and maintain:
Always follow these (from references/plugin-structure.md):
.claude-plugin/ contains ONLY manifests (plugin.json and optionally marketplace.json)
Use ${CLAUDE_PLUGIN_ROOT} for all paths in config files
Use relative paths in plugin.json
./Make scripts executable
chmod +x script.shreferences/plugin-structure.md - Directory layout, file formats, component syntaxreferences/common-patterns.md - When to use each plugin pattern, examplesreferences/polyglot-hooks.md - Cross-platform hook wrapper for Windows/macOS/Linuxreferences/troubleshooting.md - Debug guide for common issuesexamples/simple-greeter-plugin/ - Minimal working plugin (one skill)examples/full-featured-plugin/ - Complete plugin with all components (includes run-hook.cmd)For deep dives into official documentation, use the working-with-claude-code skill to access:
plugins.md - Plugin development overviewplugins-reference.md - Complete API referenceskills.md - Skill authoring guideslash-commands.md - Command formathooks.md, hooks-guide.md - Hook systemmcp.md - MCP server integrationplugin-marketplaces.md - DistributionPlan → Choose pattern, review examples
Create → Make structure, write manifests
Add → Build components (skills, commands, etc.)
Test → Install via dev marketplace
Debug → Use troubleshooting guide
Release → Version, tag, distribute via marketplace
Maintain → Monitor, update, support users
The correct path is the fast path. Use references, follow patterns, test frequently.
tools
Use when working with Claude Code CLI, plugins, hooks, MCP servers, skills, configuration, or any Claude Code feature - provides comprehensive official documentation for all aspects of Claude Code
tools
# Professional Greeting When the user asks you to help write a greeting (email, message, letter opening), use this skill to ensure professional and appropriate tone. ## Context Detection First, determine: 1. **Relationship**: Is this for a colleague, client, superior, or someone you don't know? 2. **Formality level**: Professional formal, professional casual, or friendly professional? 3. **Purpose**: Introduction, follow-up, request, thank you, or general correspondence? 4. **Cultural context
tools
Use when demonstrating plugin workflow features - shows how skills can guide multi-step processes
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.