| name | validate-manifest |
| description | Validate .claude/manifest.json structure and references. Apply after modifying the manifest to ensure correctness. |
| user-invocable | false |
Validate Manifest
Validates the .claude/manifest.json file for structure, required fields, and dependency references.
When to Apply
Use this skill after modifying the manifest:
- Adding a new skill, agent, or command
- Updating dependencies (
depends_on_skills, depends_on_agents)
- Changing categories
Validation Script
Run the validation script:
uv run .claude/scripts/validate_manifest.py
Exit codes:
0 - Manifest is valid
1 - Validation errors found (printed to stderr)
What Gets Validated
| Check | Description |
|---|
| JSON syntax | File must be valid JSON |
| Required fields | Each entry type has required fields (see below) |
| Categories | Skill categories must exist in categories object |
| Dependencies | All referenced skills/agents must exist |
| Uniqueness | Names must be unique within each type |
Required Fields by Type
Skills
{
"name": "skill-name",
"category": "conventions|assessment|templates|utilities",
"description": "Brief description"
}
Agents
{
"name": "agent-name",
"description": "Brief description",
"depends_on_skills": ["skill-name-1", "skill-name-2"]
}
Commands
{
"name": "command-name",
"description": "Brief description"
}
Optional command fields: depends_on_skills, depends_on_agents
Workflow for Manifest Updates
- Make changes to manifest.json
- Run validation:
uv run .claude/scripts/validate_manifest.py
- Fix any errors reported to stderr
- Repeat until validation passes
Example: Adding a New Skill
{
"name": "my-new-skill",
"category": "conventions",
"description": "What the skill does"
}
Then validate:
uv run .claude/scripts/validate_manifest.py