Lesson 6: Advanced Patterns: Making Skills More Powerful
Learning goals:
- Understand the difference between personal skills and project skills
- Manage project skills with Git
- Apply the team practices that keep shared Skills healthy
- Know what else exists in the Skills ecosystem
Prerequisites: << Lesson 5
Personal Skills vs Project Skills
Every Skill we've built so far went into ~/.claude/skills/. Those are personal skills — only you can use them. 1
On a team, though, you usually want something else:
- Everyone reviewing code against the same standard
- A new hire cloning the repo and having the team's Skills immediately
- Improvements to a Skill reaching everyone without anyone copying files around
That's what project skills are for. 2
How the two differ
Which one to reach for
Personal skills: 2
- Document format conversion (Markdown → Word)
- The way you personally like tasks organized
- Your own code style preferences
- General tools you want in every project
Project skills:
- The team's code review standard
- The project's commit message format
- Scaffolding for a specific framework
- The project's deploy process
Creating a project Skill
Step 1: Create it in the project directory
Go to your project:
Step 2: Commit it to Git
Step 3: Teammates pick it up
Everyone else on the team:
The Skill works immediately. There's nothing else to configure. 1
Managing Skills with Git
Once project skills live in Git, everything Git can do applies to them: 3
Version history
Code-review the Skills themselves
Reviewing a Skill matters as much as reviewing code. 4
When someone submits a new Skill or changes an existing one:
- Check that the description is clear
- Check that the instructions are specific enough
- Test whether it actually behaves as intended
- Decide whether it earns a place in the project (will it collide with an existing Skill?)
Reviewing a Skill file in a PR:
Branching
Keep experimental Skills on a feature branch:
Team practices that hold up
1. Document them in the README
Documenting Skills is straightforward: list them in the project's root README or in .claude/README.md: 4
2. Agree on naming
Settle on one naming convention across the team: 3
Recommended:
- Hyphens:
commit-format, api-doc-gen
- Verb-noun or noun-verb:
format-commit, review-code
- Short and clear: two or three words
Avoid:
- Numeric suffixes:
skill-1, helper-v2
- Anything vague:
tool, helper, utility
- Project abbreviation plus a number:
proj-skill-3
3. Prune on a schedule
Review the set once a quarter: 3
A Skill that barely gets used should be improved or deleted. A pile of unused Skills makes it harder for Claude to find the one that actually applies.
4. Announce changes
This one matters: when you change an existing Skill, post it in the team channel.
Composing Skills
Composing Skills means chaining several of them to handle one larger task: 1
Or reference one Skill from inside another:
This is where Skills get their reach: small, single-purpose Skills combine into larger workflows. The Anthropic engineering guide puts it this way: "Instead of building fragmented, custom-designed agents for each use case, anyone can now specialize their agents with composable capabilities." 5
Past the basics: where to go next
You now have the core skill set. From here, a few directions worth exploring.
Optional frontmatter fields
This course only used name and description. There are more: 6
model: which model this Skill runs on (when you need stronger reasoning)
allowed-tools: restrict the Skill to specific tools
disable-model-invocation: stop Claude from loading it automatically, so it's manual-only
Of the three: model picks the model, allowed-tools draws the permission boundary, and disable-model-invocation turns off automatic triggering and leaves manual invocation only.
When to use them:
- Expensive operations (calling an external API) →
disable-model-invocation, so it can't fire by accident
- Tasks that need careful reasoning →
model: claude-opus-4
- Security-sensitive Skills →
allowed-tools to limit what they can touch
The full field list is in the official docs: https://code.claude.com/docs/en/skills 1
Skills plus MCP servers
MCP (Model Context Protocol) servers supply tools; Skills supply workflow knowledge. 7
For example:
- An MCP server exposes a
read_database tool
- A Skill teaches Claude how to use that tool to run the "generate the monthly report" workflow
Put together, Skills become the bridge between Claude and your external systems. 7
To see what other people have built:
Before you run someone else's Skill:
- Read the whole SKILL.md and understand what it does
- Try it in a scratch project, not on production code
- Look for anything risky (running scripts, network access, modifying files)
Recap
- Personal skills (
~/.claude/skills/) are for your own habits; project skills (.claude/skills/) are for working as a team 2
- Project skills go into Git, teammates get them automatically, and you version and branch them like any other file
- Team practices: document them, agree on naming, prune on a schedule, announce changes
- Skills compose: small single-purpose Skills combine into larger workflows 5
- Where to go next: optional frontmatter fields, MCP server integration, community Skills
You've finished the course
You can now:
- ✅ Explain how Skills work and where they apply
- ✅ Write a well-structured SKILL.md
- ✅ Run a systematic testing and debugging process
- ✅ Organize a more involved Skill
- ✅ Apply the team practices that keep shared Skills healthy
What to do next:
- Write a Skill today: pick the task you explained three times this week and turn it into one
- Use it for a week: track how often you invoke it, what breaks, how much time it saves
- Iterate: add the checks you missed, adjust the output format based on what actually happened
- Share it: if it's genuinely useful, promote it to a project skill
Remember: a good Skill isn't written once and finished — it gets shaped by being used. 3 4
Now go build the workflows you keep re-explaining.
</content>
</invoke>