Basic Folder Structure
Key Rule: Only
SKILL.md is required. Everything else is optional!SKILL.md Structure
EverySKILL.md file has two main parts:
- Frontmatter (Metadata) - YAML configuration at the top
- Content (Instructions) - Markdown documentation for the AI
Part 1: Frontmatter
The frontmatter is at the very top, wrapped in---:
Required Fields
name
name
- What it is: The skill’s identifier
- Format: lowercase-with-hyphens
- Must match: The folder name exactly
- Example:
stripe-integration
description
description
- What it is: One-sentence summary
- Format: String in quotes
- Length: Keep it under 200 characters (validator enforces this)
- Example:
"Stripe payment integration patterns including checkout, subscriptions, and webhooks"
Optional Fields
Some skills include additional metadata:risk
risk
Risk level classification:
none: Pure text/reasoning (e.g., Brainstorming)safe: Reads files, runs safe commands (e.g., Linter)critical: Modifies state, deletes files, pushes to prod (e.g., Git Push)offensive: Pentesting/Red Team tools (requires warnings)unknown: Legacy/unclassified (prefer concrete level for new skills)
source
source
- What it is: Attribution URL or origin
- Format: URL to original source or “self” if original
- Example:
"https://github.com/vercel-labs/agent-skills"
date_added
date_added
- What it is: The date when the skill was created or added to the collection
- Format:
YYYY-MM-DD(ISO 8601 date format) - Purpose: Helps track skill versioning and community contributions
- Required: No (optional, but recommended)
- Example:
date_added: "2024-01-15" - Note: Can be managed automatically with the
scripts/manage_skill_dates.pyscript
Part 2: Content
After the frontmatter comes the actual skill content. Here’s the recommended structure:Recommended Sections
Writing Effective Instructions
Use Clear, Direct Language
Use Action Verbs
Be Specific
Optional Components
Scripts Directory
If your skill needs helper scripts:Examples Directory
Real-world examples that demonstrate the skill:Templates Directory
Reusable code templates:References Directory
External documentation or API references:Skill Size Guidelines
Minimum Viable Skill
Minimum Viable Skill
- Frontmatter: name + description
- Content: 100-200 words
- Sections: Overview + Instructions
Standard Skill
Standard Skill
- Frontmatter: name + description
- Content: 300-800 words
- Sections: Overview + When to Use + Instructions + Examples
Comprehensive Skill
Comprehensive Skill
- Frontmatter: name + description + optional fields
- Content: 800-2000 words
- Sections: All recommended sections
- Extras: Scripts, examples, templates
Rule of thumb: Start small, expand based on feedback
Quality Checklist
Before finalizing your skill:Content Quality
- Instructions are clear and actionable
- Examples are realistic and helpful
- No typos or grammar errors
- Technical accuracy verified
Structure
- Frontmatter is valid YAML
- Name matches folder name
- Sections are logically organized
- Headings follow hierarchy (H1 → H2 → H3)
Completeness
- Overview explains the “why”
- Instructions explain the “how”
- Examples show the “what”
- Edge cases are addressed
Usability
- A beginner could follow this
- An expert would find it useful
- The AI can parse it correctly
- It solves a real problem
Pro Tips
- Start with the “When to Use” section - This clarifies the skill’s purpose
- Write examples first - They help you understand what you’re teaching
- Test with an AI - See if it actually works before submitting
- Get feedback - Ask others to review your skill
- Iterate - Skills improve over time based on usage