The capstone. You have seen skills in action. Now you build one. The good news: a skill is one of the simplest things you can create. A folder, a single Markdown file, done.
The catch worth getting right. The hard part is not the structure. It is writing a description that makes Claude reach for your skill at the right moments and leave it alone the rest of the time. That is what most of this lesson is about.
At minimum, a skill is a folder containing one file named SKILL.md:
That SKILL.md has exactly two parts:
A short block at the very top, fenced by --- lines, with two required fields: name and description. This is the only part Claude sees until your skill triggers, so it has to do the work of getting noticed.
Everything below the frontmatter. Plain Markdown telling Claude how to do the job. This loads only when the skill actually fires, so length here is cheap.
A skill can grow beyond this: a scripts/ folder for code Claude runs, a references/ folder for docs it reads only when needed, an assets/ folder for templates. But you start with just the one file.
This is the whole game. Claude decides whether to use your skill by reading the description and nothing else. A vague description means your skill sits unused. So:
"Builds a dashboard."
Too thin. Claude has no idea when this is the right tool.
"How to build a simple fast dashboard to display internal data. Use this skill whenever the user mentions dashboards, data visualization, internal metrics, or wants to display any kind of company data, even if they do not explicitly ask for a 'dashboard.'"
It says what it does and lists the moments it should fire.
Below the frontmatter, write the actual steps. A few principles keep skills sharp:
SKILL.md reasonably short. If it is getting long, move the detailed reference material into a separate file and point to it: "For the full format options, read references/formats.md." Claude loads that only when it needs it.The goal is a skill that a smart teammate could follow without you standing over their shoulder.
You do not have to hand-write any of this. There is a skill for making skills, called skill-creator, and it walks you through the whole process: capturing what you want, drafting the SKILL.md, and tightening the description so it triggers reliably.
Just ask:
Claude will ask what the skill should do, when it should trigger, and what the output should look like, then write the folder and the SKILL.md for you. You review and adjust.
Even when Claude drafts it, read the description with fresh eyes. Does it name the situations where you would actually want this? That is the part only you can judge.
Once the file exists at ~/.claude/skills/your-skill-name/SKILL.md, restart Claude Code so it picks up the new skill. Then test it the honest way: open a fresh session and type the kind of request a real user would, without naming the skill. Does it fire on its own?
Claude detects skills when a session starts. After every edit to SKILL.md, start a new session before you test again, or you will be testing the old version.
Iterating is normal. The first draft rarely triggers perfectly. Tweak the description, retest, repeat. That loop is the entire craft.
That is the whole Claude Skills track. You now know what a skill is, how to install and use several real ones, and how to build your own from scratch. Everything else is just more skills.
If you have not yet, go back and try the building blocks hands-on:
Made by AI Service Engine · what is a skill? · the YouTube Transcript skill