A check that prints the same thing whether or not the fault is present has measured nothing. It still
returns an answer, that answer looks like evidence, and it gets acted on. paired-probe makes
that failure loud instead of silent.
All four are real, from one session on 2026-08-21. Each was confidently wrong. Three were caught by other people rather than by the check itself.
| Gate | Question it forces | What it catches |
|---|---|---|
| Differential | What does this print when the fault is ABSENT? | A probe that answers identically either way |
| Non-empty | How many items did it actually examine? | A sweep that measured zero and reported clean |
| Exit-aware | Did the probe itself even run? | A swallowed error printing success |
Could-not-observe is a third outcome, never folded into either verdict. That is why the tool
exits 3 for it rather than reusing pass or fail.
scripts/paired-probe.sh --name "retired model pin fails the gate" \
--present "printf 'model: claude-opus-4\n' > wf.yml && bash tests/ci/lint.sh" \
--absent "rm -f wf.yml && bash tests/ci/lint.sh"
scripts/paired-probe.sh --name "worktrees examined" \
--measure "git worktree list --porcelain | awk '/^worktree /{print \$2}'" \
--min-count 1
The repo already carries roughly fifty memory entries about instruments that cannot see what they claim. The session that produced these four failures had read them, cited the principle out loud, and then walked into the same trap four times in ten minutes. Prose that is true does not change behaviour at the moment of use. A gate that refuses the verdict does.