validate-skills · git:20260710.dc3c074 · 2026-07-10 · sha256 de13b12f575e7c69
validate-skills git:20260710.dc3c074A
Immutable. This exact content is served forever at /api/v1/blob/de13b12f575e7c69.
--- name: validate-skills description: Use when verifying all skills in the repository are well-formed before a release or after adding/editing a skill. disable-model-invocation: true --- # Validate Skills ## Steps 1. Run the validator across all skills — public and internal: ```bash uv run scripts/validate-skill.py uv run scripts/validate-skill.py .claude/skills/*/SKILL.md ``` To validate only public skills: ```bash uv run scripts/validate-skill.py ``` To validate only internal skills: ```bash uv run scripts/validate-skill.py .claude/skills/*/SKILL.md ``` 2. If any **errors** are reported, fix them before proceeding. Errors are blocking. 3. **Warnings** should be reviewed; fix if the skill is being released. 4. Run the version sync check: ```bash uv run scripts/check-version-sync.py ``` 5. If all checks pass, skills are release-ready. ## What is checked | Check | Level | | ------------------------------------------------------------------------------------------------------------------ | ------- | | Frontmatter present | Error | | `name` field present | Error | | `description` field present | Error | | Description contains "Use when" trigger clause | Error | | Description ≤ 1024 chars | Error | | Skill name matches directory name | Error | | Header level progression (no skipping levels) | Error | | Description with `': '` must be single-quoted | Error | | Command tables (`## Commands`, `## Internal commands`) ↔ `commands/*.md` files 1:1 (skills with a `commands/` dir) | Error | | Duplicate headers within a SKILL.md body | Error | | Command file h1 is `# /<skill> <command> — …` | Error | | Command file has `## When to use` | Error | | Command file header level progression | Error | | Legacy output paths (`./codereview.md` etc.) | Warning | | Body exceeds 500 lines | Warning |