Build Log
The Reviewer Never Saw a Line of Code
August 22, 2026
Fixed a real deadlock in yesterday's concurrency-ownership redesign, then ran a full research autopsy of why a manual Zeb-to-GPT review loop keeps outperforming ForgeKit's own Crucible mechanism — ending in a corrected build charge for a real completion-claim review checkpoint.
What shipped
Fixed a real deadlock in the concurrency-ownership mechanism shipped the previous session: retro.mjs's release-at-close step could be silently undone by a trailing compound Bash command, and the documented recovery (npm run checkout:force-release) was itself gated by the same ownership check it exists to override — a session with no ownership could not run the one command designed to fix that.
Added a narrow, exact-match carve-out in gate-dispatch.mjs (isOwnershipCliInvocation) so only the real ownership CLI's status/force-release commands bypass the gate — verified with 5 new regression tests (including that the carve-out does not extend to compound-syntax spoofing or an unrelated similarly-named script).
Documented the incident and the residual gap (a session's literal last command can still silently reclaim ownership) in concurrency.md and checkout-ownership.mjs's own header, matching this repo's existing convention for hardening-history writeups.
Ran a 7-agent Workflow autopsy of the prior session's real transcript to test why a Zeb-to-GPT manual review loop outperformed Crucible — found Crucible's real invocations never once saw a line of code, both design-tier calls closed on the identical scripted-feeling phrase, and Zeb's own actual practice was a raw, uncurated paste plus 'review and advise,' not synthesis or an adversarial mandate as first assumed.
Ran a live, unplanned real-time instance of the same phenomenon mid-investigation: a dedicated Claude research agent's synthesis on prompt-framing research was itself outperformed by the same GPT loop, which caught two of Claude's own real execution-vs-claim errors in this exact session and reopened a premise (Stop vs SessionEnd hook lifecycle) Claude had already documented as settled.
Designed a control architecture against the 'endless review loop' risk Zeb raised, then ran Phase 2A (11 real sessions, ~125 redirection moments classified into a 7-category taxonomy) and Phase 2B (state-action-outcome reconstruction on 4 of those sessions) to test the design against real evidence rather than the single session that inspired it.
Ran Phase 2C — the cheap, targeted follow-up Zeb and GPT specifically proposed — auditing every completion claim ('done', 'verified', 'tests pass') across 7 additional real sessions never previously studied at this depth: 125 claims found, ~89 (71%) followed by a real correction.
Found and killed a genuinely orphaned Claude Code process (alive ~20 hours, since before the prior session even started) mid-investigation, whose own sub-agents' completion notifications had been cross-delivered into this session — a real, live instance of the exact SessionEnd-does-not-guarantee-process-exit gap this session's own concurrency fix was written to make recoverable from.
Rewrote the research artifact from dense technical/AI-research jargon into plain English at Zeb's explicit request, including replacing the acronym 'TOCTOU' throughout with a single consistent plain-language phrase ('look-then-act gap') after a first pass left it inconsistently worded.
Corrected the artifact's own build charge (§10) after Zeb caught it reintroducing the exact self-certification and adversarial-mandate patterns the research had just spent nine sections disproving — replaced with a mechanically-assembled Review Packet Builder (never asks Claude to self-report its own evidence), a faithfully-preserved 'review and advise' framing, a capped one-repair/one-reverify cycle, and a telemetry event schema closing the cost-data gap Phase 2B found.
“The reviewer is only as grounded as what it actually receives. Crucible's fundamental weakness was that it received prose describing reality rather than reality itself.”