feat(tour): multi-project parallel fan-out — one runner per repo

Two or more project paths dispatch one general-purpose runner per repo,
all in a single message, instead of processing repos one by one. The
runner inherits the session model — no pin, it carries tour's reflection
(fix decisions, convergence) — and every agent inside keeps its defined
tier (security-auditor sonnet, Phase B opus, doc-syncer sonnet). A dead
or mute runner becomes an explicit RUNNER FAILED summary row; the gated
capitalize offer stays in the main loop, never in a runner.

Bounded LRN-083 derogation recorded in BDR-084: the per-project fix loop
moves into its runner, but nothing a runner decides touches shared state
— independent repos, per-repo chore branches, branches left unmerged for
human review exactly as inline. Mechanics proven before building: nested
probe, 3 sub-agent windows all overlapping, 9.1s vs ~18s sequential.

Census §12: 6 locks, flip-tested. Single-project path unchanged.
This commit is contained in:
Bastien Chanot
2026-08-24 14:18:59 +02:00
parent 4ededc75ab
commit 543b0c811a
6 changed files with 90 additions and 7 deletions
+3 -3
View File
@@ -1209,12 +1209,12 @@ préalable: probe imbriquée 3 sous-agents, fenêtres chevauchantes, 9.1s vs
un runner dispatché) → à consigner BDR-084. Repos indépendants, branches
chore par repo, report-as-approval-gate ⇒ rien de partagé n'est décidé
dans un runner; capitalize reste main-loop.
- [ ] T1 skills/tour/SKILL.md — STEP 0 routé (1 projet = inline inchangé;
- [x] T1 skills/tour/SKILL.md — STEP 0 routé (1 projet = inline inchangé;
≥2 = fan-out) + STEP 0b: un runner general-purpose par projet, TOUS
dans UN message, SANS pin modèle (hérite session, model-gate déjà
passé); agents internes gardent leurs tiers définis; runner mort =
ligne RUNNER FAILED, jamais absent silencieux; capitalize main-loop.
- [ ] T2 locks census §12 dans lib/tests/model-routing.test.sh (fan-out
- [x] T2 locks census §12 dans lib/tests/model-routing.test.sh (fan-out
présent, runner non-pinné, single message, capitalize main-loop).
- [ ] T3 BDR-084 + CHANGELOG + journal.
- [x] T3 BDR-084 + CHANGELOG + journal.
- [ ] T4 make test + shellcheck; PAS de merge (gate humain).