Skip to content

deep-bug-investigator: run synthesis on opus, pin track subagents to sonnet - #133

Merged
oliver-kriska merged 2 commits into
oliver-kriska:mainfrom
BugsBunny338:deep-bug-investigator-model-split
Aug 11, 2026
Merged

deep-bug-investigator: run synthesis on opus, pin track subagents to sonnet#133
oliver-kriska merged 2 commits into
oliver-kriska:mainfrom
BugsBunny338:deep-bug-investigator-model-split

Conversation

@BugsBunny338

@BugsBunny338 BugsBunny338 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

What

  • Bump deep-bug-investigator's frontmatter from model: sonnet to model: opus.
  • Add an explicit 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, while deep-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-purpose subagents 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

  • The agents table in README.md is updated to match (deep-bug-investigator row: sonnet → opus).
  • effort: medium is left untouched. The changelog paired it with the sonnet model, so the symmetric move would be back to high — happy to include that if you'd prefer the opus/high pairing; kept the PR scoped to model routing for now.
  • context-supervisor compression is unaffected (it pins haiku in its own definition).
  • No behavior change other than model routing; prompts and orchestration flow are untouched.

@BugsBunny338
BugsBunny338 force-pushed the deep-bug-investigator-model-split branch from af9bf21 to f6e8477 Compare July 27, 2026 07:06
@BugsBunny338
BugsBunny338 marked this pull request as ready for review July 27, 2026 07:06
@oliver-kriska
oliver-kriska merged commit ac5d485 into oliver-kriska:main Aug 11, 2026
6 checks passed
@oliver-kriska

Copy link
Copy Markdown
Owner

Thanks for this — merged.

I checked the load-bearing claim before merging, since the whole change rests on it: general-purpose carries no model: frontmatter, and per the subagent docs an omitted model defaults to inherit. The Claude Code changelog entry "Fixed subagents sometimes not inheriting the parent's model by default" settles the ambiguity in "inherit" — it's the spawning parent, not the top-level session. So you're right that a frontmatter-only bump would have quietly turned one opus orchestrator into five opus contexts. The pin is the part of this PR that actually matters, and catching that is what made it mergeable as-is.

Gates on your branch: agent eval 5/5 dimensions at 1.0, markdownlint clean, 236 tests green. The Dependency Audit red was a stale-branch artifact — the fork predated the brace-expansion 5.0.9 bump on main — so I updated the branch and re-ran rather than merging past it.

On effort: keeping medium, as you scoped it. lab/eval/agent_matchers.py allowlists deep-bug-investigator in ORCHESTRATOR_NAMES, so opus + effort: medium already passes the consistency check with "Opus justified for orchestrator" — there's no symmetry debt to pay. And stacking high on top of the model bump would multiply cost across a maxTurns: 30 four-track fan-out. Model is the right lever here; effort can follow if it measurably helps.

Two follow-ups, both mine to fix, not asks:

  1. planning-orchestrator is sonnet/medium these days — it moved off opus in 22397cb when it was repurposed as a non-interactive research sub-orchestrator. So the split is 2 opus / 2 sonnet rather than deep-bug-investigator being the odd one out. Doesn't change the conclusion, but CLAUDE.md still says "use sonnet for secondary orchestrators (investigation, tracing)", which now contradicts the shipped agent. Updating that, plus the missing CHANGELOG entry.

  2. Your reasoning generalizes past the agent you touched: workflow-orchestrator is opus and spawns an unpinned general-purpose for the COMPOUNDING phase, so it has the same inheritance leak today. Pinning that one too.

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

oliver-kriska added a commit that referenced this pull request Aug 11, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants