Validate Plugin
Validate that a plugin follows the correct Claude Code plugin format.
When to use
After creating or modifying a plugin, run validation to catch structural issues before publishing.
Checks performed
- Directory structure —
.claude-plugin/plugin.jsonexists at plugin root - plugin.json schema — required fields present (name, description, version)
- Skills auto-discovery — every
skills/<name>/SKILL.mdis a valid skill (Claude Code auto-discovers from directory;plugin.jsonMUST NOT list askillsarray) - Commands auto-discovery — every
commands/<name>.mdis a valid command (auto-discovered; nocommandsarray inplugin.json) - Agents auto-discovery — every
agents/<name>.mdis a valid agent (auto-discovered; noagentsarray inplugin.json) - No legacy arrays in plugin.json — presence of
skills,commands, oragentsarrays inplugin.jsonis a validation error (they cause Claude Code to reject the plugin) - SKILL.md frontmatter — each skill has
name,description, andallowed-tools(no wildcards) - Agent frontmatter — each agent has
name,description, andmodel - No files in wrong locations — skills/commands/agents not inside
.claude-plugin/ - MCP tool references — tools in
allowed-toolsare validmcp__claude-flow__*identifiers
Steps
- Read the plugin's
plugin.jsonand assert noskills/commands/agentsarrays present - Glob
skills/*/SKILL.md,commands/*.md,agents/*.mdand validate each frontmatter - For each SKILL.md, verify frontmatter has required fields and
allowed-toolshas no wildcards - For each agent .md, verify frontmatter has required fields
- Report pass/fail for each check with actionable fix suggestions