Skills are reusable instructions that teach Claude how to approach specific tasks. Instead of repeating the same prompts, you define them once and invoke by name.
What skills do
| Without skills | With skills |
|---|---|
| Repeat same instructions every time | Invoke by name: /brainstorm |
| Forget your preferred approach | Consistent methodology |
| Long prompts for complex tasks | Clean, composable capabilities |
| Context lost between sessions | Persistent knowledge |
Built-in vs custom
Claude Code ships with built-in skills. You can also create your own.
| Type | Location | Examples |
|---|---|---|
| Built-in | Bundled with Claude Code | brainstorm, write-plan, systematic-debugging |
| Custom | .claude/skills/ in your project | Your team’s review process, project-specific workflows |
| Shared | ~/.claude/skills/ | Personal skills across all projects |
List available skills:
claude "/help" # Shows available slash commands and skills
Skill file structure
Skills live in .claude/skills/{skill-name}/skill.md:
.claude/
└── skills/
└── research/
└── skill.md
The skill.md file:
---
name: research
description: Deep research on any topic with source verification
---
# Research Skill
When researching a topic:
1. Start with authoritative sources
2. Cross-reference claims
3. Note contradictions
4. Summarize findings with citations
## Output format
- **Summary**: 2-3 sentences
- **Key findings**: Bullet points
- **Sources**: Links with credibility notes
- **Gaps**: What couldn't be verified
Frontmatter fields
| Field | Required | Purpose |
|---|---|---|
name | Yes | How to invoke the skill |
description | Yes | When to use (shown in help, triggers auto-selection) |
Creating your first skill
mkdir -p .claude/skills/quick-review
Create .claude/skills/quick-review/skill.md:
---
name: quick-review
description: Fast code review focusing on bugs and security issues
---
# Quick Review
Review code for critical issues only. Skip style nitpicks.
## Checklist
- [ ] Security vulnerabilities (injection, auth bypass)
- [ ] Null/undefined access
- [ ] Resource leaks (unclosed connections, listeners)
- [ ] Race conditions
- [ ] Error handling gaps
## Output format
| Issue | Severity | Line | Fix |
|-------|----------|------|-----|
If no issues: "No critical issues found."
Test it:
claude "/quick-review src/auth.ts"
Example: Research skill
For thorough investigation of technical topics:
---
name: research
description: Deep research with source verification and gap analysis
---
# Research Skill
## Process
1. **Scope**: Define what we're researching and why
2. **Search**: Find authoritative sources (docs, papers, official repos)
3. **Verify**: Cross-reference claims across sources
4. **Synthesize**: Combine into actionable knowledge
## Source hierarchy
| Priority | Source type | Trust level |
|----------|-------------|-------------|
| 1 | Official docs | High |
| 2 | GitHub repos | High |
| 3 | Technical blogs | Medium |
| 4 | Stack Overflow | Verify |
| 5 | AI summaries | Low |
## Output
### Summary
2-3 sentence answer to the research question.
### Key findings
- Finding 1 [source]
- Finding 2 [source]
### Contradictions
Note any conflicting information found.
### Gaps
What couldn't be verified or needs more research.
### Sources
Full list with credibility assessment.
Example: Refactoring skill
For systematic code improvements:
---
name: refactor
description: Systematic refactoring with safety checks and verification
---
# Refactoring Skill
Safe, incremental code improvements.
## Pre-flight
- [ ] Understand current behavior (read tests, run code)
- [ ] Identify what changes and what stays same
- [ ] Check test coverage for affected code
## Process
1. **Small steps**: One change at a time
2. **Test after each**: Run tests before next change
3. **Preserve behavior**: Refactoring != feature changes
## Checklist
- [ ] All tests pass before starting
- [ ] Each change is a single commit
- [ ] No behavior changes (unless explicitly requested)
- [ ] Types still compile
- [ ] No new warnings
## If tests fail
Stop. Show what broke. Ask before proceeding.
## Output per step
| Step | Change | Tests | Commit |
|------|--------|-------|--------|
Example: Documentation skill
For consistent, useful docs:
---
name: document
description: Generate clear documentation following project conventions
---
# Documentation Skill
Write docs people actually read.
## Principles
- **Scannable**: Headers, bullets, tables
- **Examples first**: Show, then explain
- **No fluff**: Cut "In order to", "It should be noted that"
- **Assume competence**: Skip obvious explanations
## Structure by type
### Function/Method
Brief description (one line).
@param name - what it is @returns what comes back @throws when it fails @example code here
### README
Name
One-line description.
Quick start
3 commands max.
API
Table of main functions.
Examples
Real use cases.
### API endpoint
POST /endpoint
Brief description.
Request
| Field | Type | Required | Description |
Response
| Field | Type | Description |
Example
curl command
## Anti-patterns
| Don't | Do |
|-------|-----|
| "This function is used to..." | "Validates user input" |
| Document obvious params | Document non-obvious behavior |
| Copy implementation | Explain intent |
Auto-triggering
Skills can trigger automatically based on their description. When you ask Claude something that matches a skill’s description, it may invoke that skill.
| Your request | Matched skill |
|---|---|
| “Research how X works” | research |
| “Review this PR for issues” | quick-review |
| “Add docs to this function” | document |
You can also invoke explicitly:
claude "/research WebSocket authentication patterns"
claude "/refactor this module to use async/await"
Skill with todos
Checklists in skills become interactive todos:
## Pre-deployment checklist
- [ ] All tests pass
- [ ] No console.logs
- [ ] Environment variables documented
- [ ] Migration scripts tested
- [ ] Rollback plan documented
Claude tracks these as it works, marking items complete.
Project-wide vs personal
| Scope | Location | Use case |
|---|---|---|
| Project | .claude/skills/ | Team workflows, project conventions |
| Personal | ~/.claude/skills/ | Your preferences across all projects |
Project skills override personal ones with the same name.
Debugging skills
If a skill isn’t working:
- Check the path:
.claude/skills/{name}/skill.md - Verify frontmatter has
nameanddescription - Test explicit invocation:
claude "/{skill-name}" - Check for syntax errors in markdown
related
- Auto-Activating Skills — configure skills to trigger automatically based on keywords
- Custom Commands — create reusable workflows triggered by /name
- Hooks System — automate workflows with deterministic triggers
- Plugins System — extend Claude Code with custom tools and workflows
- Multi-Agent Content Pipeline — build autonomous content systems with skills