Module 6

Skills โ€” Teach Claude New Tricks

Skills are reusable instruction sets that give Claude specialized abilities. Think of them as recipe cards โ€” write the instructions once, and Claude follows them every time you ask.

๐Ÿ“– 12 min ๐ŸŒฑ Intermediate โœŽ 2 exercises
Clawd

What Are Skills?

In the last module, you learned about CLAUDE.md โ€” a file that tells Claude how to behave in your project. Skills take that idea further. A skill is a reusable set of instructions that Claude can follow on demand, like a recipe card you hand to a chef.

Instead of typing the same complex instructions over and over, you write them once in a special file called SKILL.md. Then you trigger that skill whenever you need it โ€” by typing a simple slash command like /fix-issue or /explain-code.

Think of it like this: CLAUDE.md is the employee handbook that applies to everything. Skills are specialized training manuals for specific tasks.

๐Ÿ”‘ Key Concept

Skills are SKILL.md files stored in a specific folder. Each file contains instructions, allowed tools, and optional parameters. When you invoke a skill with a slash command, Claude reads that file and follows its instructions exactly. You can have as many skills as you want.

Personal vs Project Skills

Skills live in one of two places, depending on who should use them:

Personal skills are yours alone. They live in your home directory and follow you across every project:

~/.claude/skills/fix-issue/SKILL.md
~/.claude/skills/explain-code/SKILL.md
~/.claude/skills/morning-report/SKILL.md

Project skills are shared with your team. They live inside the project folder and get committed to version control:

.claude/skills/deploy/SKILL.md
.claude/skills/review-pr/SKILL.md
.claude/skills/generate-docs/SKILL.md

The rule is simple: if itโ€™s useful for you personally (like your preferred writing style or your morning routine), make it a personal skill. If itโ€™s useful for the project (like how to deploy or review code), make it a project skill.

Clawd
Pro Tip

Personal skills are great for things like โ€œsummarize this in my writing styleโ€ or โ€œgenerate a LinkedIn post.โ€ Project skills are great for team workflows like โ€œrun the test suite and explain any failures.โ€

Anatomy of a SKILL.md File

Every SKILL.md file has two parts: frontmatter (metadata at the top) and instructions (the actual recipe).

Hereโ€™s what a real SKILL.md looks like:

~/.claude/skills/explain-code/SKILL.md
--- name: explain-code description: Explain code using simple analogies and diagrams allowed-tools: Read, Bash, WebSearch --- When the user asks you to explain code: 1. Read the file or code snippet provided 2. Identify the 3-5 most important concepts 3. Explain each concept using a real-world analogy 4. Draw a simple ASCII diagram showing how the parts connect 5. End with a one-sentence summary a beginner would understand Use language appropriate for someone who has never programmed. Avoid jargon. If you must use a technical term, define it.

Letโ€™s break down the frontmatter fields:

  • name โ€” The slash command name. This becomes /explain-code.
  • description โ€” A short summary that appears when you list available skills.
  • allowed-tools โ€” Which tools Claude can use when running this skill. This is a safety guardrail.
  • disable-model-invocation (optional) โ€” If set to true, the skill can only use tools, not generate text. Useful for pure automation tasks.
Clawd
Pro Tip

The allowed-tools field is your safety net. If a skill should only read files and never modify them, set it to Read only. Claude will follow this restriction.

Using $ARGUMENTS

Skills become truly powerful when you add parameters. The special $ARGUMENTS placeholder lets you pass information to a skill when you invoke it.

Hereโ€™s a skill that fixes GitHub issues:

.claude/skills/fix-issue/SKILL.md
--- name: fix-issue description: Fix a GitHub issue by number allowed-tools: Read, Edit, Bash, WebFetch --- The user wants to fix GitHub issue: $ARGUMENTS 1. Fetch the issue details from GitHub 2. Read the relevant source files 3. Understand the bug or feature request 4. Implement the fix or feature 5. Run the test suite to verify nothing broke 6. Create a commit with a clear message referencing the issue

Now you can use it like this:

Terminal

> /fix-issue 42

Claude reads the SKILL.md, replaces $ARGUMENTS with 42, and follows the instructions. It fetches issue #42 from GitHub, reads the code, implements the fix, runs tests, and commits โ€” all from one command.

invoke a skill with arguments โ†“
/fix-issue 42

Real Examples

Here are skills that real people use every day. You can copy any of these and customize them:

explain code with analogies and diagrams โ†“
/explain-code src/components/PaymentForm.tsx
generate a morning project status report โ†“
/morning-report
create documentation for a function or file โ†“
/generate-docs src/utils/helpers.js
review code for security issues โ†“
/security-review src/auth/
๐Ÿ”‘ Key Concept

Skills are composable. A skill can reference other skills, call external tools, fetch web pages, run commands, and modify files. The allowed-tools field is the only boundary. Think of each skill as a mini-agent with a specific job.

Creating Your First Skill

Letโ€™s walk through creating a skill from scratch. Say you want a skill that explains any error message in plain English and suggests a fix.

Terminal

$ mkdir -p ~/.claude/skills/explain-error $ nano ~/.claude/skills/explain-error/SKILL.md

Then write:

~/.claude/skills/explain-error/SKILL.md
--- name: explain-error description: Explain an error message in plain English allowed-tools: Read, Bash, WebSearch --- The user encountered this error: $ARGUMENTS 1. Identify what type of error this is 2. Explain what went wrong in plain English (no jargon) 3. Use a real-world analogy to make it clear 4. Suggest the most likely fix 5. If the fix involves running a command, show the exact command

Now you can use it immediately:

explain any error in plain English โ†“
/explain-error "ECONNREFUSED 127.0.0.1:3000"
โš  Heads Up

Skill names must be lowercase with hyphens (like fix-issue, not Fix Issue). The folder name and the name field in frontmatter should match.

Clawd
Pro Tip

You can also ask Claude to create skills for you! Just say โ€œCreate a skill called /weekly-summary that generates a summary of all commits from the past week.โ€ Claude will create the folder and SKILL.md file automatically.


Try It Yourself

โœŽ Exercise 1

Create a Personal Skill

  1. Open your terminal and create the skill folder: mkdir -p ~/.claude/skills/eli5/
  2. Create a file called SKILL.md inside that folder
  3. Write a skill that explains any concept โ€œlike Iโ€™m 5 years oldโ€ โ€” use the frontmatter format shown above
  4. Set allowed-tools to Read, WebSearch so Claude can look things up
  5. Use $ARGUMENTS so you can pass in the topic: /eli5 quantum computing
  6. Test it by opening Claude Code and typing /eli5 how does WiFi work
โœŽ Exercise 2

Create a Project Skill

  1. Navigate to any project folder (or create a new one: mkdir ~/test-project && cd ~/test-project)
  2. Run claude to start a session
  3. Ask Claude: โ€œCreate a project skill called /summarize-changes that reads the git log from the last 7 days and writes a plain-English summary of what changed, organized by category (features, fixes, docs). Save it as a project skill.โ€
  4. Verify the file was created at .claude/skills/summarize-changes/SKILL.md
  5. Test it by typing /summarize-changes
Clawd

Ready for Module 7?

Hooks & Automation is up next.

Continue →