Lesson content
What Are Skills
You've been using Claude Code by typing natural language prompts. But what if you could save your best prompts as reusable commands that you invoke with a single slash? That's exactly what Skills are.
Skills = Custom Slash Commands
A skill in Claude Code is a Markdown file that contains a prompt template. When you type /skill-name in Claude Code, it loads the contents of that file and executes it as an instruction. Think of skills as saved prompts on steroids — they're reusable, shareable, and can accept parameters.
Here's the simplest possible skill — a file called review.md:
Review the current git diff and provide:
1. A summary of changes
2. Potential bugs or issues
3. Suggestions for improvement
Now instead of typing all that every time, you just type /review. Claude loads the prompt and executes it. That's it — that's a skill.
Built-in vs Custom Skills
Claude Code comes with a few built-in slash commands that work out of the box:
CommandWhat it does
/initCreates a CLAUDE.md file for your project
/clearClears the conversation context
/compactCompresses the conversation to save context space
/costShows token usage and cost for the current session
/helpShows available commands and help info
/modelSwitch between Claude models
These are useful, but the real power comes from custom skills — commands you create yourself for your specific workflow.
Why Skills Matter
Without skills, every time you want Claude to do something complex, you need to type or paste a detailed prompt. This leads to:
Inconsistency — you phrase the same request differently each time, getting different quality results
Wasted time — retyping or hunting for that perfect prompt you used last week
Knowledge silos — your best prompts live in your head, not shared with your team
Skills solve all three problems:
Consistency — the same prompt runs every time, producing reliable results
Speed — one slash command replaces paragraphs of instructions
Sharing — skills stored in the project repo are available to everyone on the team
How Skills Work Under the Hood
When you type /my-command in Claude Code, here's what happens:
Claude Code looks for a file named my-command.md in the skills directories
It reads the contents of that Markdown file
The contents become Claude's instruction for this interaction
If you typed anything after the command (like /my-command some text), that text is available as a parameter
Claude executes the combined instruction
The search order for skill files is:
Project-level: .claude/commands/ in your project root
User-level: ~/.claude/commands/ in your home directory
Project-level skills override user-level ones if they have the same name. This means a team can define project-specific skills that take priority over your personal ones.
Your First Look at a Skill File
Here's a slightly more advanced skill — .claude/commands/commit.md:
Look at the current git diff (staged and unstaged changes).
Write a concise, meaningful commit message that:
- Starts with a verb (Add, Fix, Update, Remove, Refactor)
- Summarizes the "why" not just the "what"
- Is under 72 characters for the first line
- Adds a blank line and bullet points for details if needed
Stage all changes and create the commit.
Type /commit and Claude analyzes your changes, writes a great commit message, and creates the commit. Every single time. No thinking about what to type.
Tip: Skills are just Markdown files — you can edit them with any text editor, version them with git, and share them like any other file in your project.
Skills transform Claude Code from a chat interface into a programmable development assistant. Instead of explaining what you want each time, you encode your best practices once and reuse them forever.