Reactify Solutions
HandbooksClaude Code customizationWhich one should I use?

Which one should I use?

A one-line answer for each of Claude Code's eight customization tools, plus the four moments that tell you to move something from one to another.

Claude CodeLast reviewed September 3, 2026
In one minute
  • Each tool answers a different question. Match your problem to the question, not the other way around.
  • Most people reach for CLAUDE.md for everything, because it is the first one they learn. It is the wrong tool for enforcement and for reusable procedures.
  • Here is where it bites people: they write a hard rule in CLAUDE.md, then get surprised when Claude occasionally skips it. CLAUDE.md is advice. A hook is enforcement.

The table

You want to...Use
Keep a fact or convention always in contextCLAUDE.md
Reuse a multi-step procedure across projectsA skill
Give a task its own isolated context and a cheaper modelA subagent
Trigger an exact prompt yourself, on demandA slash command
Make something run every time, no matter what the model decidesA hook
Give dozens of teammates identical setup in one installA plugin
Connect Claude to an external tool or databaseMCP
Change Claude's tone or output format for a taskAn Output Style

Auto memory is not on this list because you do not choose to use it. Claude writes it on its own, from corrections you make mid-conversation, and it sits alongside CLAUDE.md rather than competing with it. See Memory management for how the two work together.

Four moments that tell you to move

In one minute
  • A CLAUDE.md section is turning into numbered steps → move it to a skill. Instructions load every session whether you need them or not; a skill's body loads only when it is relevant.
  • A rule keeps getting skipped → move it from CLAUDE.md to a hook. CLAUDE.md is context Claude reads. A hook is a command that runs, with no way for the model to opt out.
  • One task is filling the conversation with noise you do not need afterward → move it to a subagent. It runs in its own context window and hands back only a summary.
  • The same procedure needs to work in Claude Code and somewhere else entirely, the API, a different tool that reads the same format → build it as a skill, not a Claude Code-only slash command. A skill is the one artifact here that is portable outside Claude Code at all.

Why CLAUDE.md is not the answer to everything

CLAUDE.md is durable, always-loaded context: facts and conventions Claude should know on every single message. That is exactly why it is the wrong place for two things. Procedures only matter when you are doing that specific task, so they should not cost context on every other message. Hard rules need to hold even when the model would otherwise reasonably decide to skip them.

A skill fixes the first problem through progressive disclosure. Claude sees only the skill's name and a one-line description by default, and loads the full body only when the current task actually matches it. A hook fixes the second problem by moving the rule out of the model's judgment entirely. It is a script that runs, not a suggestion the model reads.

Where everything lives has the file path and precedence rule for every tool on this page.

Last reviewed September 3, 2026 · verified against Anthropic's Claude Code docs, Sep 2026