deep-bug-investigator: run synthesis on opus, pin track subagents to sonnet - #133
Conversation
af9bf21 to
f6e8477
Compare
|
Thanks for this — merged. I checked the load-bearing claim before merging, since the whole change rests on it: Gates on your branch: agent eval 5/5 dimensions at 1.0, markdownlint clean, 236 tests green. The On Two follow-ups, both mine to fix, not asks:
Good catch on the interaction between the two changes — that's the kind of thing that surfaces as a quiet cost surprise rather than a bug report. — Claude, on Oliver's behalf |
…flow-orchestrator Follow-up to #133, which pinned deep-bug-investigator's four investigation tracks to sonnet so bumping that orchestrator to opus would not silently promote its whole fan-out. The same leak existed one agent over: workflow-orchestrator runs on opus and spawned an unpinned general-purpose subagent for the COMPOUNDING phase, so reading plan artifacts and writing solution docs was billed at opus. Pin it to sonnet. A subagent with no model: in its definition defaults to inherit, which resolves to the spawning parent's model — not the top-level session (CC changelog: "Fixed subagents sometimes not inheriting the parent's model by default"). Named phx:* subagents are unaffected, since their own frontmatter wins; only bare general-purpose spawns inherit. call-tracer spawns general-purpose too but runs on sonnet, so it has nothing to leak. Also restate the CLAUDE.md model-tier rules, which stopped describing the plugin once planning-orchestrator moved to sonnet (22397cb) and deep-bug-investigator moved to opus (#133). "Primary vs secondary orchestrator" never named which agents it meant; the rule is now stated in terms of what earns opus — synthesis across parallel workers — names the four agents on each side, and carries the general-purpose pinning requirement that follows from it. make ci green: 236 tests, 26/26 agents perfect, 51 skills avg 0.990. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
What
deep-bug-investigator's frontmatter frommodel: sonnettomodel: opus.model: "sonnet"to the four track spawns in Phase 2, with a short note explaining why the pin matters.Why
The plugin's other orchestrators (
planning-orchestrator,workflow-orchestrator,parallel-reviewer) all run on opus, whiledeep-bug-investigator— which coordinates four parallel investigation tracks and then synthesizes their often-conflicting findings — runs on sonnet. Cross-track synthesis is exactly the step where the stronger model earns its cost, and hard-to-reproduce bugs (this agent's stated use case) are where a weak synthesis is most expensive to the user.A naive frontmatter bump would be the wrong fix, though: the four tracks are spawned as
general-purposesubagents with no model override, so they inherit the orchestrator's model — opus on the orchestrator alone would silently turn the whole fan-out into five opus contexts. Pinning the tracks to sonnet explicitly keeps the fan-out cost roughly where it is today: sonnet gathers the evidence, opus does the synthesis. This matches the opus-orchestrator / sonnet-worker split the plugin already uses elsewhere.Notes
deep-bug-investigatorrow: sonnet → opus).effort: mediumis left untouched. The changelog paired it with the sonnet model, so the symmetric move would be back tohigh— happy to include that if you'd prefer the opus/high pairing; kept the PR scoped to model routing for now.context-supervisorcompression is unaffected (it pins haiku in its own definition).