The delivery gate is the last line between an agent's claim and a human believing it. A gate that can be persuaded to ignore the run's recorded state is worse than a missing gate: it gives a false claim the appearance of verification.
The contradiction
The fixture recorded state.terminal: blocked. The caller requested a check for delivered. The old gate checked the requested terminal but did not compare it with the state already recorded by the run. All its other delivery checks were clean, so it exited successfully.
$ python3 <baseline-worktree>/scripts/gate.py <current-checkout>/proof/terminal-gate/mismatched-terminal --terminal delivered
GATE: PASS run=mismatched-terminal terminal=delivered matrix=clean
$ echo $?
0Read the preserved baseline receipt ↗This was a real defect in Factory's gate, reproduced against baseline commit e0f8277. The fixture is public, so the claim does not depend on a polished demo.
The test that made the rule executable
A regression case set the recorded terminal to blocked, asked the gate for delivered, and asserted that the result must be a refusal. Applied to the old gate, that test failed because the old gate still returned PASS. This is the watch-it-fail step, not merely a test added after the fix.
Inspect the regression patch and reproduction commands.
The fixed gate says why
The fixed gate rejects a requested terminal that disagrees with the non-null terminal in the run state. The same fixture now exits 1 and names both sides of the contradiction.
$ python3 scripts/gate.py proof/terminal-gate/mismatched-terminal --terminal delivered
GATE: BLOCKED
state.terminal 'blocked' does not match requested terminal 'delivered'
$ echo $?
1
$ zsh tests/check.sh
$ echo $?
0Read the preserved fixed receipt ↗The fix landed in fd1cd03. The public proof surface also runs the current gate against three different records: unsupported delivery, supported delivery, and this terminal mismatch.
What this proves—and what it does not
This case proves that one concrete gate bypass existed, was reproduced against the old code, and is rejected by the fixed code. It was reconstructed from repository history after the change. It is not a complete Phase 0–6 Factory-orchestrated run, evidence of production adoption, or a measured improvement in delivery speed or defect rate.
That boundary is part of the argument. Factory should not claim more than its evidence supports—even when the claim is about Factory.