Skip to content

When to use what ​

Claude Code gives you many levers. This page is a quick decision guide so you reach for the right one without overthinking it.

Plan mode vs. just doing it ​

  • Use plan mode for non-trivial or multi-file tasks — anything where you'd want to review the approach before code is written.
  • Skip it when you can describe the diff in a single sentence ("add a docstring to main"). Planning a trivial change just adds friction.

Rule of thumb: if you can't say exactly what the change is in one breath, plan it first.

Subagent vs. inline ​

  • Subagent when a task reads many files or you want to protect your main context. The subagent investigates in its own context window and returns a summary. See Subagents.
  • Inline (just ask in the main session) for focused work where you want to see and steer every step.

Skill vs. command vs. hook vs. MCP ​

These look similar but solve different problems:

MechanismUse when…Trigger
Skilla capability is sometimes relevant and reusableloads when the task matches
Commandyou want a named shortcut you invoke yourself (a skill with disable-model-invocation)you type /name
Hooksomething must happen every time, deterministicallyfires automatically on an event
MCPyou need to connect an external tool (database, API, service)available once configured
  • Use a skill when you have know-how that applies now and then — a testing convention, a deploy procedure — and you want Claude to pull it in automatically.
  • Use a command when you want a skill that runs only when you invoke it by name — set disable-model-invocation: true. Commands and skills are one mechanism; a command is just a manually-triggered skill.
  • Use a hook when the action is non-negotiable: format on every edit, block commits to main, log every tool call.
  • Use MCP when Claude needs to reach a system it can't touch with files and shell — but keep your MCP set lean, since each server adds context and surface area.

See the reference pages for each: Skills, Hooks, MCP.

Model selection by task ​

  • Sonnet — your default. Handles roughly 80% of work: features, refactors, bug fixes, tests.
  • Opus — reach for it on hard multi-file work, architecture decisions, and tricky bugs where deeper reasoning pays off.
  • Haiku — for trivial tasks: quick edits, simple lookups, mechanical changes where speed matters most.

Start on Sonnet. Step up to Opus when a task is genuinely hard; drop to Haiku when it's genuinely simple.

/clear vs. /compact ​

  • /clear between unrelated tasks — start each task with clean working memory.
  • /compact mid-task when context grows heavy but you still need continuity.

And one more reset worth memorizing: if you've corrected Claude two or more times on the same point, stop fighting the thread. Run /clear and rewrite the prompt from scratch — a clean start beats a confused one. (Why context hygiene matters: the context window.)

At a glance ​

  • One-sentence change → just do it. Otherwise → plan mode.
  • Reads many files → subagent.
  • Sometimes-relevant know-how → skill. Must happen every time → hook. External system → MCP.
  • Default to Sonnet; Opus for hard, Haiku for trivial.
  • New task → /clear. Long task filling up → /compact.

Source: Claude Code overview

Released under the MIT License.