“Which do I reach for now?”

Decide what to use

Don’t design your setup up front. Add a primitive the moment a concrete trigger appears — this is Anthropic’s own guidance (features overview). Reviewed 2026-06-06.

The trigger ladder

Start at the top with CLAUDE.md. Each row is a real symptom and the primitive that resolves it.

When you notice…Reach forCoordination
Claude got a convention wrong twiceCLAUDE.mdFoundations
You keep typing the same prompta user-invocable skillExtend
You’ve pasted the same playbook a third timea skillExtend
You copy data from a tab/system Claude can’t seean MCP serverExtend
A side task floods your conversation with outputa subagentExtend
You want something to happen every time, without askinga hookExtend
Subagents hit context limits, or need to talk to each otheragent teamsOrchestrate
A job needs more agents than one conversation can coordinatea dynamic workflowOrchestrate
You’re juggling several independent tasks at onceagent view (+ worktrees)Orchestrate
A second repo needs the same setupa pluginOrchestrate
Something must be blocked/required across the orgmanaged policyOrchestrate
You want Claude to keep working until a condition holds (tests pass, queue empty)a /goal (condition-driven)Extend
You want to poll something every N minutes inside an open sessiona /loop (clock-driven)Extend
You want Claude to run unattended on a schedule, laptop closeda routine (scheduled trigger)Operate
Claude should react to a GitHub event (PR / release) on its owna routine (GitHub trigger)Operate
An external system should fire a Claude run via webhook/APIa routine (API /fire)Operate

Decision flow

Is it about knowing, reaching, guaranteeing, or coordinating?

Knowing / behaving

β†’
A fact Claude needs always β†’ CLAUDE.md
β†’
A procedure used sometimes β†’ skill
β†’
Path-specific guidance β†’ .claude/rules/
β†’
A default voice/format β†’ output style

Reaching out

β†’
Connect an external system / live data β†’ MCP
βœ•
Don’t use a skill to reach a system; a skill only knows how to use tools Claude already has.

Guaranteeing

β†’
Block/allow a tool call by pattern β†’ permission rule
β†’
Run your own code on an event β†’ hook
β†’
Enforce across everyone β†’ managed policy
βœ•
Never rely on CLAUDE.md text for a guardrail — it’s soft.

Coordinating

β†’
Offload a noisy side task β†’ subagent
β†’
Peers that must talk β†’ agent team
β†’
Massive fan-out + cross-check β†’ dynamic workflow
β†’
Many independent sessions you supervise β†’ agent view

Keeping it running

β†’
On a schedule / GitHub event / API call, laptop closed β†’ routine (cloud)
β†’
Poll something every N min inside an open session β†’ /loop (local, clock)
β†’
Keep going until a condition holds β†’ /goal (a fresh model checks each turn)
βœ•
A routine run has no permission prompts — scope its repos/connectors first.
βœ•
Don’t mistake /loop for OS cron: cron runs a fixed script; /loop runs a model that decides, only while the session is open, and expires in 7 days.
The 80% answer Most days you live in the Foundations / Extend groups: a good CLAUDE.md, a couple of skills, one or two MCP servers, a formatting hook. Reach into Orchestrate (teams, workflows, agent view) only when a single session genuinely can’t hold the work — they cost substantially more tokens.

Confusable pairs β€” pick correctly

Skill vs Subagent

A skill adds instructions to your context window (shareable know-how, no isolation). A subagent runs in a separate window and returns only a summary (isolation + a different tool/permission profile). Re-pasting a procedure? Skill. Drowning in a side task’s output? Subagent.

Hook vs Skill

A hook is deterministic — guaranteed to run on its event. A skill is interpreted by the model and may or may not fire. Put guardrails in hooks, knowledge in skills.

MCP vs Skill

MCP is the connection (new tools/data). A skill is the knowledge of how to use them well. They combine: an MCP server reaches your DB/Jira; a skill encodes the team’s procedure for using them.

Subagent vs Agent team

Subagents report up and don’t talk to each other; cheaper, simpler. Agent teams are peer sessions that share a task list and message each other; more powerful, more expensive. The docs name the exact transition: “if you’re running parallel subagents but hitting context limits, or your subagents need to communicate, agent teams are the natural next step.”

Agent teams vs Dynamic workflows

Both run many agents. In a team, a lead model holds the plan turn-by-turn and peers can discuss — good for a handful of deep, collaborating workers. In a workflow, a script holds the plan — good for dozens-to-hundreds of well-scoped tasks with a repeatable, cross-checked quality pattern and no context bloat.

Agent view vs Agent teams

Agent view is a dashboard for many independent sessions you coordinate (they don’t talk). Agent teams is the model coordinating peers that do talk. Worktrees sit under both as the file-isolation mechanism.

Naming overlaps — “is X just another word for Y?” (conventions vs policies, the two meanings of “routines,” the three things called a “rule,” and tool call vs MCP vs skill vs function call) — are a different question from which-do-I-pick; they live in the matrix’s Terminology fixes. Choosing how to keep Claude running is its own two-axis decision — just below.

Keep running β€” two axes

/loop, /goal, hooks, routines and cron all blur together because they all “keep Claude working.” They separate cleanly on two questions: where it runs (in an open session you’re driving, or independent of any session) and what starts the next unit of work (a clock, a condition, or an event).

Clock (interval)Condition (a check passes)Event (something happens)
In an open session /loop β€” re-run a prompt every N min /goal β€” until a small model confirms done; or a custom Stop hook Hooks (PreToolUse, Stop…); Channels (CI pushes a failure in)
Independent of session Routines (schedule) Β· Desktop scheduled tasks Β· OS cron Β· GitHub Actions β€” Routines (GitHub event / API /fire)
The discriminators /loop vs /goal = clock vs condition. /loop vs OS cron = cron runs a fixed script; /loop runs a model that decides (and is session-scoped, 7-day expiry). /loop vs routines = local + session open vs cloud + unattended. /goal vs a Stop hook = a session shortcut vs a settings-level handler you script. A skill is the saved procedure any of these runs — the “what,” not the “when/where.”

Cost & trust checklist before going parallel

βœ“
Each parallel session/agent burns its own quota — 10 agents β‰ˆ 10Γ— the tokens.
βœ“
Trial a workflow on one directory before unleashing it on the whole repo.
βœ“
Route shallow stages to a cheaper model; keep the strong model for synthesis.
βœ“
Partition files (or use worktrees) so parallel writers never collide.
βœ“
Trust boundary: review any MCP server and any project skill before trusting a repo — both can grant access or inject instructions.