Skills vs CLAUDE.md, Slash Commands, Subagents, Hooks, and MCP
Pick the Right Tool
Claude Code offers several customization options, and choosing the wrong one leads to unnecessary complexity. Skills are unique because they're automatic and task-specific. The cleanest way to choose is to ask what triggers the behavior and where it should apply.
| Feature | Trigger | Best for |
|---|---|---|
| CLAUDE.md | Always loaded | Always-on project standards & facts |
| Skills | Auto (matched) or /name | Task-specific expertise loaded on demand |
| Slash commands | Explicit typing | (Now merged into skills) |
| Subagents | Delegation | Isolated work in a separate context |
| Hooks | Events (file save, tool call) | Automated side effects |
| MCP servers | External calls | Tools/integrations to outside systems |
Each feature has a different trigger — that's the fastest way to tell them apart.
Skills vs CLAUDE.md vs Slash Commands
These three are the closest cousins. CLAUDE.md loads into EVERY conversation — use it for facts and standards that always apply (e.g. 'always use TypeScript strict mode'). Skills load ON DEMAND when matched — use them for task-specific procedures that would clutter every conversation (e.g. your PR review checklist). Slash commands required explicit typing — and have now been merged INTO skills.
Custom commands are now skills
A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create /deploy and work the same way. Your existing .claude/commands/ files keep working, but skills are recommended because they add supporting files, invocation control, and automatic loading. If a skill and a command share a name, the skill wins.
The decision between CLAUDE.md and a skill comes down to one question: should this be in context ALL the time, or only when the topic is relevant? A coding-style fact → CLAUDE.md. A multi-step procedure you only sometimes run → a skill.
Skills vs Subagents vs Hooks
These differ by WHERE the work happens and WHAT triggers it. Skills add knowledge to your CURRENT conversation. Subagents run in a SEPARATE, isolated context and return a result. Hooks fire on EVENTS (a file save, a tool call), not on what you're asking.
Skill = request-driven knowledge in the current context · Subagent = delegated work in an isolated context · Hook = event-driven side effect.
They Complement Each Other
These aren't competitors — a strong setup combines them, each handling its specialty. Don't force everything into skills when another feature fits better.
- •CLAUDE.md — always-on project standards and facts.
- •Skills — task-specific expertise that loads on demand.
- •Subagents — isolated execution contexts for delegated work.
- •Hooks — automated operations triggered by events.
- •MCP servers — external tools and integrations (a different category entirely).
Section complete
You can place skills among Claude Code's features and pick the right one. Next section is hands-on: you'll create your first skill from scratch and learn exactly how it's named, discovered, and matched.
Key Takeaways
- ✓Tell the features apart by their trigger: CLAUDE.md always loads, skills load on match (or /name), hooks fire on events, subagents run on delegation, MCP calls external systems.
- ✓CLAUDE.md = always-on facts/standards; Skills = task-specific procedures loaded only when relevant — choose by 'in context always vs only when relevant?'
- ✓Custom commands have merged into skills: .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both create /deploy; skills are recommended (supporting files, invocation control, auto-loading); a skill beats a same-named command.
- ✓Skills add knowledge to the CURRENT conversation; subagents run in a SEPARATE isolated context and return a result.
- ✓Hooks are event-driven (file save, tool call); skills are request-driven (what you ask).
- ✓The features are complementary — combine CLAUDE.md + skills + subagents + hooks + MCP, each handling its specialty, rather than forcing everything into one.
Check Your Understanding
Test what you learned in this lesson.
Q1.What is the core difference between CLAUDE.md and a skill?
Q2.What happened to custom slash commands?
Q3.How does a skill differ from a subagent?
Q4.A hook and a skill differ primarily in what?
Practice This Lesson