The extension map
Claude Code's extensions fall into three groups:
- Always-on context:
CLAUDE.md, rules and output styles. - On-demand capabilities: skills, MCP servers and subagents.
- Event-driven automation: hooks.
Plugins sit on top as the packaging layer that bundles any of these for sharing.
Signs you need each one
| When you notice… | Add a… |
|---|---|
| Claude gets a convention wrong twice | Line in CLAUDE.md |
| You keep asking for a certain format or length | Output style |
| You keep typing the same starter prompt | User-invoked skill |
| You paste the same playbook for the third time | Skill |
| You keep copying data in from a browser tab or another app | MCP server |
| A side task floods your conversation with output | Subagent |
| Something must happen every time, no exceptions | Hook |
| A second repo needs the same setup | Plugin |
Head-to-head
| CLAUDE.md | Skill | Hook | Subagent | |
|---|---|---|---|---|
| Loads | Every session | When invoked or relevant | On lifecycle events | When spawned |
| Context cost | Every request | Low (description) until used | Zero unless it outputs | Separate window |
| Deterministic? | No (guidance) | No (instructions) | Yes | No |
| Best for | Facts and conventions | Procedures and expertise | Enforcement | Isolation and parallelism |
pnpm test -- <file>.Better together
- Skill + MCP: MCP gives Claude access to Slack; a
/post-updateskill teaches how your team writes updates. - Skill + subagents: an
/auditskill fans out to security, performance and style reviewer subagents. - Hook + skill: a
PostToolUselint hook catches problems, and a/fix-lintskill knows how to fix your linter's common complaints. - CLAUDE.md + skills: CLAUDE.md says "for releases, use
/release"; the skill holds the details.
Start with CLAUDE.md. Add other features only when a specific need shows up. A minimal setup that you understand beats a sprawling one you don't.
Check your understanding
Which extension is deterministic, firing without Claude deciding?
You keep pasting the same deployment checklist. What should you create?
What does MCP provide that a skill doesn't?
Which has a context cost on every single request?