Chapter 1

CLAUDE.md vs Skills vs Subagents vs Hooks: Claude Code's Extension Map

2026-08-22 · 12 min read · 10 XP
Chapter 1 · Make Claude Code Yours: Skills, Subagents, Automation

Claude Code works fine straight out of the install, but the moment you want to hand off repeated work, you start reaching for extension points like CLAUDE.md, skills, subagents, hooks, and plugins. The names sound alike, but each one replaces something different.

There's a point where the tool names inside Claude Code get confusing before "Claude Code" itself does. Skills, subagents, hooks, and plugins in particular all sound like "does something automatically for you," and nobody tells you upfront which one you actually need, or when. If you've already opened a terminal, installed Claude Code, asked your first question, and connected an MCP server, this confusion is exactly what shows up next. Google autocomplete confirms it: type "claude code subagents" and "vs skills" is one of the first things suggested. You're not the only one stuck on this.

Sort the five apart once, and after that the label alone tells you where to go. Skills, subagents, and hooks are all core Claude Code features, so specifics can shift release to release. If you're reading this well after August 2026, cross-check with the official docs.

Extend

"Extend" is the umbrella term for the five ways you add to Claude Code's default behavior. CLAUDE.md is context that's always on, every session. Skills are knowledge and procedures you load on demand. Subagents are isolated execution slots. Hooks are scripts that fire at a set moment with no human involved. Plugins are the unit that bundles all of the above for distribution.

The five extension devices, compared

The official Claude Code docs, in "Extend Claude Code," lay these five out in a single comparison table. Here it is again, reordered to match this track.

ExtensionWhat it replacesWhen you reach for itWhere it lands in this track
CLAUDE.mdRe-explaining the project from scratch every new sessionClaude keeps missing the same rule or mistake twiceLesson 2
PluginsBuilding an extension from scratch that someone already built and testedYou want something that already exists, installed and working right nowLesson 3
SkillsThe procedure you keep pasting into the chat boxYou've pasted the same instruction a third timeLesson 4
SubagentsSide work filling your main conversation with search results and logsA side task is crowding out what you actually need to seeLesson 5
Hooks & automationNeeding a human to press start, every single timeSomething has to happen every time, no exceptionsLesson 6

Let's unpack that plugins row, over on the right. A plugin isn't really a fifth thing standing next to the other four; it's closer to packaging. The official docs describe a plugin as bundling skills, hooks, subagents, and MCP servers into a single installable unit. That's why its "what it replaces" cell reads differently from the other four's. The other four replace something you'd build yourself; a plugin replaces the act of installing something someone else already built.

If "when you reach for it" still feels vague, the official docs give sharper signals to watch for. Claude getting the same convention or command wrong twice is the cue for CLAUDE.md. Pasting the same instruction into the chat box a third time is the cue for a skill. Side work filling the conversation with search results and logs you'll never look at again is the cue for a subagent. None of these five need to be in place before the corresponding signal actually shows up. The official docs are explicit that you don't have to configure everything from day one.

The learning order tracks the cost order

There's one rule behind this order. Installing something is cheaper than writing a file. Writing a file is cheaper than working out a procedure and turning it into a skill. That's cheaper than splitting work off to a subagent. And the most expensive of all is automation that runs with nobody watching. Climb from the bottom rung to the top and the amount you have to judge and manage yourself keeps going up.

Done once installedJust write one fileWork out the procedure yourselfNeeds a rule for handing offRuns with nobody thereRung 1: Install a pluginInstall an extension someone else built, from the marketplaceLesson 3Rung 2: CLAUDE.mdPin what you'd otherwise explain every time into one fileLesson 2Rung 3: SkillsTurn a repeated procedure into one commandLesson 4Rung 4: SubagentsHand off work and get back just a summaryLesson 5Rung 5: AutomationRun hands-free with hooks and scheduled routinesLesson 6

Even so, this track's actual lesson order doesn't map onto that cost order exactly. On the ladder, installing a plugin should sit below CLAUDE.md, earlier, in lesson terms, but this track puts CLAUDE.md at lesson 2 and pushes plugins to lesson 3. That's not about cost; it's about ingredients. Every lesson that follows, skills, subagents, automation, reuses the rules you write into CLAUDE.md. What you need to prep before you learn the next thing outweighs pure cost, in this case.

Take a look inside the .claude directory

All five extensions exist as files or folders. Seeing where, once, makes every lesson after this one go faster. Claude Code checks two spots: the .claude/ folder inside whatever project you're working in, and ~/.claude/ in your home folder. Per the official docs on "Understanding the .claude directory," a project's .claude/ folder holds settings.json (permissions and hook config), settings.local.json (settings local to just your machine), and folders like skills/, agents/, rules/, commands/. Hooks don't get their own folder; they live as a hooks entry inside settings.json. The home ~/.claude/ adds your personal CLAUDE.md and the projects/ folder where automatic memory accumulates.

CheckpointIn your terminal, move to whatever project you're currently working in and run ls -a .claude. If you've never touched this folder in this project before, it might not exist at all, or you might see nothing but settings.local.json. That's normal, since this folder only fills in as you create skills or subagents. Next, run ls ~/.claude to open your home folder too. Depending on how long you've used Claude Code, you'll see CLAUDE.md, settings.json, and, if you've built anything before, skills/ and agents/ folders as well.

I didn't run this check myself until much later. The first time I opened .claude/, there was already something inside it, and I figured it was just managed automatically. I kept building things project by project without ever looking inside. Then one day I found that a folder I'd been working out of for a while was completely empty, and a skill I thought I'd already set up hadn't actually saved right. I'd been assuming everything was fine just because it usually was. That's when it hit me that I needed to learn the folder structure first, and the two commands above are the check I wish I'd run back then.

Why MCP isn't on this list: it points the other way

MCP shows up next to these five constantly, but it's not part of this lesson. The official docs list it in the same table when they cover extensions, but what it actually does is different. CLAUDE.md, skills, subagents, hooks, and plugins are all about what Claude Code decides to do on its own. MCP points the other way: it's the channel that connects Claude Code to an outside service, a database or Slack. You've already covered this twice earlier in this journey. Track 2 (Connect) explained the shared standard itself, and Track 3 (the CLI track) had you make an actual connection with claude mcp add. Covering it again here would be redundant, so this track skips MCP.

In 30 seconds
  • Five extension points: CLAUDE.md, skills, subagents, hooks (automation), and plugins. MCP points a different direction, so it's not part of this track.
  • CLAUDE.md replaces what you'd otherwise explain every time, skills replace a repeated procedure, subagents replace side work that clutters your conversation, and hooks/automation replace needing a human to press start.
  • The learning order tracks the cost order: install a plugin, write CLAUDE.md, build a skill, split off a subagent, automate. This track puts CLAUDE.md ahead of plugins anyway, since later lessons reuse it as an ingredient.
  • A project's .claude/ and your home ~/.claude/ are where these five extensions actually live. It's normal for the project side to be empty until you build something.
  • A plugin is packaging: it bundles skills, hooks, subagents, and MCP servers into one installable unit.

Frequently asked questions

What's the difference between Claude Code skills and subagents?

A skill is reusable guidance you can load into any context; a subagent is an isolated worker that runs in its own context, separate from the main conversation. Use a skill and its content gets added straight into your main conversation's context. Use a subagent and the work happens off to the side, with only a summary coming back. The official docs recommend skills for reference material and repeated workflows, and subagents for tasks that read a lot of files, run in parallel, or need context kept separate. The two can combine, too: you can configure a subagent to load a specific skill automatically.

Why does this track say 'automation' instead of 'hooks'?

Because that's what people actually search for. Autocomplete and YouTube data both show far more demand for outcome-based queries like 'claude code automation' or 'automate my workflow' than for the bare word 'hooks.' Readers search by the result they want, not the name of the mechanism. So this track doesn't give hooks their own lesson; it covers hooks and scheduled routines together inside the automation lesson.

What's the difference between a Claude Code plugin and a skill?

They sit at different layers. A skill holds one piece of knowledge or one procedure. A plugin is the packaging unit that bundles skills with hooks, subagents, and MCP servers so you can install them all at once. The official docs recommend plugins when you want to reuse the same setup across multiple repos, or distribute it to other people through a marketplace. If all you need is a single skill, you don't need to go as far as a plugin.

My .claude folder is empty. Is that normal?

Yes. A project's .claude folder isn't created in advance; it only appears once you actually build something in it, a skill, a subagent, a permission setting. If you've never created anything in a given project, it's normal for the folder to not exist at all, or to hold nothing but settings.local.json.

Where does MCP fit among these five extension points?

It doesn't fit anywhere. CLAUDE.md, skills, subagents, hooks, and plugins are all about what Claude Code decides to do on its own, while MCP is the channel that connects Claude Code to an outside service like a database or Slack. The direction is different enough that this track skips it and just points back to what Track 2 and Track 3 already covered.

Sources (6)Expand to see all sources
quest_log.txt
Earned
Chapter 1 complete
+10 XP (total 0)
The five extension points sort by how much they cost you, not by their names
0/7 · 0%
Lv.1 Novice
0 / 100 XP
100 XP to next level
Next questHow to Write a CLAUDE.md File: Pin What You Keep Explaining Twice
1 / 7How to Write a CLAUDE.md File: Pin What You Keep Explaining Twice< BackNext>