CC - Agent Skills
What Is a Skill?
Last week, you learned about reusable prompts — markdown files you store in .claude/commands/ and invoke with a slash command. Skills work the same way, with one important difference: Claude can invoke them on its own.
With a reusable prompt, you have to run it manually. With a skill, you can run it manually, or Claude can recognize that a skill is relevant to what you're asking and load it automatically. You don't have to tell it to. It just does.
Think of it like the Matrix. When Neo downloads kung fu, he doesn't have to think about every move. He just has it. Skills are capabilities you upload to Claude so it can draw on them when the situation calls for it.
The key to making this work is the skill's description. Claude reads skill descriptions to decide whether to invoke a skill for a given task. Write a clear description, and Claude will use the skill at the right moment. Write a vague one, and it might miss it entirely.
Anatomy of a Skill File
Skills live inside the .claude/ folder at the root of your project:
.claude/
skills/
skill-name/
skill.mdEvery skill.md starts with YAML front matter:
---
name: skill-name
description: When and why Claude should use this skill — be specific and descriptive
---
Below the front matter is the content of the skill itself — instructions, step-by-step processes, guidelines, whatever Claude should follow when the skill is active.
Tip: After creating or updating a skill file, run
/reload-pluginsin Claude to pick up the changes.
✏️ Exercise 1: The ELI5 Skill
Carton Case Management already has a skill called eli5 — "explain like I'm five." This is a good first example because it shows both ways of invoking a skill.
Open .claude/skills/eli5/skill.md and take a look at what's in it. You'll see instructions like: explain the concept in simple terms, use analogies and examples that a child would understand, avoid technical jargon, focus on the core idea, use the AskUserQuestion tool to clarify details.
Explicit invocation — you can call it directly with a slash command:
/eli5 explain how the database in this app worksClaude loads the skill and follows its instructions to explain the database simply.
Agent auto-invocation — now try a natural-language version with no slash command:
I'm not understanding how the database works in this app. Can you explain it simply?Claude reads your message, recognizes that you need something explained simply, finds the eli5 skill, and loads it on its own. Same result — different trigger.
This is what makes skills more powerful than reusable prompts. You don't have to know the skill exists. You just describe your situation, and if there's a relevant skill, Claude brings it in.
✏️ Exercise 2: Write a "Change Code" Skill
Now you'll write a skill from scratch. This one will define how Claude should handle any code change request — checking out a branch, making the change, and committing the work.
Step 1: Create the folder and file:
.claude/skills/change-code/skill.mdStep 2: Add the front matter and steps:
---
name: change-code
description: Use this whenever the user asks you to modify or update code, add a feature, or change the behavior of a program
---
Follow this step-by-step process when the user asks you to change code:
1. Check out a feature branch in Git for the change you're going to make
2. Make the requested change
3. Commit the work with a descriptive commit message
Step 3: Run /reload-plugins in Claude to pick up the new skill.
Step 4: Test it by asking Claude to make a small change:
Change the title of the app to Training Case ManagementWatch what happens. Claude should recognize this as a code change, load the change-code skill, and follow the three steps — branch, change, commit — without you having to ask it to.
Note: You can make this skill as detailed as you like. You could add a step to run the tests before committing, or use the
AskUserQuestiontool to confirm the branch name. Everything from last week's prompt engineering workshop applies here.
✏️ Exercise 3: Have Claude Write a Skill
You don't have to write every skill yourself. Claude can research your codebase and write one for you.
Carton Case Management already has a built-in skill for creating skills. To use it:
/create-skill Help me create a skill for updating and changing colors in the appClaude will explore the codebase, find out how colors are managed (CSS variables, Tailwind config, component styles — whatever applies), and write a skill that captures all of that context.
Once it's done, review the generated skill file. Then test it:
Update the primary color to be a light blueClaude should load the color skill and know exactly where and how to make that change.
Why this matters: As a project grows, the number of "how do I do X in this codebase" questions grows with it. Skills let you encode those answers once, and then Claude can draw on them any time they're relevant — without you repeating yourself.
Next: CC - Instructions Files