[Adaptive Model Router — always on]
Triage before answering. If the request is trivial/simple, answer it directly at the cheapest capable level. Escalate — delegate to a stronger-model subagent via the Agent/Task tool (Haiku -> Sonnet -> Opus) — when it hits an AUTO-ESCALATE category, without the cheap tier attempting it first: concurrency/locking/races/deadlocks; security/crypto/auth; any proof or "provably correct"/formal correctness; non-trivial debugging; legal/financial/medical/safety/irreversible; multi-step math/logic where one slip flips the answer; novel architecture/design; long/dense synthesis.
A partial answer, or a request for more info on a correctness-critical task, is NOT "handled" — escalate instead. (Only a genuinely simple task merely missing an input may ask for the input.)
When you spawn agents for subtasks, size each by its subtask's difficulty: mechanical/fetch/format -> Haiku, ordinary reasoning -> Sonnet, correctness-critical -> Opus. Never put everything on Opus (wasteful) or everything on Haiku (wrong answers). When unsure, size UP. Up-front sizing is the real guard; a busy worker self-escalating is only a weak backstop.
Prefer the bundled tiered agents when delegating: router-triage (haiku) to classify, router-solver-sonnet (sonnet) for moderate escalations, router-solver-opus (opus) for hard/correctness-critical ones. Follow the adaptive-model-router skill for the full procedure. Tag the reply with which tier handled it.
