diff --git a/docs/agentic-dev-kit/fallback-review-panel-evidence.md b/docs/agentic-dev-kit/fallback-review-panel-evidence.md index f0b3808..8b0ca3f 100644 --- a/docs/agentic-dev-kit/fallback-review-panel-evidence.md +++ b/docs/agentic-dev-kit/fallback-review-panel-evidence.md @@ -122,6 +122,47 @@ clause is `safety-critical-changes.md` rule 3's own wording, quoted from the sibling doctrine file rather than from a tracker issue — a review lens went looking for it on the tracker and could not source it.) +### The session that measured withdrawal + +PR `#225` (`#41`, the required/optional manifest axis). Five rounds: + +| Round | What it reviewed | HIGH | +|---|---|---| +| 1 | the change | 2 | +| 2 | the round-1 fix | 2 | +| 3 | the round-2 fix | 2 | +| 4 | the round-3 fix | 1 | +| 5 | the withdrawal | 0 | + +Only round 1 reviewed the change. Its second HIGH was a real fail-open — the +derived graph missed `lib/repo_root.sh`, which two shell engines `source`, so +`kit_doctor` called a broken tree clean at exit 0 — and the fix was a bash +`source` scanner: a new mechanism, prompted by a finding, which the filing rule +says to file rather than build. It was built. + +Every HIGH in rounds 2–4 was inside that scanner, and each was a defect in the +previous round's fix for it: + +- **round 2** — the scan missed guarded `source` (`[ -f "$L" ] && source "$L"`), + and its exit-code test was confounded by its own fixture, so deleting the + mechanism under test left the suite green +- **round 3** — the widened anchor matched `source` inside a quoted string, so + `echo "run this; source lib/dep.sh"` became a real edge; and the heredoc + tracker read `<<<` and arithmetic `<<` as openers, blinding whole files +- **round 4** — the heredoc tracker recognised fewer opener forms than bash + accepts (`cmd <