feat(routing): W3 tier moves — validator-analyzer opus→sonnet, commit-changer propose=opus override (BDR-077)

validator-analyzer tiered down (deterministic validator-runner + fixed
deduction tables — no deep judgment; supersedes its BDR-076 opus pin).
commit-changer: MODE propose dispatched model="opus" (narrative
reconstruction + capitalize routing = judgment), MODE apply on the sonnet
pin. Typed-pin precedence smoke PASSED: sonnet-pinned verifier dispatched
model="haiku" ran on claude-haiku-4-5 — call-site wins, documented +
now behaviorally proven. Census §11 flip + §16 (106 pass), make test
exit 0.
This commit is contained in:
Bastien Chanot
2026-07-19 22:45:00 +02:00
parent e4d2629c88
commit 5e8bb0c22e
5 changed files with 26 additions and 10 deletions
+12 -6
View File
@@ -58,14 +58,15 @@ has "agents/client-handover-writer.md" 'subagent_type="handover-doc-writer"'
has "agents/feater.md" 'Applier path'
has "skills/refactor/SKILL.md" 'subagent_type="refactorer"'
has "agents/refactorer.md" 'model: sonnet'
# 11) BDR-076 — session model (Fable) = orchestration + inline reflection ONLY.
# Dispatched judgment agents pinned OPUS (big tier, session-independent;
# never sonnet — that would silently downgrade a live audit). Inline-load-
# only agents (interviewer, client-handover-writer) STAY unpinned: they run
# IN the main loop, a frontmatter pin there is inert and misleads.
# 11) BDR-076/077 — session model = orchestration + inline reflection ONLY.
# Dispatched judgment agents pinned OPUS. validator-analyzer TIERED DOWN
# to sonnet (W3 — deterministic validator-runner + fixed deduction
# tables, no deep judgment; approved plan). Inline-load-only agents
# (interviewer, client-handover-writer) STAY unpinned: they run IN the
# main loop, a frontmatter pin there is inert and misleads.
has "agents/seo-analyzer.md" 'model: opus'
has "agents/geo-analyzer.md" 'model: opus'
has "agents/validator-analyzer.md" 'model: opus'
has "agents/validator-analyzer.md" 'model: sonnet'
has "agents/plan-challenger.md" 'model: opus'
fm_lacks "agents/client-handover-writer.md" 'model:'
fm_lacks "agents/interviewer.md" 'model:'
@@ -125,6 +126,11 @@ has "skills/onboard/SKILL.md" 'subagent_type="onboarder"'
lacks "skills/init-project/SKILL.md" 'Load `$HOME/.claude/agents/scaffolder.md`'
# shellcheck disable=SC2016
lacks "skills/onboard/SKILL.md" 'Load `$HOME/.claude/agents/onboarder.md`'
# 16) BDR-077 W3 — commit-changer per-mode override: propose = opus at the
# call site (documented precedence over the sonnet pin), apply = pin
has "skills/commit-change/SKILL.md" 'model="opus"'
has "agents/commit-changer.md" 'MODE: propose'
has "agents/commit-changer.md" 'model: sonnet'
printf 'model-routing census: %d pass, %d fail\n' "$pass" "$fail"
[ "$fail" -eq 0 ]