Skip to content

SKILL.md Frontmatter ​

Skills are defined as SKILL.md files in skill directories. The YAML frontmatter controls the skill's behavior, visibility, and tool access.

All fields are optional. When omitted, name defaults to the directory name and description defaults to the first non-empty content line. An explicit description is recommended.

Fields ​

FieldTypeRequiredDescription
namestringnoLowercase with hyphens, max 64 chars, no reserved words (anthropic, claude)
descriptionstringnoMin 10 chars, third-person voice
when_to_usestringnoAdditional context for when Claude should invoke the skill (trigger phrases, examples). Appended to description in the skill listing
argument-hintstringnoHint text shown during autocomplete (e.g., [issue-number])
argumentsstring | string[]noNamed positional arguments for $name substitution. Accepts a space-separated string or YAML list
disable-model-invocationbooleannoPrevent model from invoking this skill
user-invocablebooleannoWhether users can invoke directly via /skill-name
versionstringnoSemantic version (e.g., 1.0.0) (claudelint extension)
modelstringnoModel alias, full model identifier, or inherit
effortstringnoEffort level: low, medium, high, xhigh, or max
contextstringnofork (valid values)
agentstringnoWhich subagent type to use when context: fork is set
allowed-toolsstring | string[]noTool names to allow. Accepts a space-separated string or YAML list
pathsstring | string[]noGlob patterns that limit when this skill is auto-activated. Accepts a comma-separated string or YAML list
shellstringnoShell to use for inline !`command` blocks: bash (default) or powershell
tagsstring[]noCategorization tags (claudelint extension)
hooksobjectnoHooks configuration
disallowed-toolsstring | string[]noTools removed from the available pool while the skill is active
backgroundbooleannoWith context: fork, run in the background (default: true)
metadataobjectnoFree-form metadata for other tooling
licensestringnoLicense for the skill
compatibilitystringnoEnvironment requirements, at most 500 characters

Example ​

yaml
---
name: deploy-staging
description: Deploys the current branch to the staging environment using the project's CI pipeline.
user-invocable: true
version: 1.0.0
model: sonnet
allowed-tools:
  - Bash
  - Read
tags:
  - deployment
  - ci
---