How to Create a Claude Code Skill: A Step-by-Step Guide for Beginners

Duncan RogoffDuncan Rogoff July 7, 2026 9 min read
Developer at a home desk with a code editor and terminal open on a large monitor and laptop
Photo via Pexels

What a Claude Code Skill Actually Is

A Claude Code skill is a folder that contains a single instruction file, called SKILL.md, which teaches Claude how to do one repeatable job well. That is the entire idea. When your request matches what the skill is for, Claude reads the instructions and follows them, so you get the same high-quality result every time instead of re-explaining the process from scratch.

The best way to picture it: a skill is a checklist you hand to a very capable teammate. You write down how you want a task done once - the steps, the rules, the format of the output - and from then on Claude reaches for that checklist automatically whenever the situation calls for it. You are not writing a program. You are writing instructions in plain English.

This is why skills are one of the highest-leverage things a beginner can build. You do not need to know a programming language. If you can describe how you like a task done, you can make a skill for it. In this guide we will build one together, test it, and cover when a skill is the right choice versus a slash command or an MCP server.

Before You Start: The One Folder and One File

A skill needs exactly two things: a folder with a short, hyphenated name, and a file inside it named SKILL.md. That is the minimum viable skill. Everything else - extra reference files, scripts, examples - is optional and added only when a skill grows.

Skills live in one of two places. A personal skill goes in the .claude/skills folder inside your home directory, and it is available in every project you open. A project skill goes in a .claude/skills folder at the root of a specific project, and it travels with that project when you share it. For your first skill, personal is the simplest choice.

Where a skill lives, and what that means

LocationScopeUse it for
~/.claude/skills/your-skill/Every project on your machineYour own repeatable habits
your-project/.claude/skills/your-skill/Only that projectA process the whole team should share

Step 1: Create the Skill Folder

Pick a name for what your skill does, in lowercase with hyphens. For this walkthrough we will build a skill that writes a clean, consistent commit message, so we will call it commit-helper. Open Claude Code and ask it to make the folder for you - this is the easiest way and it works whether you are in the desktop app or the terminal.

A prompt as simple as "Create a new personal skill folder called commit-helper in my Claude skills directory and add an empty SKILL.md file inside it" will do the whole thing. Claude knows where the skills folder lives and will set it up. You never have to touch the file system by hand if you do not want to.

Step 2: Write the SKILL.md Body

The body of SKILL.md is where you write the actual instructions, in plain markdown. Treat it like onboarding a new team member: be specific about the steps, the rules, and what a good result looks like. The clearer you are, the more consistent Claude will be.

For our commit-helper, the body might say: read the staged changes, summarize what changed in one short line under 60 characters, use the present tense, never invent changes that are not in the diff, and add one or two bullet points only if the change is large. Notice that these are the same instructions you would give a person. That is the whole skill.

  1. State the goal in the first line, so Claude knows the point immediately.
  2. List the steps in the order you want them done.
  3. Write down the rules and the things to never do - these matter as much as the steps.
  4. Show the shape of the output you want, with a short example if it helps.

Step 3: The Frontmatter That Makes It Discoverable

At the very top of SKILL.md you add a small block of frontmatter between two lines of three dashes. It holds two fields: a name and a description. This block is short, but the description is the single most important line in the whole skill.

Here is why. Claude does not run your skill because you told it to by name. It reads the description of every available skill and decides, on its own, which one fits the request in front of it. A vague description means Claude will miss the moment to use your skill. A precise one means it fires at exactly the right time. Write the description as "Use when..." and name the trigger clearly.

A weak description versus a strong one

FieldWeakStrong
namehelpercommit-helper
descriptionHelps with commitsUse when the user is about to write a git commit message and wants it clean, short, and consistent

Step 4: Add Supporting Files Only When You Need Them

A one-file skill is complete and shippable. But as a skill grows, you can drop extra files into the same folder - a longer reference document, a short script, an example template - and mention them in SKILL.md so Claude reads them when relevant. Claude only pulls them in when the task calls for it, which keeps the skill light.

The rule of thumb: start with just SKILL.md. Add a supporting file the first time you find yourself pasting the same long reference into the instructions. Do not build the extra files up front for a job you have not hit yet. Skills are meant to grow from real use, not from imagined future needs.

Step 5: Test Your Skill in a Real Session

Testing a skill is simple: start a fresh Claude Code session and do the thing the skill is for. For commit-helper, make a small change to a file, stage it, and ask Claude to write the commit message. If the skill is wired correctly, Claude will follow your instructions without you naming the skill at all.

If it does not fire, do not panic - this is the normal part of the loop. Nine times out of ten the fix is the description. Sharpen it to name the exact trigger, start a new session, and test again. Once it fires reliably, you are done. You have a repeatable process that runs itself from now on.

Skill vs Slash Command vs MCP Server: When to Use Which

Skills are one of three ways to extend Claude Code, and beginners often mix them up. The quick version: a skill is for a repeatable job with a real process, a slash command is for a one-shot prompt you want to trigger fast, and an MCP server is for connecting Claude to an outside tool like your calendar, your database, or GitHub.

The three ways to extend Claude Code

ToolBest forExample
SkillA repeatable job with steps and rulesWriting consistent commit messages
Slash commandA one-shot prompt you fire on demand/summarize the current file
MCP serverConnecting Claude to an outside serviceReading and sending Gmail

If you are still deciding, ask one question: is this a process I repeat, or a connection to another tool? A process is a skill. A connection is an MCP server. Once you can answer that, the choice is obvious. And if you want the deeper version, our explainer on Claude skills and our guide to MCP servers both go a level further.

Your First Skill Is the Start of a Library

The real payoff of skills is not the first one - it is the tenth. Every time you catch yourself explaining the same process to Claude twice, that is a skill waiting to be written. Over a few weeks you build up a small library of them, and Claude quietly gets better at working the way you work.

Start with commit-helper today. Then make one for how you format a client email, one for how you review a pull request, one for how you draft a blog outline. None of them take more than ten minutes. That habit - noticing a repeat and turning it into a skill - is what separates people who use Claude Code from people who compound with it. Inside the Claude Code Club we share the ones that work, so you are never starting from a blank file.

Frequently asked questions

Do I need to know how to code to create a Claude Code skill?

No. A skill is a plain markdown file with instructions written in English. If you can describe how you want a task done - the steps, the rules, the output - you can write a skill. The commit-helper example in this guide contains no code at all.

Where do Claude Code skills live on my computer?

Personal skills go in the .claude/skills folder inside your home directory and work in every project. Project skills go in a .claude/skills folder at the root of a specific project and travel with it. You can also ask Claude to create the folder for you so you never touch the file system by hand.

Why does my skill never activate?

Almost always the description in the frontmatter is too vague. Claude reads that description to decide when to use the skill on its own, so it needs to name the exact situation. Rewrite it as "Use when..." with a specific trigger, start a fresh session, and test again.

What is the difference between a skill and a slash command?

A skill is for a repeatable job with a process, and Claude reaches for it automatically when the situation matches. A slash command is a one-shot prompt you trigger by name on demand. If you find yourself running the same command and wishing Claude just knew when to do it, that is a sign it should be a skill.

Can I share a skill with my team?

Yes. Put the skill in a .claude/skills folder at the root of a shared project and it travels with the repository, so everyone who opens the project gets the same skill. This is how teams keep a consistent process across every member.

Last reviewed by Duncan Rogoff on July 7, 2026

Duncan Rogoff

Written by

Duncan Rogoff

Apple · PlayStation · Charles Schwab

Keep reading

Ready to build it yourself?

Join Claude Code Club, the #1 community for learning claude code, for $9/month.

← Back to the blog