| name | validate-plugin |
| description | Validate a Claude Code plugin structure, frontmatter, and MCP tool references |
| argument-hint | [plugin-path] |
| allowed-tools | mcp__plugin_ruflo-core_ruflo__transfer_plugin-info Bash Read Glob Grep |
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.json exists at plugin root
- plugin.json schema — required fields present (name, description, version)
- Skills auto-discovery — every
skills/<name>/SKILL.md is a valid skill (Claude Code auto-discovers from directory; plugin.json MUST NOT list a skills array)
- Commands auto-discovery — every
commands/<name>.md is a valid command (auto-discovered; no commands array in plugin.json)
- Agents auto-discovery — every
agents/<name>.md is a valid agent (auto-discovered; no agents array in plugin.json)
- No legacy arrays in plugin.json — presence of
skills, commands, or agents arrays in plugin.json is a validation error (they cause Claude Code to reject the plugin)
- SKILL.md frontmatter — each skill has
name, description, and allowed-tools (no wildcards)
- Agent frontmatter — each agent has
name, description, and model
- No files in wrong locations — skills/commands/agents not inside
.claude-plugin/
- MCP tool references — tools in
allowed-tools are valid mcp__plugin_ruflo-core_ruflo__* identifiers
Steps
- Read the plugin's
plugin.json and assert no skills / commands / agents arrays present
- Glob
skills/*/SKILL.md, commands/*.md, agents/*.md and validate each frontmatter
- For each SKILL.md, verify frontmatter has required fields and
allowed-tools has no wildcards
- For each agent .md, verify frontmatter has required fields
- Report pass/fail for each check with actionable fix suggestions