Use this guidance whenever launching any subagent, regardless of role.
Before every launch, follow the flow below to choose the model and reasoning effort together. Set both explicitly in the spawn call. Apply the flow again for each new assignment; do not automatically reuse a previous selection.
Keep the user-selected lead model unchanged. Luna means gpt-6-luna;
Sol means gpt-6.1-sol. The configured default is Luna/high.
Follow this flow before spawning. Choose the resulting pair directly; these are classification questions, not a sequence of trial runs.
flowchart TD
Task[Assess the assigned subtask] --> Complex{"Complex or ambiguous task?<br/>Architecture, interacting modules,<br/>difficult debugging, broad or risky review"}
Complex -->|No| Mechanical{"Purely mechanical?<br/>Exact checks, simple extraction,<br/>fine-grained edits with no judgment"}
Mechanical -->|Yes| LunaLow[Luna / low]
Mechanical -->|No| Synthesis{"Substantial synthesis with clear constraints?<br/>Several sources or apps"}
Synthesis -->|Yes| LunaXhigh[Luna / xhigh]
Synthesis -->|No| LunaHigh["Luna / high<br/>Ordinary bounded work"]
Complex -->|Yes| Demanding{"Decisions from conflicting evidence,<br/>or demanding deliverables needing<br/>polish and consistency across components?"}
Demanding -->|Yes| SolXhigh[Sol / xhigh]
Demanding -->|No| Deep{"Deep correctness reasoning?<br/>Competing hypotheses, state, concurrency,<br/>lifecycle, subtle security or data integrity"}
Deep -->|Yes| SolHigh[Sol / high]
Deep -->|No| SolMedium["Sol / medium<br/>Normal starting point for complex work"]
Before spawning, give the subagent a self-contained brief and use
fork_turns="none". Set both model and reasoning_effort explicitly to
the selected pair. Full-history forks inherit the parent model and effort
and cannot accept spawn-time overrides. Check custom agent files first:
their model and reasoning settings take precedence. State the task-specific
reason for choosing a pair other than Luna/high.
If work stalls, identify the cause before changing the pair. Missing requirements, evidence, or access, tool failures, waiting for CI, and routine test repairs call for better information or execution. For a demonstrated reasoning limitation, return the unresolved problem and evidence to the lead; the lead reassesses this flow and explains why the new pair should help.
Max and ultra are exceptional choices for a bounded problem. Reassess the model and problem framing first, and explain why xhigh is insufficient. Repository size, elapsed time, or the lead's setting alone do not justify an increase. Long or repetitive work with a settled contract can stay on Luna. Reassess each new assignment rather than carrying an elevated setting forward.
Use the OpenAI model-selection guidance as task-specific starting points alongside this local flow.