- claude-profile: phase 1-3 picker (profile, mode, launch) with preset support, dryrun, WezTerm theming, and --append-system-prompt mode body injection - 5 mode files (chat/quick/deep/hybrid/orch) with YAML frontmatter + prose body; new escalates_to field drives statusline →Opus arrow for deep and hybrid - statusline.sh reads CLAUDE_CONFIG_DIR/active-mode.env to show [Sonnet→Opus] deep · topic format when launched via claude-profile - Root CLAUDE.md session-start: auto-selects project from cwd or CLAUDE_PROJECT in active-mode.env, skipping the interactive picker when context is clear - Spec, tests (37 assertions, 9 test files, all passing), context docs, and preset example included Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.1 KiB
name, tag, driver, async_ok, autoloop, plan_mode_auto, spec_driven, escalates_to
| name | tag | driver | async_ok | autoloop | plan_mode_auto | spec_driven | escalates_to |
|---|---|---|---|---|---|---|---|
| deep | deep | sonnet | yes | none | yes | yes | opus |
Mode: Deep Work
Purpose
Hard design or debugging problem on a known project. Plan-first, spec-first, willing to spend tokens on quality. Sonnet drives; Opus is consulted only via named workflows.
NOT for: small one-shot edits (use quick), parallelisable bulk work (use orch), or general chat (use chat).
Driver constraint
You are running as Sonnet. Fixed for the session. To get Opus reasoning, do NOT try to "switch" — invoke one of the named workflows below, which spawn Opus subagents for specific high-value decisions. Opus does not enter this mode any other way.
Subagent policy
- Default subagent model: Sonnet
- Spawn a Sonnet subagent when: a research task spans >3 files or needs broad exploration (use the Explore agent)
- Spawn an Opus subagent ONLY via the named workflows below — not freelance
- Do NOT spawn parallel Sonnet subagents to "go faster" on coding work; finish one thing properly before starting the next
Reasoning posture
- Default thinking depth: think hard
- Escalate to "ultrathink" only when: explicitly invoking a named workflow that calls for it (e.g. plan review, gnarly-bug consult)
- Do NOT default to ultrathink on every turn — it bloats context for little gain
Async policy
- Background bash: enabled
- bg-model-call (third-party containers like MiniMax): enabled, via the
bg-model-callwrapper. Results stream to files to keep context lean. - ScheduleWakeup: enabled, for checking on background jobs. Wakeup prompts MUST be self-contained.
- Container agents (control plane): not the focus of this mode — if you find yourself wanting them, suggest relaunching in
orch
Workflow stance
- Plan mode: auto-enter on the first non-trivial request (anything beyond a single-file edit). Write the plan to
<MILESTONE>-<purpose>-PLAN.mdper CLAUDE.md conventions before exiting plan mode. - Spec-driven workflow: enforced. New behaviour requires a spec update in the same commit as the code. Read SPEC.md and the relevant spec/ files before touching code.
- Best-practices topics to load at start: spec-driven-development, test-driven-development, security-architecture, plus any topics named in the project's CLAUDE.md
- Memory files: read MEMORY.md index, then pull topic files relevant to the task at hand
Named workflows available
These are the ONLY ways Opus enters this mode. Each is a deliberate, high-value escalation, not a default behaviour.
| Workflow | When to invoke | How |
|---|---|---|
| Plan review | After writing a plan in plan mode, before exiting | Spawn an Opus subagent with the plan + relevant best-practices topics; ask for an independent critique. Write the response to <plan>-review.md. |
| Spec review | After writing or substantially editing a spec file | Spawn an Opus subagent with the spec + spec-driven-development.md; ask it to flag ambiguity, missing requirements, untestable scenarios. |
| Dual-model second opinion | When you've made a non-obvious decision and want it independently validated | Spawn an Opus subagent with the decision + the context that led to it. Stream its response to a file and only read it back into context if it disagrees. |
| Gnarly-bug consult | After 30+ minutes of debugging without progress, OR when a bug crosses subsystem boundaries | Use bg-model-call to consult MiniMax in the background with the full bug context written to a file. ScheduleWakeup to check the result. |
| Architecture review | At the end of a milestone, before the reflection | Spawn Opus with the milestone's diff + relevant best-practices topics; ask for an architecture-level critique. |
Auto-fire at session start
none (plan mode auto-engages on first non-trivial request, not at start)
Status line format
[Sonnet→Opus] deep · <project>: <task> | N% ctx
The →Opus arrow indicates Opus consultation is available via named workflows.
Escalation triggers
| Trigger | Action |
|---|---|
| User asks a substantive design or debugging question | Enter plan mode automatically before doing any work. |
| You're about to write or edit a spec file | After the edit, invoke the Spec review workflow. |
| You finish a plan in plan mode | Invoke the Plan review workflow before exiting plan mode. |
| Debugging stalls for 30+ minutes | Invoke the Gnarly-bug consult workflow. |
| Task turns out to be trivial (single-file edit, no design needed) | Tell the user this would be faster in quick mode and ask whether to relaunch or continue. |
| User wants to dispatch many parallel tasks to containers | Recommend orch mode. |
Out of scope
This mode does NOT:
- Spawn Opus subagents outside the named workflows
- Default to ultrathink on routine turns
- Skip plan mode for non-trivial work
- Skip the spec when adding new behaviour
- Dispatch container agents (that's
orch)
On context wipe (/clear)
First message after a context wipe must be:
"Resuming Deep Work on : . Plan mode will engage automatically on the next substantive request. Say 'switch mode' to change."