Guides
What Are Claude Code Skills (and How Do I Make One)?
Published:
A Claude Code skill is a small folder that teaches Claude to do a particular task your way, and then quietly steps in whenever that task comes up. Write a “commit message” skill once, and from then on every commit message follows your style without you explaining it again. The clever part is how it triggers: Claude reads only the skill’s short description and matches it against what you ask. Once you understand that, skills go from mysterious to obvious. Here’s the whole idea, plus how to write your first.
What a skill actually is
Under the hood, a skill is refreshingly simple: a folder containing a file called SKILL.md. That file has two parts. A short header (a name and a description), then a body of plain-language instructions. The official docs define the exact format, but conceptually it’s just: “This is what I’m for, and here’s how to do it.”
For example, a commit-message skill’s body might say: “Write commit messages in the conventional-commits style: a type prefix, a short summary under 60 characters, then a blank line and a bulleted body.” Whenever Claude writes a commit message, it now does it that way.
The description is the magic
Here’s the single most important thing to understand about skills, and the thing most explanations bury: Claude does not read your whole skill to decide whether to use it. It reads only the name and description. Those few words are matched against what you ask, and that match is the entire trigger.
This has one big practical consequence: a vague description means a skill that never fires. Compare:
- Weak:
description: Helps with commits. Too generic, rarely matches. - Strong:
description: Use when writing or reviewing a git commit message, to follow the project's conventional-commit style. Names the exact situation, fires reliably.
Write the description as “use this when…” and include the words you’d naturally say when you want the skill. The full instructions only load after the description triggers, so the description is doing all the work of getting noticed.
Why skills are worth it
Skills solve the “I keep re-explaining the same thing” problem. Instead of pasting your conventions into every conversation, you capture them once, and Claude applies them automatically whenever they’re relevant. They keep your everyday prompts short, and they make Claude’s output consistent. They’re also cheap on your context window, because a skill loads only its description until something triggers it.
How to make your first skill
You can build a useful skill in a couple of minutes:
- Pick one repetitive task you keep correcting Claude on: commit messages, a logging style, how you like functions documented.
- Create the folder. For a personal skill:
~/.claude/skills/commit-style/. For one shared with a project:.claude/skills/commit-style/. - Add
SKILL.mdinside it, with aname, a specific “use this when…”description, and clear instructions in the body. - Restart Claude Code so it picks up the new skill, then trigger it by asking for that task.
That’s it. If the skill doesn’t fire, the usual culprits are a session that needs restarting or a description that’s too vague. Both are quick fixes.
Where to go from here
Once you’ve made one skill, you’ll spot more: a “review my diff before commit” skill, a “follow our API error format” skill, a “explain this code simply” skill. Each one makes Claude a little more like a teammate who already knows your preferences. And because skills are just folders, you can share project skills with anyone who works on the repo, and everyone gets the same expert behaviour.
Get the foundation right
Skills sit on top of a good Claude Code setup. If you’re still getting started, our free AI for Coders tool helps you pick the right assistant, install it for your operating system, and generate a starter project-rules file. That’s the perfect base layer, handling your conventions even before you write a single skill. Set the foundation first, then add skills for the specific tasks you want done your way.
Keep reading
Frequent questions
What is a Claude Code skill? +
A skill is a small folder containing a SKILL.md file that gives Claude instructions for a specific task, such as writing commit messages your way or following your team's code style. Claude loads the skill automatically when what you ask matches the skill's description, so it behaves like an expert at that task without you re-explaining each time.
How does Claude know when to use a skill? +
It reads the skill's name and short description, not the whole file, and matches them against your request. That description is the trigger: a specific one like 'use when writing a git commit message' fires reliably, while a vague one like 'helps with code' rarely matches. The full instructions load only once the skill is triggered.
Where do I put a skill? +
A personal skill (available in all your projects) goes in ~/.claude/skills/<name>/SKILL.md. A project skill (shared with anyone who works on that repo) goes in .claude/skills/<name>/SKILL.md. The folder name is the skill name, with SKILL.md directly inside it.
Do I need to know how to code to make a skill? +
No. A basic skill is just a text file with a name, a description, and plain-language instructions: 'when I ask for X, do it like this.' You only need code if you want the skill to bundle helper scripts, which is optional and advanced.