Skill check
Validate skill/command file format and structure. Use after creating or editing a skill, before committing skill changes, or when a skill fails to load or trigger.From its SKILL.md
npx -y skills add claude-world/director-mode-lite --skill skill-checkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
5.5 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Skill File Validator
Validate skill files for correct format against the official Claude Code spec.
Validation Target
- With argument: validate specific file
- Without: validate all
.claude/skills/*/SKILL.md
Frontmatter Reference (official fields)
Skills support these fields. Only description is meaningfully required (a
skill with none of these still loads — name defaults to the directory name).
---
name: skill-name # Optional: defaults to directory name; lowercase, hyphenated
description: What it does # Recommended: shown in / menu and used for triggering
when_to_use: When to reach for it # Optional: appended to description for triggering
# (description + when_to_use truncated at 1,536 chars in listings)
user-invocable: true # Optional: default true; false hides from / menu (Skill tool still works)
model: sonnet # Optional: fable, opus, sonnet, haiku, inherit, default, best,
# sonnet[1m], opus[1m] (or a full model ID). NOT opusplan (session-only)
effort: medium # Optional: low, medium, high, xhigh, max
allowed-tools: # Optional: pre-approved tools. Accepts a comma-separated string
- Read # OR a YAML list — BOTH are official (list shown here as house style)
- Write
- Bash
disallowed-tools: # Optional: explicitly blocked tools (string or YAML list)
- WebFetch
context: fork # Optional: run the skill in a subagent
agent: agent-name # Optional: subagent type when context: fork (default: general-purpose)
argument-hint: "[issue-number]" # Optional: autocomplete hint shown after the skill name
arguments: target flags # Optional: space-separated argument NAMES for $name substitution
# (e.g. arguments "target flags" -> use $target and $flags in the body).
# NOT a structured array of name/description/required objects.
disable-model-invocation: false # Optional: bool; true also blocks scheduled-task invocation
paths: # Optional: glob patterns that limit where the skill activates
- "src/**/*.ts"
shell: bash # Optional: bash or powershell for inline !`command` blocks
hooks: # Optional: skill-scoped lifecycle hooks (same schema as settings.json)
PreToolUse:
- matcher: Write
hooks:
- type: command
command: ./scripts/validate.sh
Stop:
- hooks:
- type: command
command: ./scripts/verify.sh
once: true
---
Valid Tools (for allowed-tools / disallowed-tools)
Read, Write, Edit, Bash, Grep, Glob, Agent (Task = legacy alias),
Skill, WebFetch, WebSearch, TodoWrite, NotebookEdit, AskUserQuestion
Non-official fields (flag as warnings, not errors)
metadata, license, version # Not part of the skill spec; harmless but should be removed
once # Valid ONLY inside a hooks[] entry, never at skill top level
Validation Checklist
Required / Recommended Fields
-
descriptionpresent (recommended; used for the / menu and triggering) -
name, if present, is lowercase and hyphenated (defaults to directory name if omitted)
Optional Field Validation
-
allowed-tools/disallowed-toolsare valid tool names -
allowed-tools/disallowed-toolsare a comma-separated string OR a YAML list (both valid) -
modelis a valid value: fable, opus, sonnet, haiku, inherit, default, best, sonnet[1m], opus[1m], or a full model ID (NOT opusplan) -
effortis one of: low, medium, high, xhigh, max -
contextisfork(if specified) -
agentonly set alongsidecontext: fork(defaults to general-purpose) -
argument-hintis a string -
argumentsis a space-separated string of argument names (NOT a structured array) -
when_to_useis a descriptive string (appended to description for triggering) -
disable-model-invocationis boolean -
pathsis a list of glob patterns -
shellisbashorpowershell -
user-invocableis boolean -
hookshas valid structure (matcher + hooks[] with type/command)
Unknown / Non-official Fields
- Warn (do not error) on
metadata,license,version - Warn on
onceused at the top level (only valid inside a hooks[] entry)
Content Structure
- Clear instructions
- Uses
$ARGUMENTS(or$nameperarguments) if expecting input - Step-by-step process if complex
Output Format
## Skill Validation Report
### Files Checked
| File | Status | Issues |
|------|--------|--------|
| workflow/SKILL.md | OK | None |
| my-skill/SKILL.md | WARN | Missing description |
### Summary
- Total: [N]
- Valid: [N]
- Needs fixes: [N]
Auto-Fix
- Add missing
namefrom directory name - Add missing
description - Normalize a comma-separated
allowed-toolsstring to a YAML list (house style only — the string form is valid; do NOT flag it as an error) - Remove non-official fields (
metadata,license,version) - Convert a structured
argumentsarray to a space-separated name string - Replace
opusplanmodel with a supported value - Add
$ARGUMENTShandling
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most quality gates skills give in ~1.3k tokens
Counted across 1,524 of the 2,830 authors here whose files we hold, read 2026-09-06
- Read full output and check exit codein 45 of 1524, across 40 files
- Verify output confirms the claimin 44 of 1524, across 39 files
- Identify the command that proves the claimin 43 of 1524, across 39 files
- Execute the full verification commandin 36 of 1524, across 30 files
- Produce a verification reportin 34 of 1524, across 18 files
- Review git diff changesin 30 of 1524, across 16 files
- Fix build failures immediatelyin 29 of 1524, across 9 files
- Group findings by severityin 28 of 1524
- State claim only with evidencein 27 of 1524, across 22 files
- Verify regression tests with red-green cyclein 26 of 1524, across 22 files
- Run the full test suitein 26 of 1524, across 25 files
- Run test suite with coveragein 25 of 1524, across 10 files
Said here and by no other author read
- Validate agent files against official spec
- Check for required description field
- Verify name is lowercase and hyphenated
- Check model values for validity
- Verify effort level is valid
- Warn on non-official fields
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.