What are Claude Code Skills?
How Skills differ from CLAUDE.md and ad-hoc instructions, and when to use each.
What Are Skills?
You've been using CLAUDE.md files to give Claude context about your projects. Skills take this further — they're reusable instruction packages that Claude can invoke automatically whenever they're relevant.
Think of it this way:
- CLAUDE.md = "Here's how this specific project works"
- Skills = "Here's how to do a specific type of task, anywhere"
The difference in practice
With a CLAUDE.md, you put instructions in a project folder. Claude reads them when you work in that folder.
With a Skill, you create a reusable capability that Claude can use across any project. You don't have to repeat yourself.
Example without Skills:
In your sales-reports project, your CLAUDE.md says:
When creating reports, format currency as $X,XXX.XX
Use markdown tables for data
Sort by highest value firstIn your expense-tracking project, your CLAUDE.md says the same thing. And in your invoice project. You've copied the same instructions three times.
Example with Skills:
You create a "report-formatting" skill once. Now in any project, Claude automatically knows how to format reports your way. No copying.
How Skills work
A Skill is a .md file in a special location. Claude reads all your skills at startup and knows they're available. When a task matches what a skill describes, Claude uses it.
Skills live in: ~/.claude/skills/
Each skill file has:
- A name/title describing what it does
- When to use it (what triggers it)
- The actual instructions
Here's what a simple skill looks like:
# Report Formatting
Use this skill when generating any report, summary, or data output.
## Rules
- Format all currency as $X,XXX.XX (with dollar sign, comma separators, two decimals)
- Use markdown tables for tabular data
- Sort numerical data highest-to-lowest unless otherwise specified
- Keep reports concise — prefer bullet points over paragraphs
- Include a "Generated on [date]" footerOnce this file exists in ~/.claude/skills/, Claude applies these rules to any report you ask for, in any project.
When to use Skills vs. CLAUDE.md
Use CLAUDE.md when:
- Instructions are specific to one project
- Context matters (team names, fiscal year, specific file locations)
- You're still experimenting with what works
Use Skills when:
- You do the same type of task across multiple projects
- You've refined instructions that work well
- You want consistent behavior everywhere
Many people use both: project-specific context in CLAUDE.md, plus global skills for common patterns.
Skills Claude already has
Claude Code comes with some built-in behaviors — things like reading files safely, not modifying things without being asked, etc. Skills let you add your own behaviors on top of these.
You're essentially training Claude on your preferences, once, instead of repeating them forever.
The payoff
Skills compound over time. Every skill you create makes Claude more useful:
- Week 1: You create a "report formatting" skill
- Week 2: You add a "CSV cleaning" skill for your data preferences
- Week 3: You add an "email drafting" skill matching your tone
- Month 2: Claude now handles reports, data, and emails exactly how you like them, without any reminders
It's like training an assistant. The more you teach, the less you have to explain.
Next up
Ready to create your first skill? In the next lesson, you'll build a simple skill from scratch and see Claude use it automatically.