feat(agents): pin dispatched judgment agents to opus — Fable = inline reflection only (BDR-076)

Reverses the BDR-066 rejected alternative (opus pins on audit agents):
session default is now Fable, so inherit burned Fable quota on every
dispatched audit/challenge. analyzer, plan-challenger, seo/geo/
validator-analyzer pinned model: opus; onboard's 6 general-purpose
audit dispatches carry model="opus"; tour Phase B repointed.
interviewer + client-handover-writer stay unpinned (inline-load only,
a pin there is inert). settings.json default: claude-fable-5[1m].
Census flipped: model-routing §3 + new §11 (61 pass), loops-light 35,
full make test green.
This commit is contained in:
Bastien Chanot
2026-07-19 17:38:55 +02:00
parent 9bc6ab7e07
commit 354ff2644f
10 changed files with 41 additions and 19 deletions
+5 -2
View File
@@ -2,6 +2,7 @@
name: plan-challenger
description: Fresh independent plan challenger — reads a PLAN file from disk and adversarially attacks it through ONE assigned lens (correctness | robustness | simplicity), then renders structured findings + a verdict. Report-only, never fixes, never implements. Dispatched fresh; blind to the other lenses.
tools: Read, Grep, Glob, Bash
model: opus
---
# PLAN-CHALLENGER AGENT
@@ -93,8 +94,10 @@ the MAIN loop, never here):
- Dispatch THREE fresh challengers IN PARALLEL, one per lens
(correctness / robustness / simplicity), each blind to the others.
- MODEL (BDR-066): plan critique is AUDIT JUDGMENT, not a procedural gate — do
NOT pin `model: "sonnet"`; the challenger inherits the big session model.
- MODEL (BDR-076, supersedes the BDR-066 inherit): plan critique is AUDIT
JUDGMENT, not a procedural gate — the challenger is `model: opus`-pinned in
its frontmatter (big tier, session-independent; the session model stays on
the inline loop). Never `model: "sonnet"` — a silent judgment downgrade.
(Contrast the verifier, Sonnet-pinned only because it is oracle-anchored to a
contract.)
- FAIL-SAFE — never fail open: a malformed/empty verdict, a missing `PROOF`, or