Courses/Introduction to Agent Skills/Skills vs CLAUDE.md, Slash Commands, Subagents, Hooks, and MCP
Agent Skills FoundationsLesson 3 of 16

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.

FeatureTriggerBest for
CLAUDE.mdAlways loadedAlways-on project standards & facts
SkillsAuto (matched) or /nameTask-specific expertise loaded on demand
Slash commandsExplicit typing(Now merged into skills)
SubagentsDelegationIsolated work in a separate context
HooksEvents (file save, tool call)Automated side effects
MCP serversExternal callsTools/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.

Skillrequest-drivenadds knowledge toCURRENT context'how to review a PR'Subagentdelegationruns in a SEPARATEisolated context'go research this'Hookevent-drivenfires on file saveor tool call'lint on every save'

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