Plugins Meta Skill
🚨 MANDATORY: Invoke docs-management First
STOP - Before providing ANY response about Claude Code plugins:
- INVOKE
docs-management skill
- QUERY for the user's specific topic
- BASE all responses EXCLUSIVELY on official documentation loaded
Skipping this step results in outdated or incorrect information.
Verification Checkpoint
Before responding, verify:
If ANY checkbox is unchecked, STOP and invoke docs-management first.
Overview
Central authority for Claude Code plugins. This skill uses 100% delegation to docs-management - it contains NO duplicated official documentation.
Architecture: Pure delegation with keyword registry. All official documentation is accessed via docs-management skill queries.
When to Use This Skill
Keywords: plugins, plugin creation, plugin structure, plugin.json, plugin manifest, plugin commands, plugin agents, plugin skills, plugin hooks, plugin marketplaces, marketplace.json, /plugin command, plugin install, plugin uninstall, plugin enable, plugin disable, plugin browse, team plugins, plugin development, plugin testing, plugin debugging, plugin sharing, plugin distribution, MCP servers plugins, plugin settings, enabledPlugins, extraKnownMarketplaces, plugin hook configuration, disable plugin hook, CLAUDE_HOOK_ENABLED, hook environment variables, configurable hooks, hook enforcement mode
Use this skill when:
- Creating new plugins
- Understanding plugin structure and components
- Writing plugin manifest (plugin.json)
- Adding commands, agents, skills, hooks to plugins
- Installing plugins from marketplaces
- Managing plugin marketplaces
- Setting up team plugin workflows
- Testing plugins locally
- Debugging plugin issues
- Sharing and distributing plugins
- Configuring MCP servers in plugins
- Managing plugin settings
- Registering plugins in marketplace.json (CRITICAL for distribution)
- Configuring plugin hooks for consumers to enable/disable
- Making plugin hooks configurable via environment variables
Keyword Registry for docs-management Queries
Use these keywords when querying docs-management skill for official documentation:
Plugin Fundamentals
| Topic |
Keywords |
| Overview |
"plugins", "plugin system", "extend Claude Code" |
| Quickstart |
"plugin quickstart", "first plugin", "create plugin" |
| Structure |
"plugin structure", "plugin directory structure" |
| Manifest |
"plugin.json", "plugin manifest", "plugin metadata" |
Plugin Components
| Topic |
Keywords |
| Commands |
"plugin commands", "commands directory plugins" |
| Agents |
"plugin agents", "agents directory plugins" |
| Skills |
"plugin skills", "skills directory plugins" |
| Hooks |
"plugin hooks", "hooks.json plugins" |
| MCP Servers |
"MCP servers plugins", ".mcp.json plugins" |
Plugin Installation
| Topic |
Keywords |
| Install Commands |
"/plugin command", "plugin install", "plugin management" |
| Enable/Disable |
"plugin enable", "plugin disable", "plugin uninstall" |
| Interactive Menu |
"plugin browse", "/plugin interactive" |
| Verification |
"verify plugin installation", "plugin /help" |
Plugin Marketplaces
| Topic |
Keywords |
| Overview |
"plugin marketplaces", "marketplace catalogs" |
| Adding Marketplaces |
"marketplace add", "add marketplaces" |
| Marketplace Manifest |
"marketplace.json", "marketplace manifest" |
| Marketplace Sources |
"plugin sources", "marketplace sources" |
| Schema Fields |
"metadata.pluginRoot", "strict field marketplace", "plugin entry schema" |
| Reserved Names |
"reserved marketplace name", "marketplace name validation" |
Team Configuration
| Topic |
Keywords |
| Team Plugins |
"team plugin workflows", "repository-level plugins" |
| Auto Installation |
"automatic plugin installation", "team plugins setup" |
| Configuration |
"team marketplaces configuration", ".claude/settings.json plugins" |
Plugin Development
| Topic |
Keywords |
| Development Workflow |
"plugin development", "develop plugins" |
| Local Testing |
"test plugins locally", "local marketplace" |
| Iteration |
"plugin iteration", "reinstall plugin" |
| Organization |
"organize complex plugins", "plugin organization" |
| Environment Variables |
"CLAUDE_PLUGIN_ROOT", "plugin environment variables" |
Debugging and Troubleshooting
| Topic |
Keywords |
| Debugging |
"debug plugin issues", "plugin debugging" |
| Debug Mode |
"claude --debug", "plugin loading debug" |
| Validation |
"plugin validation", "claude plugin validate" |
| Common Issues |
"plugin not working", "plugin troubleshooting" |
Distribution
| Topic |
Keywords |
| Sharing |
"share plugins", "plugin distribution" |
| Documentation |
"plugin documentation", "plugin README" |
| Versioning |
"plugin versioning", "semantic versioning plugins" |
| Marketplace Registration |
"marketplace.json", "register plugin", "plugin entry", "marketplace plugins array" |
Settings and Configuration
| Topic |
Keywords |
| Plugin Settings |
"plugin settings", "enabledPlugins" |
| Marketplace Settings |
"extraKnownMarketplaces", "marketplace configuration" |
Plugin Hook Configuration
| Topic |
Keywords |
| Hook Basics |
"plugin hooks", "hooks.json plugins" |
| Auto-Discovery |
"hooks auto-discovery", "default hooks location", "hooks.json default" |
| Manifest Format |
"hooks field format", "hooks path", "hooks.json path" |
| Consumer Control |
"disable plugin hook", "hook environment variables" |
| Enforcement Modes |
"hook enforcement mode", "CLAUDE_HOOK_ENFORCEMENT" |
| Disable Hooks |
"CLAUDE_HOOK_ENABLED", "disable specific hook" |
Note: Plugin hook configuration uses environment variables (not YAML configs like local hooks). See Plugin Hook Utilities Reference for implementation patterns and Consumer Configuration Reference for end-user guidance.
Component Discovery & Validation
| Topic |
Keywords |
| Auto-Discovery |
"plugin auto-discovery", "default locations", "component discovery" |
| Default Paths |
"plugin default paths", "default directory", "path behavior" |
| Optional Fields |
"plugin optional fields", "required vs optional", "manifest optional" |
| Path Formats |
"component path fields", "path format", "hooks path format" |
| Field Validation |
"plugin field validation", "manifest validation", "field format" |
Reference
| Topic |
Keywords |
| Technical Reference |
"plugins reference", "plugin specifications" |
| Component Reference |
"plugin components reference", "plugin schemas" |
| Manifest Path Fields |
"component path fields", "custom plugin paths", "path behavior rules" |
Quick Decision Tree
What do you want to do?
- Create a new plugin -> Query docs-management: "plugin quickstart", "create plugin"
- Understand plugin structure -> Query docs-management: "plugin structure", "plugin directory structure"
- Write plugin manifest -> Query docs-management: "plugin.json", "plugin manifest"
- Add commands to plugin -> Query docs-management: "plugin commands", "commands directory plugins"
- Add agents to plugin -> Query docs-management: "plugin agents", "agents directory plugins"
- Add skills to plugin -> Query docs-management: "plugin skills", "skills directory plugins"
- Add hooks to plugin -> Query docs-management: "plugin hooks", "hooks.json plugins"
- Install a plugin -> Query docs-management: "/plugin command", "plugin install"
- Add a marketplace -> Query docs-management: "marketplace add", "plugin marketplaces"
- Set up team plugins -> Query docs-management: "team plugin workflows"
- Test plugin locally -> Query docs-management: "test plugins locally"
- Debug plugin issues -> Query docs-management: "debug plugin issues", "plugin troubleshooting"
- Validate plugin structure -> Query docs-management: "claude plugin validate", "plugin validation"
- Debug plugin loading -> Query docs-management: "claude --debug", "plugin loading debug"
- Register plugin in marketplace -> Query docs-management: "marketplace.json", "register plugin"
- Make hooks configurable -> See Plugin Hook Utilities Reference
- Disable a plugin's hook -> See Consumer Configuration Reference
- Complete plugin reset -> Run
/user-config:reset-plugins (clears cache + registry + settings)
Topic Coverage
Plugin Structure
- .claude-plugin/ directory
- plugin.json manifest file
- agents/ directory for subagents
- skills/ directory for skills
- hooks/ directory with hooks.json
- .mcp.json for MCP servers
Component Auto-Discovery & Default Locations
Plugin components may be auto-discovered from default locations. Query docs-management for current behavior:
Query Keywords:
- "plugin auto-discovery", "default locations", "component discovery"
- "plugin default paths", "path behavior rules"
- "hooks default location", "commands default location"
- "plugin optional fields", "required vs optional"
Key Principle: Before flagging missing manifest fields, query docs-management to verify whether the component uses auto-discovery from a default location. Many manifest fields are optional when components exist at their default paths.
Plugin Manifest (plugin.json)
- name field (required)
- description field
- version field (semantic versioning)
- author object
- Additional metadata fields
Plugin Component Types
- Agents (markdown files in agents/)
- Skills (SKILL.md files in skills/)
- Hooks (hooks.json configuration)
- MCP servers (.mcp.json configuration)
Plugin Installation Commands
- /plugin (interactive menu)
- /plugin install plugin-name@marketplace
- /plugin uninstall plugin-name@marketplace
- /plugin enable plugin-name@marketplace
- /plugin disable plugin-name@marketplace
- /plugin marketplace add
Marketplace Configuration
- marketplace.json structure
- name and owner fields
- plugins array with source references
- Local vs remote marketplace sources
- Git repository marketplaces
Team Plugin Workflows
- Repository-level configuration (.claude/settings.json)
- Automatic installation on trust
- Team-wide plugin consistency
- Rollout best practices
Development Workflow
- Local marketplace setup
- Development directory structure
- Plugin iteration cycle (uninstall/reinstall)
- Testing components individually
Debugging Techniques
- Structure verification
- Component isolation testing
- Validation tools
- Common issue resolution
Distribution Strategies
- README documentation
- Semantic versioning
- Marketplace submission
- Team testing before release
- Marketplace registration (see below)
Marketplace Registration (CRITICAL)
⚠️ ALWAYS register new plugins in marketplace.json - plugins are NOT discoverable until registered.
When creating a new plugin, you MUST:
- Create the plugin structure (
.claude-plugin/plugin.json, components)
- Register the plugin in
marketplace.json with proper entry format
- Verify registration by checking
/plugin command lists the new plugin
Query docs-management for current marketplace.json schema:
- Keywords: "marketplace.json", "marketplace plugins array", "plugin entry schema"
- This ensures you use the current format (schema may evolve)
Common oversight: Creating a plugin but forgetting to add it to marketplace.json - the plugin will exist but be invisible to users.
Component Registration in plugin.json (CRITICAL)
⚠️ ALWAYS check plugin.json when adding new agents, commands, or skills - the manifest may use explicit arrays instead of directory auto-discovery.
Two Registration Modes:
| Mode |
plugin.json Syntax |
Behavior |
| Directory (auto-discovery) |
"agents": "./agents" |
All .md files in directory are loaded automatically |
| Explicit array |
"agents": ["./agents/foo.md", "./agents/bar.md"] |
ONLY listed files are loaded - new files IGNORED |
When to register manually:
- Check
plugin.json for the component type you're adding
- If it's an explicit array → Add your new file to the array
- If it's a directory path → No action needed (auto-discovered)
Common oversight: Creating a new agent file but forgetting to add it to the agents array in plugin.json - the file will exist but the agent won't load (silent failure, no error message).
Example (explicit array):
{
"agents": [
"./agents/existing-agent.md",
"./agents/new-agent.md" // <-- ADD THIS LINE
]
}
Why this matters: Claude Code v2.1.x doesn't provide error messages when agents aren't registered - they simply don't appear in the available agents list.
Plugin Data Locations (Two-Location Architecture)
Documentation Verification: Query docs-management: "plugin cache plugin storage locations" for current
Claude Code plugin data locations. The paths below were accurate at time of writing but may change between releases.
IMPORTANT: Plugin data is stored in TWO locations. Both must be cleared for a complete reset:
| Location |
Contains |
Cleared By |
~/.claude/plugins/ |
Plugin cache, registry, marketplace cache |
/clear-plugin-cache (partial), /user-config:reset-plugins (complete) |
~/.claude/settings.json → enabledPlugins |
Plugin enable/disable state |
/user-config:reset-plugins only |
Common Confusion: /clear-plugin-cache only clears the cache directory, preserving the registry. If you see "Plugin not found in marketplace" errors after cache clearing, the enabledPlugins in settings.json still references the old plugins.
Solution: Use /user-config:reset-plugins for complete plugin reset.
Settings Integration
- enabledPlugins configuration
- extraKnownMarketplaces configuration
- Plugin-related settings in settings.json
Plugin Hook Configuration (Repository-Specific)
Plugin hooks are automatically merged when a plugin is enabled. Unlike local hooks (.claude/hooks/), plugin hooks use environment variables for consumer control:
Environment Variable Convention:
| Variable |
Values |
Purpose |
CLAUDE_HOOK_{NAME}_ENABLED |
1/true (enabled), 0/false (disabled) |
Enable/disable hook |
CLAUDE_HOOK_ENFORCEMENT_{NAME} |
block, warn, log |
Control enforcement behavior |
CLAUDE_HOOK_LOG_LEVEL |
debug, info, warn, error |
Logging verbosity |
Consumer Configuration via settings.json:
{
"env": {
"CLAUDE_HOOK_MARKDOWN_LINT_ENABLED": "1",
"CLAUDE_HOOK_ENFORCEMENT_SECRET_SCAN": "warn"
}
}
For Plugin Authors: See Plugin Hook Utilities Reference
For Plugin Consumers: See Consumer Configuration Reference
Delegation Patterns
Standard Query Pattern
User asks: "How do I create a plugin?"
1. Invoke docs-management skill
2. Use keywords: "plugin quickstart", "create plugin"
3. Load official documentation
4. Provide guidance based EXCLUSIVELY on official docs
Multi-Topic Query Pattern
User asks: "I want to create a plugin with commands, hooks, and MCP servers"
1. Invoke docs-management skill with multiple queries:
- "plugin structure", "plugin.json"
- "plugin commands", "commands directory plugins"
- "plugin hooks", "hooks.json plugins"
- "MCP servers plugins", ".mcp.json plugins"
2. Synthesize guidance from official documentation
Troubleshooting Pattern
User reports: "My plugin commands aren't showing up"
1. Invoke docs-management skill
2. Use keywords: "debug plugin issues", "verify plugin installation"
3. Check official docs for plugin structure requirements
4. Guide user through debugging based on official docs
Troubleshooting Quick Reference
| Issue |
Keywords for docs-management |
| Plugin not installing |
"/plugin command", "plugin install" |
| Commands not appearing |
"plugin commands", "verify plugin installation" |
| Agents not available |
"plugin agents", "agents directory plugins" |
| Hooks not triggering |
"plugin hooks", "hooks.json plugins" |
| Marketplace not found |
"marketplace add", "plugin marketplaces" |
| Team plugins not syncing |
"team plugin workflows", "automatic plugin installation" |
| Plugin structure invalid |
"plugin structure", "debug plugin issues" |
| MCP server not starting |
"MCP servers plugins", "CLAUDE_PLUGIN_ROOT" |
| Custom paths not loading |
"component path fields", "path behavior rules" |
| Plugin validation errors |
"claude plugin validate", "plugin validation" |
| Hook not running |
Check CLAUDE_HOOK_{NAME}_ENABLED env var in settings.json |
| Hook enforcement wrong |
Check CLAUDE_HOOK_ENFORCEMENT_{NAME} env var in settings.json |
| "hooks: must end with .json" |
hooks field must be file path (e.g., "./hooks.json"), not directory |
| "Name is reserved" error |
See Reserved Marketplace Names Reference |
| Plugin not showing in /plugin |
Check if registered in marketplace.json - see Marketplace Registration |
| Plugin errors after clearing cache |
Plugin data in TWO locations: ~/.claude/plugins/ AND enabledPlugins in ~/.claude/settings.json - use /user-config:reset-plugins for complete reset |
Repository-Specific Notes
This repository does not currently use plugins. Plugin documentation is relevant for:
- Understanding how plugins extend Claude Code functionality
- Potential future plugin development for this repository
- Understanding plugin-based distribution of commands, agents, skills, and hooks
When working with plugin topics, always use the docs-management skill to access official documentation.
Reserved Marketplace Names
See Reserved Marketplace Names Reference for:
- Known reserved names that cause "Name is reserved" errors
- How to fix marketplace.json when encountering this error
- Migration guidance for existing installations
Auditing Plugins
This skill provides the validation criteria used by the plugin-component-auditor agent for formal audits.
Audit Resources
| Resource |
Location |
Purpose |
| Audit Framework |
references/audit-framework.md |
Query guides and scoring criteria |
Scoring Categories
| Category |
Points |
Key Criteria |
| Manifest Structure |
25 |
Valid plugin.json, required fields |
| Component Organization |
25 |
Proper directories for all components |
| Namespace Compliance |
20 |
Consistent naming, no conflicts |
| Documentation |
15 |
README, descriptions, examples |
| Distribution Readiness |
15 |
Version, marketplace requirements |
Thresholds: 85+ = PASS, 70-84 = PASS WITH WARNINGS, <70 = FAIL
Related Agent
The plugin-component-auditor agent (Haiku model) performs formal audits using this skill:
- Auto-loads this skill via
skills: plugin-development
- Uses audit framework and docs-management for rules
- Generates structured audit reports
- Invoked by
/audit-plugins command
External Technology Validation
When auditing plugins that use external technologies (scripts, packages, runtimes), the auditor MUST validate claims using MCP servers before flagging findings.
Technologies Requiring MCP Validation:
- .NET/C# scripts: Validate with microsoft-learn + perplexity
- Node.js/npm packages: Validate with context7 + perplexity
- Python scripts/packages: Validate with context7 + perplexity
- Shell scripts: Validate with perplexity
- Any version-specific claims: ALWAYS validate with perplexity
Validation Rule:
Never flag a technology usage as incorrect without first:
- Querying appropriate MCP server(s) for current documentation
- Verifying with perplexity for recent changes (especially .NET 10+)
- Documenting MCP sources in the finding
Stale Data Warning:
- microsoft-learn can return cached/outdated documentation
- ALWAYS pair microsoft-learn with perplexity for version verification
- Trust perplexity for version numbers and recently-released features
References
Official Documentation (via docs-management skill):
- Primary: "plugins", "plugins-reference", "plugin-marketplaces" documentation
- Related: "skills", "sub-agents", "hooks", "mcp", "settings"
Repository-Specific:
- Plugin settings:
.claude/settings.json (enabledPlugins, extraKnownMarketplaces)
- Plugin Hook Utilities Reference - For plugin authors implementing configurable hooks
- Consumer Configuration Reference - For plugin consumers controlling hook behavior
Version History
- v1.3.3 (2026-01-10): Added component registration documentation
- Added "Component Registration in plugin.json (CRITICAL)" section
- Documents explicit array vs directory auto-discovery modes
- Added detection and fix guidance for missing agent registration
- Cross-referenced from subagent-development skill
- v1.3.2 (2025-12-30): Added plugin reset documentation
- Added "Plugin Data Locations (Two-Location Architecture)" section
- Added Quick Decision Tree entry for complete plugin reset (entry 18)
- Added troubleshooting entry for plugin errors after clearing cache
- Documents two-location architecture and
/user-config:reset-plugins command
- v1.3.1 (2025-12-26): Added marketplace registration reminder
- Added "Marketplace Registration (CRITICAL)" section to Topic Coverage
- Added marketplace registration to Quick Decision Tree (entry 15)
- Added "Marketplace Registration" to Distribution keyword registry
- Added troubleshooting entry for "Plugin not showing in /plugin"
- Updated "When to Use This Skill" to include marketplace registration
- Emphasizes querying docs-management for current marketplace.json schema
- v1.3.0 (2025-12-25): Expanded docs-management delegation for component discovery
- Added "Component Auto-Discovery & Default Locations" section with query keywords
- Expanded keyword registry with auto-discovery, default paths, optional fields, path formats
- Added troubleshooting entry for "hooks: must end with .json" error
- Enhanced audit-framework.md with expanded Documentation Query Guide
- Added "Validation Protocol" section enforcing docs-first validation
- All component validation now requires docs-management verification before flagging issues
- v1.2.1 (2025-12-16): Reserved marketplace names documentation
- Added "Reserved Marketplace Names (Undocumented)" section documenting runtime validation
- Added troubleshooting entry for "Name is reserved" error
- Added keyword entry for reserved names topic
- Documents that
claude-code-plugins name is reserved for anthropics organization
- v1.2.0 (2025-12-01): Environment variable standardization
- Updated to
CLAUDE_HOOK_{NAME}_ENABLED pattern (from deprecated CLAUDE_HOOK_DISABLED_*)
- Updated all documentation, examples, and references to new pattern
- Updated plugin-hook-utilities.md with new
is_hook_enabled() function supporting defaults
- Updated plugin-hook-consumer-config.md with new configuration examples
- Updated troubleshooting entries for new pattern
- v1.1.0 (2025-11-30): Plugin hook configuration documentation
- Added Plugin Hook Configuration section to keyword registry
- Added topic coverage for hook configuration patterns (env vars, enforcement modes)
- Added decision tree paths: make hooks configurable, disable plugin hooks
- Added troubleshooting entries for hook configuration issues
- Created references directory with plugin-hook-utilities.md and plugin-hook-consumer-config.md
- v1.0.1 (2025-11-27): Minor enhancements
- Added keywords: CLAUDE_PLUGIN_ROOT, claude --debug, claude plugin validate, marketplace schema fields, path behavior rules
- Expanded decision tree: +2 paths (validate plugin structure, debug plugin loading)
- Expanded troubleshooting: +3 entries (MCP server, custom paths, validation errors)
- v1.0.0 (2025-11-26): Initial release
- Pure delegation architecture
- Comprehensive keyword registry
- Quick decision tree
- Topic coverage for all plugin features
- Troubleshooting quick reference
Last Updated
Date: 2026-01-10
Model: claude-opus-4-5-20251101
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: plugin-development3description: Central authority for Claude Code plugins. Covers plugin creation, plugin structure (plugin.json, commands/, agents/, skills/, hooks/), plugin manifest configuration, plugin installation and management (/plugin command), plugin marketplaces (marketplace.json, adding marketplaces), team plugin workflows, plugin development and testing, plugin debugging, plugin sharing and distribution, MCP servers in plugins, and plugin settings. Assists with creating plugins, installing from marketplaces, configuring team plugins, and troubleshooting plugin issues. Delegates 100% to docs-management skill for official documentation. Use when this capability is needed.4---56# Plugins Meta Skill78## 🚨 MANDATORY: Invoke docs-management First910> **STOP - Before providing ANY response about Claude Code plugins:**11>12> 1. **INVOKE** `docs-management` skill13> 2. **QUERY** for the user's specific topic14> 3. **BASE** all responses EXCLUSIVELY on official documentation loaded15>16> **Skipping this step results in outdated or incorrect information.**1718### Verification Checkpoint1920Before responding, verify:2122- [ ] Did I invoke docs-management skill?23- [ ] Did official documentation load?24- [ ] Is my response based EXCLUSIVELY on official docs?2526If ANY checkbox is unchecked, STOP and invoke docs-management first.2728---2930## Overview3132Central authority for Claude Code plugins. This skill uses **100% delegation to docs-management** - it contains NO duplicated official documentation.3334**Architecture:** Pure delegation with keyword registry. All official documentation is accessed via docs-management skill queries.3536## When to Use This Skill3738**Keywords:** plugins, plugin creation, plugin structure, plugin.json, plugin manifest, plugin commands, plugin agents, plugin skills, plugin hooks, plugin marketplaces, marketplace.json, /plugin command, plugin install, plugin uninstall, plugin enable, plugin disable, plugin browse, team plugins, plugin development, plugin testing, plugin debugging, plugin sharing, plugin distribution, MCP servers plugins, plugin settings, enabledPlugins, extraKnownMarketplaces, plugin hook configuration, disable plugin hook, CLAUDE_HOOK_ENABLED, hook environment variables, configurable hooks, hook enforcement mode3940**Use this skill when:**4142- Creating new plugins43- Understanding plugin structure and components44- Writing plugin manifest (plugin.json)45- Adding commands, agents, skills, hooks to plugins46- Installing plugins from marketplaces47- Managing plugin marketplaces48- Setting up team plugin workflows49- Testing plugins locally50- Debugging plugin issues51- Sharing and distributing plugins52- Configuring MCP servers in plugins53- Managing plugin settings54- **Registering plugins in marketplace.json** (CRITICAL for distribution)55- **Configuring plugin hooks for consumers to enable/disable**56- **Making plugin hooks configurable via environment variables**5758## Keyword Registry for docs-management Queries5960Use these keywords when querying docs-management skill for official documentation:6162### Plugin Fundamentals6364| Topic | Keywords |65| --- | --- |66| Overview | "plugins", "plugin system", "extend Claude Code" |67| Quickstart | "plugin quickstart", "first plugin", "create plugin" |68| Structure | "plugin structure", "plugin directory structure" |69| Manifest | "plugin.json", "plugin manifest", "plugin metadata" |7071### Plugin Components7273| Topic | Keywords |74| --- | --- |75| Commands | "plugin commands", "commands directory plugins" |76| Agents | "plugin agents", "agents directory plugins" |77| Skills | "plugin skills", "skills directory plugins" |78| Hooks | "plugin hooks", "hooks.json plugins" |79| MCP Servers | "MCP servers plugins", ".mcp.json plugins" |8081### Plugin Installation8283| Topic | Keywords |84| --- | --- |85| Install Commands | "/plugin command", "plugin install", "plugin management" |86| Enable/Disable | "plugin enable", "plugin disable", "plugin uninstall" |87| Interactive Menu | "plugin browse", "/plugin interactive" |88| Verification | "verify plugin installation", "plugin /help" |8990### Plugin Marketplaces9192| Topic | Keywords |93| --- | --- |94| Overview | "plugin marketplaces", "marketplace catalogs" |95| Adding Marketplaces | "marketplace add", "add marketplaces" |96| Marketplace Manifest | "marketplace.json", "marketplace manifest" |97| Marketplace Sources | "plugin sources", "marketplace sources" |98| Schema Fields | "metadata.pluginRoot", "strict field marketplace", "plugin entry schema" |99| Reserved Names | "reserved marketplace name", "marketplace name validation" |100101### Team Configuration102103| Topic | Keywords |104| --- | --- |105| Team Plugins | "team plugin workflows", "repository-level plugins" |106| Auto Installation | "automatic plugin installation", "team plugins setup" |107| Configuration | "team marketplaces configuration", ".claude/settings.json plugins" |108109### Plugin Development110111| Topic | Keywords |112| --- | --- |113| Development Workflow | "plugin development", "develop plugins" |114| Local Testing | "test plugins locally", "local marketplace" |115| Iteration | "plugin iteration", "reinstall plugin" |116| Organization | "organize complex plugins", "plugin organization" |117| Environment Variables | "CLAUDE_PLUGIN_ROOT", "plugin environment variables" |118119### Debugging and Troubleshooting120121| Topic | Keywords |122| --- | --- |123| Debugging | "debug plugin issues", "plugin debugging" |124| Debug Mode | "claude --debug", "plugin loading debug" |125| Validation | "plugin validation", "claude plugin validate" |126| Common Issues | "plugin not working", "plugin troubleshooting" |127128### Distribution129130| Topic | Keywords |131| --- | --- |132| Sharing | "share plugins", "plugin distribution" |133| Documentation | "plugin documentation", "plugin README" |134| Versioning | "plugin versioning", "semantic versioning plugins" |135| Marketplace Registration | "marketplace.json", "register plugin", "plugin entry", "marketplace plugins array" |136137### Settings and Configuration138139| Topic | Keywords |140| --- | --- |141| Plugin Settings | "plugin settings", "enabledPlugins" |142| Marketplace Settings | "extraKnownMarketplaces", "marketplace configuration" |143144### Plugin Hook Configuration145146| Topic | Keywords |147| --- | --- |148| Hook Basics | "plugin hooks", "hooks.json plugins" |149| Auto-Discovery | "hooks auto-discovery", "default hooks location", "hooks.json default" |150| Manifest Format | "hooks field format", "hooks path", "hooks.json path" |151| Consumer Control | "disable plugin hook", "hook environment variables" |152| Enforcement Modes | "hook enforcement mode", "CLAUDE_HOOK_ENFORCEMENT" |153| Disable Hooks | "CLAUDE_HOOK_ENABLED", "disable specific hook" |154155**Note:** Plugin hook configuration uses environment variables (not YAML configs like local hooks). See [Plugin Hook Utilities Reference](references/plugin-hook-utilities.md) for implementation patterns and [Consumer Configuration Reference](references/plugin-hook-consumer-config.md) for end-user guidance.156157### Component Discovery & Validation158159| Topic | Keywords |160| --- | --- |161| Auto-Discovery | "plugin auto-discovery", "default locations", "component discovery" |162| Default Paths | "plugin default paths", "default directory", "path behavior" |163| Optional Fields | "plugin optional fields", "required vs optional", "manifest optional" |164| Path Formats | "component path fields", "path format", "hooks path format" |165| Field Validation | "plugin field validation", "manifest validation", "field format" |166167### Reference168169| Topic | Keywords |170| --- | --- |171| Technical Reference | "plugins reference", "plugin specifications" |172| Component Reference | "plugin components reference", "plugin schemas" |173| Manifest Path Fields | "component path fields", "custom plugin paths", "path behavior rules" |174175## Quick Decision Tree176177**What do you want to do?**1781791. **Create a new plugin** -> Query docs-management: "plugin quickstart", "create plugin"1802. **Understand plugin structure** -> Query docs-management: "plugin structure", "plugin directory structure"1813. **Write plugin manifest** -> Query docs-management: "plugin.json", "plugin manifest"1824. **Add commands to plugin** -> Query docs-management: "plugin commands", "commands directory plugins"1835. **Add agents to plugin** -> Query docs-management: "plugin agents", "agents directory plugins"1846. **Add skills to plugin** -> Query docs-management: "plugin skills", "skills directory plugins"1857. **Add hooks to plugin** -> Query docs-management: "plugin hooks", "hooks.json plugins"1868. **Install a plugin** -> Query docs-management: "/plugin command", "plugin install"1879. **Add a marketplace** -> Query docs-management: "marketplace add", "plugin marketplaces"18810. **Set up team plugins** -> Query docs-management: "team plugin workflows"18911. **Test plugin locally** -> Query docs-management: "test plugins locally"19012. **Debug plugin issues** -> Query docs-management: "debug plugin issues", "plugin troubleshooting"19113. **Validate plugin structure** -> Query docs-management: "claude plugin validate", "plugin validation"19214. **Debug plugin loading** -> Query docs-management: "claude --debug", "plugin loading debug"19315. **Register plugin in marketplace** -> Query docs-management: "marketplace.json", "register plugin"19416. **Make hooks configurable** -> See [Plugin Hook Utilities Reference](references/plugin-hook-utilities.md)19517. **Disable a plugin's hook** -> See [Consumer Configuration Reference](references/plugin-hook-consumer-config.md)19618. **Complete plugin reset** -> Run `/user-config:reset-plugins` (clears cache + registry + settings)197198## Topic Coverage199200### Plugin Structure201202- .claude-plugin/ directory203- plugin.json manifest file204- agents/ directory for subagents205- skills/ directory for skills206- hooks/ directory with hooks.json207- .mcp.json for MCP servers208209### Component Auto-Discovery & Default Locations210211Plugin components may be auto-discovered from default locations. Query docs-management for current behavior:212213**Query Keywords:**214215- "plugin auto-discovery", "default locations", "component discovery"216- "plugin default paths", "path behavior rules"217- "hooks default location", "commands default location"218- "plugin optional fields", "required vs optional"219220**Key Principle:** Before flagging missing manifest fields, query docs-management to verify whether the component uses auto-discovery from a default location. Many manifest fields are optional when components exist at their default paths.221222### Plugin Manifest (plugin.json)223224- name field (required)225- description field226- version field (semantic versioning)227- author object228- Additional metadata fields229230### Plugin Component Types231232- Agents (markdown files in agents/)233- Skills (SKILL.md files in skills/)234- Hooks (hooks.json configuration)235- MCP servers (.mcp.json configuration)236237### Plugin Installation Commands238239- /plugin (interactive menu)240- /plugin install plugin-name@marketplace241- /plugin uninstall plugin-name@marketplace242- /plugin enable plugin-name@marketplace243- /plugin disable plugin-name@marketplace244- /plugin marketplace add245246### Marketplace Configuration247248- marketplace.json structure249- name and owner fields250- plugins array with source references251- Local vs remote marketplace sources252- Git repository marketplaces253254### Team Plugin Workflows255256- Repository-level configuration (.claude/settings.json)257- Automatic installation on trust258- Team-wide plugin consistency259- Rollout best practices260261### Development Workflow262263- Local marketplace setup264- Development directory structure265- Plugin iteration cycle (uninstall/reinstall)266- Testing components individually267268### Debugging Techniques269270- Structure verification271- Component isolation testing272- Validation tools273- Common issue resolution274275### Distribution Strategies276277- README documentation278- Semantic versioning279- Marketplace submission280- Team testing before release281- **Marketplace registration** (see below)282283### Marketplace Registration (CRITICAL)284285**⚠️ ALWAYS register new plugins in marketplace.json** - plugins are NOT discoverable until registered.286287**When creating a new plugin, you MUST:**2882891. Create the plugin structure (`.claude-plugin/plugin.json`, components)2902. Register the plugin in `marketplace.json` with proper entry format2913. Verify registration by checking `/plugin` command lists the new plugin292293**Query docs-management for current marketplace.json schema:**294295- Keywords: "marketplace.json", "marketplace plugins array", "plugin entry schema"296- This ensures you use the current format (schema may evolve)297298**Common oversight:** Creating a plugin but forgetting to add it to marketplace.json - the plugin will exist but be invisible to users.299300### Component Registration in plugin.json (CRITICAL)301302**⚠️ ALWAYS check plugin.json when adding new agents, commands, or skills** - the manifest may use explicit arrays instead of directory auto-discovery.303304**Two Registration Modes:**305306| Mode | plugin.json Syntax | Behavior |307| --- | --- | --- |308| **Directory (auto-discovery)** | `"agents": "./agents"` | All `.md` files in directory are loaded automatically |309| **Explicit array** | `"agents": ["./agents/foo.md", "./agents/bar.md"]` | ONLY listed files are loaded - new files IGNORED |310311**When to register manually:**3123131. Check `plugin.json` for the component type you're adding3142. If it's an **explicit array** → Add your new file to the array3153. If it's a **directory path** → No action needed (auto-discovered)316317**Common oversight:** Creating a new agent file but forgetting to add it to the `agents` array in `plugin.json` - the file will exist but the agent won't load (silent failure, no error message).318319**Example (explicit array):**320321```json322{323 "agents": [324 "./agents/existing-agent.md",325 "./agents/new-agent.md" // <-- ADD THIS LINE326 ]327}328```329330**Why this matters:** Claude Code v2.1.x doesn't provide error messages when agents aren't registered - they simply don't appear in the available agents list.331332### Plugin Data Locations (Two-Location Architecture)333334> **Documentation Verification:** Query `docs-management: "plugin cache plugin storage locations"` for current335> Claude Code plugin data locations. The paths below were accurate at time of writing but may change between releases.336337**IMPORTANT:** Plugin data is stored in TWO locations. Both must be cleared for a complete reset:338339| Location | Contains | Cleared By |340| --- | --- | --- |341| `~/.claude/plugins/` | Plugin cache, registry, marketplace cache | `/clear-plugin-cache` (partial), `/user-config:reset-plugins` (complete) |342| `~/.claude/settings.json` → `enabledPlugins` | Plugin enable/disable state | `/user-config:reset-plugins` only |343344**Common Confusion:** `/clear-plugin-cache` only clears the cache directory, preserving the registry. If you see "Plugin not found in marketplace" errors after cache clearing, the `enabledPlugins` in settings.json still references the old plugins.345346**Solution:** Use `/user-config:reset-plugins` for complete plugin reset.347348### Settings Integration349350- enabledPlugins configuration351- extraKnownMarketplaces configuration352- Plugin-related settings in settings.json353354### Plugin Hook Configuration (Repository-Specific)355356Plugin hooks are automatically merged when a plugin is enabled. Unlike local hooks (`.claude/hooks/`), plugin hooks use **environment variables** for consumer control:357358**Environment Variable Convention:**359360| Variable | Values | Purpose |361| --- | --- | --- |362| `CLAUDE_HOOK_{NAME}_ENABLED` | `1`/`true` (enabled), `0`/`false` (disabled) | Enable/disable hook |363| `CLAUDE_HOOK_ENFORCEMENT_{NAME}` | `block`, `warn`, `log` | Control enforcement behavior |364| `CLAUDE_HOOK_LOG_LEVEL` | `debug`, `info`, `warn`, `error` | Logging verbosity |365366**Consumer Configuration via settings.json:**367368```json369{370 "env": {371 "CLAUDE_HOOK_MARKDOWN_LINT_ENABLED": "1",372 "CLAUDE_HOOK_ENFORCEMENT_SECRET_SCAN": "warn"373 }374}375```376377**For Plugin Authors:** See [Plugin Hook Utilities Reference](references/plugin-hook-utilities.md)378**For Plugin Consumers:** See [Consumer Configuration Reference](references/plugin-hook-consumer-config.md)379380## Delegation Patterns381382### Standard Query Pattern383384```text385User asks: "How do I create a plugin?"3863871. Invoke docs-management skill3882. Use keywords: "plugin quickstart", "create plugin"3893. Load official documentation3904. Provide guidance based EXCLUSIVELY on official docs391```392393### Multi-Topic Query Pattern394395```text396User asks: "I want to create a plugin with commands, hooks, and MCP servers"3973981. Invoke docs-management skill with multiple queries:399 - "plugin structure", "plugin.json"400 - "plugin commands", "commands directory plugins"401 - "plugin hooks", "hooks.json plugins"402 - "MCP servers plugins", ".mcp.json plugins"4032. Synthesize guidance from official documentation404```405406### Troubleshooting Pattern407408```text409User reports: "My plugin commands aren't showing up"4104111. Invoke docs-management skill4122. Use keywords: "debug plugin issues", "verify plugin installation"4133. Check official docs for plugin structure requirements4144. Guide user through debugging based on official docs415```416417## Troubleshooting Quick Reference418419| Issue | Keywords for docs-management |420| --- | --- |421| Plugin not installing | "/plugin command", "plugin install" |422| Commands not appearing | "plugin commands", "verify plugin installation" |423| Agents not available | "plugin agents", "agents directory plugins" |424| Hooks not triggering | "plugin hooks", "hooks.json plugins" |425| Marketplace not found | "marketplace add", "plugin marketplaces" |426| Team plugins not syncing | "team plugin workflows", "automatic plugin installation" |427| Plugin structure invalid | "plugin structure", "debug plugin issues" |428| MCP server not starting | "MCP servers plugins", "CLAUDE_PLUGIN_ROOT" |429| Custom paths not loading | "component path fields", "path behavior rules" |430| Plugin validation errors | "claude plugin validate", "plugin validation" |431| Hook not running | Check CLAUDE_HOOK_{NAME}_ENABLED env var in settings.json |432| Hook enforcement wrong | Check CLAUDE_HOOK_ENFORCEMENT_{NAME} env var in settings.json |433| "hooks: must end with .json" | hooks field must be file path (e.g., "./hooks.json"), not directory |434| "Name is reserved" error | See [Reserved Marketplace Names Reference](references/reserved-marketplace-names.md) |435| Plugin not showing in /plugin | Check if registered in marketplace.json - see [Marketplace Registration](#marketplace-registration-critical) |436| Plugin errors after clearing cache | Plugin data in TWO locations: `~/.claude/plugins/` AND `enabledPlugins` in `~/.claude/settings.json` - use `/user-config:reset-plugins` for complete reset |437438## Repository-Specific Notes439440This repository does not currently use plugins. Plugin documentation is relevant for:441442- Understanding how plugins extend Claude Code functionality443- Potential future plugin development for this repository444- Understanding plugin-based distribution of commands, agents, skills, and hooks445446When working with plugin topics, always use the docs-management skill to access official documentation.447448### Reserved Marketplace Names449450See [Reserved Marketplace Names Reference](references/reserved-marketplace-names.md) for:451452- Known reserved names that cause "Name is reserved" errors453- How to fix marketplace.json when encountering this error454- Migration guidance for existing installations455456## Auditing Plugins457458This skill provides the validation criteria used by the `plugin-component-auditor` agent for formal audits.459460### Audit Resources461462| Resource | Location | Purpose |463| --- | --- | --- |464| Audit Framework | `references/audit-framework.md` | Query guides and scoring criteria |465466### Scoring Categories467468| Category | Points | Key Criteria |469| --- | --- | --- |470| Manifest Structure | 25 | Valid plugin.json, required fields |471| Component Organization | 25 | Proper directories for all components |472| Namespace Compliance | 20 | Consistent naming, no conflicts |473| Documentation | 15 | README, descriptions, examples |474| Distribution Readiness | 15 | Version, marketplace requirements |475476**Thresholds:** 85+ = PASS, 70-84 = PASS WITH WARNINGS, <70 = FAIL477478### Related Agent479480The `plugin-component-auditor` agent (Haiku model) performs formal audits using this skill:481482- Auto-loads this skill via `skills: plugin-development`483- Uses audit framework and docs-management for rules484- Generates structured audit reports485- Invoked by `/audit-plugins` command486487### External Technology Validation488489When auditing plugins that use external technologies (scripts, packages, runtimes), the auditor MUST validate claims using MCP servers before flagging findings.490491**Technologies Requiring MCP Validation:**492493- .NET/C# scripts: Validate with microsoft-learn + perplexity494- Node.js/npm packages: Validate with context7 + perplexity495- Python scripts/packages: Validate with context7 + perplexity496- Shell scripts: Validate with perplexity497- Any version-specific claims: ALWAYS validate with perplexity498499**Validation Rule:**500501Never flag a technology usage as incorrect without first:5025031. Querying appropriate MCP server(s) for current documentation5042. Verifying with perplexity for recent changes (especially .NET 10+)5053. Documenting MCP sources in the finding506507**Stale Data Warning:**508509- microsoft-learn can return cached/outdated documentation510- ALWAYS pair microsoft-learn with perplexity for version verification511- Trust perplexity for version numbers and recently-released features512513## References514515**Official Documentation (via docs-management skill):**516517- Primary: "plugins", "plugins-reference", "plugin-marketplaces" documentation518- Related: "skills", "sub-agents", "hooks", "mcp", "settings"519520**Repository-Specific:**521522- Plugin settings: `.claude/settings.json` (enabledPlugins, extraKnownMarketplaces)523- [Plugin Hook Utilities Reference](references/plugin-hook-utilities.md) - For plugin authors implementing configurable hooks524- [Consumer Configuration Reference](references/plugin-hook-consumer-config.md) - For plugin consumers controlling hook behavior525526## Version History527528- **v1.3.3** (2026-01-10): Added component registration documentation529 - Added "Component Registration in plugin.json (CRITICAL)" section530 - Documents explicit array vs directory auto-discovery modes531 - Added detection and fix guidance for missing agent registration532 - Cross-referenced from subagent-development skill533- **v1.3.2** (2025-12-30): Added plugin reset documentation534 - Added "Plugin Data Locations (Two-Location Architecture)" section535 - Added Quick Decision Tree entry for complete plugin reset (entry 18)536 - Added troubleshooting entry for plugin errors after clearing cache537 - Documents two-location architecture and `/user-config:reset-plugins` command538- **v1.3.1** (2025-12-26): Added marketplace registration reminder539 - Added "Marketplace Registration (CRITICAL)" section to Topic Coverage540 - Added marketplace registration to Quick Decision Tree (entry 15)541 - Added "Marketplace Registration" to Distribution keyword registry542 - Added troubleshooting entry for "Plugin not showing in /plugin"543 - Updated "When to Use This Skill" to include marketplace registration544 - Emphasizes querying docs-management for current marketplace.json schema545- **v1.3.0** (2025-12-25): Expanded docs-management delegation for component discovery546 - Added "Component Auto-Discovery & Default Locations" section with query keywords547 - Expanded keyword registry with auto-discovery, default paths, optional fields, path formats548 - Added troubleshooting entry for "hooks: must end with .json" error549 - Enhanced audit-framework.md with expanded Documentation Query Guide550 - Added "Validation Protocol" section enforcing docs-first validation551 - All component validation now requires docs-management verification before flagging issues552- **v1.2.1** (2025-12-16): Reserved marketplace names documentation553 - Added "Reserved Marketplace Names (Undocumented)" section documenting runtime validation554 - Added troubleshooting entry for "Name is reserved" error555 - Added keyword entry for reserved names topic556 - Documents that `claude-code-plugins` name is reserved for `anthropics` organization557- **v1.2.0** (2025-12-01): Environment variable standardization558 - Updated to `CLAUDE_HOOK_{NAME}_ENABLED` pattern (from deprecated `CLAUDE_HOOK_DISABLED_*`)559 - Updated all documentation, examples, and references to new pattern560 - Updated plugin-hook-utilities.md with new `is_hook_enabled()` function supporting defaults561 - Updated plugin-hook-consumer-config.md with new configuration examples562 - Updated troubleshooting entries for new pattern563- **v1.1.0** (2025-11-30): Plugin hook configuration documentation564 - Added Plugin Hook Configuration section to keyword registry565 - Added topic coverage for hook configuration patterns (env vars, enforcement modes)566 - Added decision tree paths: make hooks configurable, disable plugin hooks567 - Added troubleshooting entries for hook configuration issues568 - Created references directory with plugin-hook-utilities.md and plugin-hook-consumer-config.md569- **v1.0.1** (2025-11-27): Minor enhancements570 - Added keywords: CLAUDE_PLUGIN_ROOT, claude --debug, claude plugin validate, marketplace schema fields, path behavior rules571 - Expanded decision tree: +2 paths (validate plugin structure, debug plugin loading)572 - Expanded troubleshooting: +3 entries (MCP server, custom paths, validation errors)573- **v1.0.0** (2025-11-26): Initial release574 - Pure delegation architecture575 - Comprehensive keyword registry576 - Quick decision tree577 - Topic coverage for all plugin features578 - Troubleshooting quick reference579580---581582## Last Updated583584**Date:** 2026-01-10585**Model:** claude-opus-4-5-20251101586587---588> Converted and distributed by [TomeVault](https://tomevault.io/claim/melodic-software) — claim your Tome and manage your conversions.589<!-- tomevault:4.0:skill_md:2026-04-11 -->