Expertise, on demand
A skill is a folder containing a SKILL.md file: markdown instructions, optionally with scripts and reference files beside it. Skills teach Claude how to do something: your deploy procedure, your API style guide, how to write a migration in your stack.
What makes skills special is how they load. At session start, Claude sees only each skill's name and description, a line or two. The full instructions load only when the skill is actually used. You can have dozens of skills installed for almost no context cost.
Two ways to invoke a skill
- You call it: type
/skill-name, like/deploy staging. Every skill doubles as a slash command. - Claude picks it: when your request matches a skill's description, Claude loads it automatically, as in the migration example above.
This is why the description is the most important line in a skill. It's what Claude reads to decide whether the skill is relevant.
Two kinds of skills
| Kind | What it holds | Example |
|---|---|---|
| Reference | Knowledge Claude applies while working | API conventions, a design system, a schema guide |
| Action | A workflow you trigger | /deploy, /release-notes, /triage-issue |
Where skills live
| Location | Path | Available to |
|---|---|---|
| Personal | ~/.claude/skills/<name>/SKILL.md | You, in every project |
| Project | .claude/skills/<name>/SKILL.md | Everyone working in the repo |
| Plugin | <plugin>/skills/<name>/SKILL.md | Anyone who installs the plugin, as /plugin-name:skill |
| Enterprise | Managed settings location | Everyone in the organization |
Older guides talk about custom slash commands in .claude/commands/*.md. Those still work, but they've been merged into skills. A skill gives you the same /name command plus supporting files and automatic invocation.
Built-in (bundled) skills
Claude Code ships with skills you can use today, such as /code-review, /debug, /batch (split a big change across parallel workers) and /loop. Skills also follow an open standard (Agent Skills), so the same SKILL.md format works across tools that support it.
Check your understanding
What loads into context for every installed skill at session start?
Which line most determines whether Claude auto-invokes a skill?
Where does a project skill live?
What happened to .claude/commands/ custom commands?