Validate Claude Code skills, commands, agents, hooks, and plugins against specifications. Checks structure, format, best practices, and common issues before committing or distributing. Use when:...
Validate Claude Code components against specifications and best practices.
.claude-plugin/plugin.json existsDetermine what to validate:
Execute appropriate checks based on component type.
Categorize by severity:
For each issue, provide:
Input: skills/my-skill.md
Checks:
✅ YAML frontmatter valid
✅ Name: my-skill (kebab-case)
✅ Version: 1.0.0 (semver)
✅ Description present
⚠️ No triggers defined
⚠️ Missing "When to Use" section
✅ Has examples
✅ 342 lines (under 500)
❌ Contains TODO on line 45
❌ Uses generic label "helper" in title
Report:
Errors (2):
1. Line 45: TODO found - remove before publishing
2. Line 12: Generic label "helper" - be more specific
Warnings (2):
1. No triggers defined - skill won't auto-activate
2. Missing "When to Use" section - users won't know when to apply
Info (0):
None
Score: 6/10 - Fix errors before publishing
Input: my-plugin/
Checks:
✅ plugin.json exists
✅ Valid JSON
✅ Name: my-plugin
✅ Version: 1.0.0
⚠️ No description
❌ Referenced skill "skill-1" not found in skills/
✅ Directory structure correct
⚠️ No README.md
⚠️ No LICENSE file
Report:
Errors (1):
1. plugin.json references "skill-1" but skills/skill-1.md doesn't exist
Warnings (3):
1. plugin.json missing description field
2. README.md not found - add documentation
3. LICENSE file missing - add if distributing publicly
Info (0):
None
Score: 5/10 - Fix errors, address warnings
Error (Must Fix):
Warning (Should Fix):
Info (Consider):
❌ my-helper
❌ utils-tool
❌ component-stuff
✅ shadcn-component-generator
✅ drizzle-schema-generator
✅ tanstack-query-hook
❌ Missing entirely
✅ triggers:
keywords: [specific, technical, terms]
patterns: ["regex.*patterns"]
❌ ## Feature X
TODO: Implement this later
✅ ## Feature X
Complete implementation
❌ "Helps with things"
❌ "Utility for stuff"
✅ "Generate type-safe API clients from OpenAPI schemas"
✅ "Validate React components for WCAG AAA accessibility"
Component: [name]
Type: [skill|command|agent|hook|plugin]
Location: [file path]
Structure: [✅|⚠️|❌]
Content: [✅|⚠️|❌]
Best Practices: [✅|⚠️|❌]
Errors (must fix): [count]
1. [description]
2. [description]
Warnings (should fix): [count]
1. [description]
2. [description]
Info (consider): [count]
1. [description]
Overall Score: [0-10]
Status: [Ready|Needs work|Not ready]
Recommendations:
- [specific action 1]
- [specific action 2]
Auto-validate before commits:
{
"name": "validate-before-commit",
"event": "user-prompt-submit",
"when": "before",
"command": "claude-validate --skills",
"filter": {
"promptPattern": "commit"
}
}
Create validation command:
---
description: Validate all skills in current plugin
---
# Validate Skills
Run skill-validator on all SKILL.md files in current plugin.
## Usage
\`\`\`
/validate-skills
\`\`\`
Add to GitHub Actions:
- name: Validate Skills
run: claude-validate --all --strict