sharing some learnings. subagents in Claude Code are amnesic: they don't inherit the parent's context.
this is both a feature (better context isolation) and a problem (child has to explore and build context again, costing speed and tokens).
but lo and behold, Anthropic is previewing "forked subagents" behind the ...FORK_SUBAGENT=1 feature flag.
with this, the parent can choose to "donate" a copy of its context to a spawned child. sounds nice, right? yes, but apparently Claude doesn't set guardrails to prevent cross-model forking. this is bad.
the point: you really don't want Opus to fork into Sonnet. it will trigger a KV cache miss (different cache domain), will cost you dearly in tokens, and it may outright fail (due to context window size mismatch).
but if you limit yourself to same-model forking, you neglect the most common pattern: having an high-intelligence orchestrator (Opus) delegate to a lower-intelligence executor (Sonnet).
catch-22, right? well, not if you spawn a middle layer that starts fresh and fork in turn within a phase.
L1 orchestrator (Opus)
|__ L2 phase-scoped middle layer (Opus/Sonnet, fresh)
|__ L3 executor (same model, forked)
let the context juggling games begin ๐คนโโ๏ธ