Detailed validation rules for plugin components against templates in `${CLAUDE_PLUGIN_ROOT}/examples/`.
Validates plugin components against templates to ensure proper structure and voice.
/plugin marketplace add fradser/dotclaude/plugin install plugin-optimizer@frad-dotclaudeoptimize-plugin/references/Detailed validation rules for plugin components against templates in ${CLAUDE_PLUGIN_ROOT}/examples/.
For each file in ./agents/*.md, verify:
name: Present and matches filenamedescription: Present (MAY include 2-4 <example> blocks for routing - optional)color: Present (valid values: blue, cyan, green, yellow, magenta, red)allowed-tools: Present (array of tool names)agents/[agent-name].md uses imperative "Execute..." instead of descriptive "You execute..."
agents/[agent-name].md missing "## Core Responsibilities" section
For each skill with user-invocable: true in frontmatter:
name: Presentdescription: Present (when to invoke skill)user-invocable: true: Must be explicitly setallowed-tools: Present (array of tool names)MANDATORY Phase Format:
## Phase N: [Phase Name] where N is a number (1, 2, 3, ...)**Goal**: - What this phase accomplishes (single sentence)**Actions**: - Numbered list of steps (1., 2., 3., ...)Validation Checklist:
## Phase 1: section exists## Phase N: format (where N = 1, 2, 3...)**Goal**: subsection**Actions**: subsection## Phase N: format patternOptional Pre-Phase Sections:
## Background Knowledge - Domain knowledge, format specs, rules## Initialization - Setup steps before main workflow## Context - Environmental informationskills/[skill-name]/SKILL.md has user-invocable:true but uses declarative voice
skills/[skill-name]/SKILL.md execution sections do not match "## Phase N:" format
skills/[skill-name]/SKILL.md has Phase sections but missing **Goal** and **Actions** subsections
For each skill with user-invocable: false or missing field:
name: Presentdescription: Present (domain/topic covered)user-invocable: false: Should be explicitly set or omittedskills/[skill-name]/SKILL.md uses imperative "Execute..." instead of declarative style
skills/[skill-name]/SKILL.md has Phase structure (should use topic-based sections)
| Component Type | user-invocable | Voice | Structure | Declared in |
|---|---|---|---|---|
| Agent | N/A | Descriptive (You are...) | Knowledge Base + Core Responsibilities + Approach | agents |
| Instruction Skill | true | Imperative (Load...) | Phase-based (Goal + Actions) | commands |
| Knowledge Skill | false | Declarative (is/are...) | Topic-based (concepts/patterns) | skills |
After classifying each skill:
plugin.json commands arrayplugin.json skills array