Arguments: [plugin-name] [--all] [--skip-ai]. Wherever <arguments> appears below, substitute the text the user typed after the skill name.
Skills Validation
Deterministic activation-quality checks plus AI-powered body review for all skills and agents.
What this validates
Deterministic checks (script)
- Directive voice -- description uses ALWAYS invoke, MUST use, TRIGGER WHEN, or use PROACTIVELY
- TRIGGER WHEN clause -- explicit activation boundary present
- DO NOT TRIGGER WHEN clause -- when present, must name the sibling to route to; absence is fine when no confusable sibling exists
- Negative constraint -- "Do not X directly" prevents Claude from bypassing (skills only)
- Passive pattern detection -- flags "Helps with", "Can be used for", "Use when" and similar low-activation wording
- Description length -- hard limit 1024 chars, recommended under 300
- Token budget -- total description chars across all components vs 15,000 char budget
- SKILL.md body size -- warn over 300 lines, flag over 500 lines, suggest references/ split
- Agent body size -- flag over 800 lines
- Em dash detection -- flags the em dash character anywhere
- Token estimate -- SKILL.md body chars/4, target under 5,000 tokens
- Example tags -- detects
<example> tags, recommends 3-5
- context: fork -- reports if skill uses isolated subagent context
- disable-model-invocation -- reports if auto-triggering is disabled
- allowed-tools in agents -- flags agents with unrestricted tool access
- !command preprocessor -- detects shell command injection in skill body
AI review dimensions (Step 5)
- Structure -- section organization, logical flow, no wall-of-text
- Clarity -- actionable instructions, no vague directives, teaches only what Claude lacks
- Redundancy -- no repetition, no filler, every sentence adds unique value
- Progressive disclosure -- large content split into references/ appropriately
- Tool restrictions -- agents have appropriate tools for their role
- Isolation needs -- destructive skills should use context: fork
Procedure
Step 1: Run the validation script
# Validate all plugins
python plugins/marketplace-ops/skills/skills-creator/scripts/validate_skills.py --all
# Validate a specific plugin
python plugins/marketplace-ops/skills/skills-creator/scripts/validate_skills.py <plugin-name>
Step 2: Review the report
The script outputs:
- Token budget usage (current chars / 15,000 budget)
- Estimated total body tokens across all skills
- Per-component issues grouped by plugin
- Activation score summary table (1-5 per component)
- Components scoring below 3/5 flagged for attention
Step 3: Fix low-scoring descriptions
For each component scoring below 3/5, rewrite the description following the high-activation template:
description: >
"<Domain summary>" argument-hint: "<usage hint>".
TRIGGER WHEN: <specific triggers>.
DO NOT TRIGGER WHEN: <exclusions>.
Step 4: Re-validate deterministic checks
Run the script again to confirm all scores improved.
Step 5: AI body quality review
Skip this step if the user passed --skip-ai.
Read the SKILL.md body and agent body of each component that scored below 4/5 OR was flagged for token/line/body issues. For each, evaluate these dimensions:
5A. Structure (score 1-5)
- 5/5: Clear headers (## Purpose, ## Procedure, ## Constraints, ## Output), logical flow
- 3/5: Some structure but sections bleed into each other or headers are vague
- 1/5: Wall-of-text, no headers, instructions mixed with examples
5B. Clarity (score 1-5)
- 5/5: Every instruction is specific, imperative, teaches only what Claude doesn't already know
- 3/5: Mostly clear but has vague directives ("handle appropriately", "use best judgment")
- 1/5: Instructions repeat common knowledge, contradict each other, or are ambiguous
5C. Redundancy (score 1-5)
- 5/5: Every sentence adds unique value, no repetition
- 3/5: Some duplication between description and body, or preambles before actionable content
- 1/5: Same instruction stated multiple ways, "You are an expert in..." throat-clearing, verbose filler
5D. Progressive disclosure (score 1-5)
- Skip if body <150 lines
- 5/5: Body under 300 lines OR large body with well-used references/ directory
- 3/5: Body >300 lines with references/ but wrong content split
- 1/5: Body >300 lines with no references/ directory
5E. Tool restrictions (score 1-5, agents only)
- 5/5: Tools list matches agent's actual needs precisely
- 3/5: Slightly over-permissive but not dangerous
- 1/5: All tools allowed when agent only needs Read/Grep, or missing tools it clearly needs
5F. Isolation needs (score 1-5)
- 5/5: Pure knowledge/conventions skill (no isolation needed) OR destructive skill with context: fork
- 3/5: Runs shell commands but low risk
- 1/5: Performs destructive operations, generates huge output, or calls external APIs without context: fork
Output format
For each reviewed component:
### <plugin>/<component> -- Body Quality
| Dimension | Score | Issue |
|-------------|-------|-------|
| Structure | X/5 | ... |
| Clarity | X/5 | ... |
| Redundancy | X/5 | ... |
| Disclosure | X/5 | ... |
| Tool restr. | X/5 | ... |
| Isolation | X/5 | ... |
**Top fix:** <single most impactful improvement>
Step 6: Final re-validate
Run the script one more time to confirm all deterministic fixes landed cleanly.
1---2name: skills-validate3description: Validate skill and agent quality: deterministic activation checks plus AI body review. TRIGGER WHEN: the user asks to validate skill/agent quality, enforce trigger patterns, check description token budgets, or run pre-commit marketplace checks. DO NOT TRIGGER WHEN: checking structural JSON references only (use /marketplace-ops:marketplace-health) or doing an AI-only content review (use /marketplace-ops:marketplace-review).4---56> Arguments: `[plugin-name] [--all] [--skip-ai]`. Wherever `<arguments>` appears below, substitute the text the user typed after the skill name.78<!-- Generated by the Daodan compiler for codex. Edit the kernel, never this file. -->910# Skills Validation1112Deterministic activation-quality checks plus AI-powered body review for all skills and agents.1314## What this validates1516### Deterministic checks (script)17181. **Directive voice** -- description uses ALWAYS invoke, MUST use, TRIGGER WHEN, or use PROACTIVELY192. **TRIGGER WHEN clause** -- explicit activation boundary present203. **DO NOT TRIGGER WHEN clause** -- when present, must name the sibling to route to; absence is fine when no confusable sibling exists214. **Negative constraint** -- "Do not X directly" prevents Claude from bypassing (skills only)225. **Passive pattern detection** -- flags "Helps with", "Can be used for", "Use when" and similar low-activation wording236. **Description length** -- hard limit 1024 chars, recommended under 300247. **Token budget** -- total description chars across all components vs 15,000 char budget258. **SKILL.md body size** -- warn over 300 lines, flag over 500 lines, suggest references/ split269. **Agent body size** -- flag over 800 lines2710. **Em dash detection** -- flags the em dash character anywhere2811. **Token estimate** -- SKILL.md body chars/4, target under 5,000 tokens2912. **Example tags** -- detects `<example>` tags, recommends 3-53013. **context: fork** -- reports if skill uses isolated subagent context3114. **disable-model-invocation** -- reports if auto-triggering is disabled3215. **allowed-tools in agents** -- flags agents with unrestricted tool access3316. **!command preprocessor** -- detects shell command injection in skill body3435### AI review dimensions (Step 5)3637- **Structure** -- section organization, logical flow, no wall-of-text38- **Clarity** -- actionable instructions, no vague directives, teaches only what Claude lacks39- **Redundancy** -- no repetition, no filler, every sentence adds unique value40- **Progressive disclosure** -- large content split into references/ appropriately41- **Tool restrictions** -- agents have appropriate tools for their role42- **Isolation needs** -- destructive skills should use context: fork4344## Procedure4546### Step 1: Run the validation script4748```bash49# Validate all plugins50python plugins/marketplace-ops/skills/skills-creator/scripts/validate_skills.py --all5152# Validate a specific plugin53python plugins/marketplace-ops/skills/skills-creator/scripts/validate_skills.py <plugin-name>54```5556### Step 2: Review the report5758The script outputs:59- Token budget usage (current chars / 15,000 budget)60- Estimated total body tokens across all skills61- Per-component issues grouped by plugin62- Activation score summary table (1-5 per component)63- Components scoring below 3/5 flagged for attention6465### Step 3: Fix low-scoring descriptions6667For each component scoring below 3/5, rewrite the description following the high-activation template:6869```yaml70description: >71 "<Domain summary>" argument-hint: "<usage hint>".72 TRIGGER WHEN: <specific triggers>.73 DO NOT TRIGGER WHEN: <exclusions>.74```7576### Step 4: Re-validate deterministic checks7778Run the script again to confirm all scores improved.7980### Step 5: AI body quality review8182Skip this step if the user passed `--skip-ai`.8384Read the SKILL.md body and agent body of each component that scored below 4/5 OR was flagged for token/line/body issues. For each, evaluate these dimensions:8586#### 5A. Structure (score 1-5)8788- **5/5**: Clear headers (## Purpose, ## Procedure, ## Constraints, ## Output), logical flow89- **3/5**: Some structure but sections bleed into each other or headers are vague90- **1/5**: Wall-of-text, no headers, instructions mixed with examples9192#### 5B. Clarity (score 1-5)9394- **5/5**: Every instruction is specific, imperative, teaches only what Claude doesn't already know95- **3/5**: Mostly clear but has vague directives ("handle appropriately", "use best judgment")96- **1/5**: Instructions repeat common knowledge, contradict each other, or are ambiguous9798#### 5C. Redundancy (score 1-5)99100- **5/5**: Every sentence adds unique value, no repetition101- **3/5**: Some duplication between description and body, or preambles before actionable content102- **1/5**: Same instruction stated multiple ways, "You are an expert in..." throat-clearing, verbose filler103104#### 5D. Progressive disclosure (score 1-5)105106- Skip if body <150 lines107- **5/5**: Body under 300 lines OR large body with well-used references/ directory108- **3/5**: Body >300 lines with references/ but wrong content split109- **1/5**: Body >300 lines with no references/ directory110111#### 5E. Tool restrictions (score 1-5, agents only)112113- **5/5**: Tools list matches agent's actual needs precisely114- **3/5**: Slightly over-permissive but not dangerous115- **1/5**: All tools allowed when agent only needs Read/Grep, or missing tools it clearly needs116117#### 5F. Isolation needs (score 1-5)118119- **5/5**: Pure knowledge/conventions skill (no isolation needed) OR destructive skill with context: fork120- **3/5**: Runs shell commands but low risk121- **1/5**: Performs destructive operations, generates huge output, or calls external APIs without context: fork122123#### Output format124125For each reviewed component:126127```128### <plugin>/<component> -- Body Quality129130| Dimension | Score | Issue |131|-------------|-------|-------|132| Structure | X/5 | ... |133| Clarity | X/5 | ... |134| Redundancy | X/5 | ... |135| Disclosure | X/5 | ... |136| Tool restr. | X/5 | ... |137| Isolation | X/5 | ... |138139**Top fix:** <single most impactful improvement>140```141142### Step 6: Final re-validate143144Run the script one more time to confirm all deterministic fixes landed cleanly.