How to Create Claude Code Skills
Skills are auto-triggered capabilities that Claude uses based on context relevance.
Directory Structure
code
.claude/skills/<skill-name>/SKILL.md
- •Each skill lives in its own subdirectory
- •The file MUST be named exactly
SKILL.md(case-sensitive) - •The directory name can be anything descriptive
Required Format
Every SKILL.md must have YAML frontmatter:
markdown
--- name: my-skill-name description: Use this skill when [describe triggers]. [What it does]. --- # Skill Title [Instructions for Claude on how to use this skill]
YAML Frontmatter Fields
| Field | Required | Purpose |
|---|---|---|
name | Yes | Identifier for the skill (kebab-case) |
description | Yes | Tells Claude WHEN to auto-trigger this skill |
The Description Field is Critical
The description determines when Claude automatically uses the skill. Write it as:
- •"Use this skill when [specific triggers]"
- •Be specific about contexts that should activate it
- •Include key phrases the user might say
Example: Creating a New Skill
To create a skill for database operations:
- •Create directory:
.claude/skills/database-ops/ - •Create file:
.claude/skills/database-ops/SKILL.md - •Add content:
markdown
--- name: database-operations description: Use this skill when working with database queries, migrations, or schema changes in this project. --- # Database Operations ## When to Use - Running migrations - Writing queries - Modifying schema ## Instructions [Detailed instructions for Claude...]
- •Restart Claude Code to load the skill
Skills vs Slash Commands
| Feature | Skills | Slash Commands |
|---|---|---|
| Location | .claude/skills/<name>/SKILL.md | .claude/commands/<name>.md |
| Invocation | Auto-triggered by Claude | User types /<name> |
| Frontmatter | Required (name, description) | Optional |
| Use case | Context-aware automation | Explicit user actions |
Common Mistakes to Avoid
- •Wrong filename: Must be
SKILL.md, notskill.mdor<name>.md - •Missing frontmatter: The
---YAML block is required - •File in wrong location: Must be in a subdirectory, not directly in
.claude/skills/ - •Vague description: Be specific about when to trigger
- •Forgetting to restart: Claude Code needs restart to load new skills