Schema Overview
The frontmatter uses YAML syntax and must be enclosed in--- delimiters at the top of the SKILL.md file:
Required Fields
name
Unique identifier for the skill.Format:Usage:
- Lowercase letters, numbers, and hyphens only
- No spaces or special characters
- Should be descriptive and memorable
- Used as the skill’s identifier in skill loading systems
- Appears in skill lists and management interfaces
- Should match the skill folder name by convention
description
Complete description of what the skill does and when to use it.Purpose:
- Primary triggering mechanism - AI agents use this to decide when to invoke the skill
- All “when to use” information should be in the description, not the body
- Should be comprehensive but concise (~50-200 words)
-
Include both capabilities and contexts:
-
Be “pushy” to combat under-triggering:
Agents tend to under-use skills, so make the description explicitly mention when to use it:
Less effective:
Better:
-
List specific trigger keywords and scenarios:
-
Mention file types, frameworks, or domains:
Optional Fields
compatibility
Required tools, dependencies, or platform requirements.When to use:Multiple requirements:
- Skill requires specific tools (e.g., WebFetch, specific CLI tools)
- Skill has platform dependencies (e.g., only works on Linux)
- Skill needs external services or credentials
The compatibility field is rarely needed. Most skills work across platforms and don’t have special requirements.
license
License information for the skill.Formats:Direct license name:Reference to license file:Custom license:Common Licenses:
Apache 2.0- Open source, permissiveMIT- Open source, very permissiveSource available- Code visible but restricted useProprietary- Closed source
Complete Schema Example
Description Optimization
Since thedescription field is the primary triggering mechanism, optimizing it is crucial for skill effectiveness.
How Triggering Works
Skills appear in the agent’savailable_skills list with their name and description. The agent decides whether to use a skill based on:
- Match between user request and description - Keywords, concepts, contexts
- Task complexity - Simple one-step tasks may not trigger skills even if description matches
- Agent capability - Agent only triggers skills for tasks where the skill provides value
Simple queries like “read this PDF” may not trigger a PDF skill even if the description matches perfectly, because the agent can handle them directly with basic tools. Complex, multi-step, or specialized queries reliably trigger skills when the description matches.
Testing Trigger Accuracy
The skill-creator skill includes a description optimization system that:- Generates 20 test queries (mix of should-trigger and should-not-trigger)
- Evaluates current description’s trigger accuracy
- Uses extended thinking to propose improvements
- Iteratively refines the description
- Reports final accuracy on held-out test set
Description Anti-Patterns
Too Vague
Too Vague
Problem:Better:
Missing Trigger Keywords
Missing Trigger Keywords
Problem:Better:Notice the addition of: “MCP”, “Model Context Protocol”, “external services”, “APIs”, “Python”, “FastMCP”, “Node”, “TypeScript”, “MCP SDK”
Not Pushy Enough
Not Pushy Enough
Problem:Better:
Only What, No When
Only What, No When
Problem:Better:
Validation
While there’s no formal schema validator, you can check your frontmatter:Required Fields Check
Format Check
- Frontmatter must start with
---on line 1 - Frontmatter must end with
---before the markdown body - Each field must be on its own line
- Field names must be lowercase
- Values should be properly quoted if they contain special characters
Common Mistakes
Next Steps
SKILL.md Format
Learn about the full SKILL.md structure
Loading System
Understand how skills are loaded progressively
Creating Skills
Build your first skill with best practices