Skill Frontmatter Schema
YAML frontmatter at the top of SKILL.md controls how Claude discovers, invokes, and constrains a skill.
Fields
Section titled “Fields”| Field | Required | Type | Notes |
|---|---|---|---|
name | yes | string | Kebab-case, ≤64 chars. Must match the parent directory name. |
description | yes | string | What the skill does and when it applies. Claude uses this for auto-matching against conversation context — be specific about trigger conditions. |
allowed-tools | no | comma-separated list | Restricts which tools Claude can use within the skill. Example: Read, Write, Bash. Omit to inherit the session’s full tool grant. |
disable-model-invocation | no | boolean | true = skill is explicit-invocation only (won’t auto-match). Set this for skills meant to be run via a slash command with arguments. |
argument-hint | no | string | Argument template displayed in the slash-command picker. Example: --flag <value>. |
Example — auto-matched skill
Section titled “Example — auto-matched skill”---name: rfp-synthesizedescription: Ingest a multi-document RFP package and produce a structured internal synthesis covering scope, requirements counts, timeline, evaluation weights, contract watch-outs, and pre-qual questions. Use when the user has received an RFP folder and needs to understand it before shaping a response.allowed-tools: Read, Glob, Grep, Bash, Agent---Example — explicit-invocation skill
Section titled “Example — explicit-invocation skill”---name: reviewdescription: Review code for quality, security, and best practicesdisable-model-invocation: trueallowed-tools: Read, Grep, Glob, Bash---Example — skill with arguments
Section titled “Example — skill with arguments”---name: generatedescription: Generate PPTX slides — create new decks from branded flavors (acn-standard, acn-anthropic) or clone-and-fill from existing slidesallowed-tools: Bash, Read, Write, Glob, Grepdisable-model-invocation: trueargument-hint: --new --flavor <name> --content <path> | <deck.pptx> --slide <n> --content <path> [--after <n>] [--output <path>]---Description-writing tips
Section titled “Description-writing tips”The description is how Claude decides whether to apply the skill. A good description:
- States what the skill produces, not just what it does internally
- Names the trigger conditions (“Use when…”)
- Mentions the input shape if non-obvious
- Stays under ~3 sentences — longer descriptions hurt selection precision
Generic descriptions like “Helps with code” cause Claude to either over- or under-trigger. Specific descriptions like “Reviews staged or unstaged Git changes against a quality, security, testing, and performance checklist” produce reliable invocation.