feat(model-routing): /bugfix split — reflection inline, bugfixer = sonnet executor (supersedes BDR-050 bugfix carve-out)

Reroute hotfix's deeper-bug escalation to the /bugfix skill (bugfixer is now a
pure executor, not loadable standalone). loops-light locks repointed to the
bugfix orchestrator + bugfixer-executor shape.
This commit is contained in:
Bastien Chanot
2026-07-15 23:50:34 +02:00
parent 152da63624
commit 1f7afc1d49
5 changed files with 302 additions and 250 deletions
+12 -5
View File
@@ -11,6 +11,7 @@ REPO="$(cd "$(dirname "$0")/../.." && pwd)"
INC="$REPO/lib/verify-secure-loop.md"
FSK="$REPO/skills/feat/SKILL.md"
BUG="$REPO/agents/bugfixer.md"
BSK="$REPO/skills/bugfix/SKILL.md"
HOT="$REPO/agents/hotfixer.md"
HSK="$REPO/skills/hotfix/SKILL.md"
HSKL="$REPO/skills/hotfix/SKILL.md"
@@ -59,11 +60,17 @@ tf "feat uses shared include" "$FSK" "lib/verify-secure-loop.md"
tf "feat nominal 1+1 dispatch" "$FSK" "verifier + one security dispatch"
tf "feat dispatches feater" "$FSK" 'subagent_type="feater"'
echo "── bugfixer.md (bugfix wiring) ──"
tf "bug contract step" "$BUG" "STEP 3.5 — CONTRACT"
tf "bug diagnosis feeds it" "$BUG" "feeds it: REQUEST verbatim"
tf "bug fresh gates" "$BUG" "Fresh gates (verify + secure)"
tf "bug uses shared include" "$BUG" "lib/verify-secure-loop.md"
echo "── skills/bugfix/SKILL.md (bugfix wiring — reflection inline) ──"
tf "bug contract step" "$BSK" "STEP 3.5 — CONTRACT"
tf "bug diagnosis feeds it" "$BSK" "feeds it: REQUEST verbatim"
tf "bug fresh gates" "$BSK" "the two fresh gates per"
tf "bug uses shared include" "$BSK" "lib/verify-secure-loop.md"
tf "bug dispatches bugfixer" "$BSK" 'subagent_type="bugfixer"'
echo "── agents/bugfixer.md (bugfix executor — sonnet, no Agent) ──"
tn "bugfixer lacks Agent tool" "$BUG" "Agent"
tf "bugfixer model sonnet" "$BUG" "model: sonnet"
tf "bugfixer report grammar" "$BUG" "BUGFIX-EXEC REPORT"
echo "── hotfixer.md (hotfix executor — sonnet, no Agent) ──"
tn "hotfixer lacks Agent tool" "$HOT" "Agent"
+3 -4
View File
@@ -3,10 +3,9 @@
Runs in the ORCHESTRATOR MAIN LOOP after the dev step completes. Turns a
finished diff into a verified, security-cleared change through two fresh
gates and bounded loops. Loop decisions live here, in the main loop
(LRN-083: subagents = execution + report). The dev step is either inline
(bugfix) or a dispatched sonnet executor (/feat's feater): "hand the dev"
below means fix inline, or re-dispatch a FRESH executor with exactly those
inputs.
(LRN-083: subagents = execution + report). The dev step is a dispatched
sonnet executor (feat's `feater`, bugfix's `bugfixer`): "hand the dev"
below means re-dispatch a FRESH executor with exactly those inputs.
Inputs the caller must have ready:
- `CONTRACT`: path to the contract file written by `contract-interview.md`.