6 min · +110 XP
Which tool for which job
CLAUDE.md, skills, subagents, hooks, MCP and plugins on one map.
By the end of this lesson
You will be able to tell which extension a situation calls for and pick it without trying them all.
Claude Code has six common ways to extend it, and they are easy to confuse. Each answers a different question. You do not need all of them; add one when you meet the situation it was made for.
The map
- 1CLAUDE.md: what Claude should always know. Rules and facts loaded in every session, such as "use pnpm, not npm".
- 2Skill: how to do a repeatable task. A procedure or reference loaded only when needed, or run with /name, such as /weekly-report.
- 3Subagent: side work in a separate context. A helper that reads a lot and returns only a summary.
- 4Hook: what must happen every time, without relying on the model. Formatting after edits, blocking a protected file, a notification.
- 5MCP: a connection to an outside service, such as your calendar, a database, GitHub or a browser.
- 6Plugin: a package of the above, to install in one step or to share with other people.
When to add which
Signals from the documentation
- 1Claude gets a convention or a command wrong twice: add it to CLAUDE.md.
- 2You keep typing the same prompt to start a task: save it as a skill you run by name.
- 3You paste the same playbook into the chat for the third time: capture it as a skill.
- 4You keep copying data from a browser tab Claude cannot see: connect that system through MCP.
- 5A side task floods the conversation with output you will not need again: route it through a subagent.
- 6You want something to happen every time without asking: write a hook.
- 7A second repository needs the same setup: package it as a plugin.
“Look at how we work in this project and tell me what would help most: a line in CLAUDE.md, a skill, a subagent, a hook, an MCP server or a plugin. Explain why in two sentences and offer to set it up.”
Claude names one option and the signal that points to it; you say yes or no.
CLAUDE.md loads into every session, so a long file costs context all the time, and the documentation notes that longer files reduce how well Claude follows them. It suggests keeping each CLAUDE.md under 200 lines. Long procedures belong in skills, which load only when used.
They combine: a subagent can preload skills with its skills field; a skill can run in a subagent with context: fork; skills and subagents can carry their own hooks in frontmatter; plugin skills are namespaced as /plugin:skill, so several plugins coexist. Of the six, only a hook runs regardless of what the model decides; CLAUDE.md and skills are instructions the model follows. The same overview also lists output styles (tone and format for a whole session) and code intelligence plugins (language-server navigation) for the cases these six do not cover.
Every time Claude edits a file, the code formatter must run, without exceptions. What do you use?
Every Friday you ask Claude to turn your notes into a report in the same five steps. What do you use?
Facts checked against the official Claude Code docs October 24, 2026 · source

Author
Evgenii Arsentev
PhD · Chief Executive Officer, digital health