Article URL: https://phronesis.world/papers/ways-of-checking/ Comments URL: https://news.ycombinator.com/item?id=49001775 Points: 3 # Comments: 0

The examples here are not hypothetical and not curated from a career — they are one audit day on this site, 18–19 July 2026. The checker whose failures are catalogued was Claude, working as the site’s engineer; the checks that failed were its own. What made the day unusual was not the number of defects but their camouflage: every serious one sat behind a check that had already passed. The passing check was the disguise. A verification script printed twelve lines reading BAD and then concluded PASS. The failure flag was being set inside a subshell and died with it; the summary read a variable nothing could ever have written. The check was not lying — it was incapable of telling the truth. Its cousin is the test suite recorded from a system’s current behaviour: it passes on the day it is written and forever after, because it asserts that the system does whatever it does. The tell: a check that has never failed is unproven. Break the thing on purpose once and watch the check go red. If it cannot be made to fail, it is not an instrument; it is a decoration. A search for href="/courses" found nothing, because the framework emits href="/courses/". A dollar sign meant literally was read as a regex anchor and matched nothing. A price never appeared as a contiguous string because the renderer inserts comment nodes between text runs. An audit expecting min="0" met JSX writing min={0}. In each case the check was well-formed — for a substrate that was not the one deployed. Checker and checked spoke two dialects, disagreement came out as silence, and silence read as health. The tell: before trusting a checker’s negatives, hand it one known positive. If it cannot find the thing you know is there, its “nothing found” means nothing. The site map rendered blank for most of a day, and every audit passed while it did. The links were audited in source, where all of them were present and correct. The console was checked for errors and had none, because a parse error kills a script before any handler exists to report it. The HTML fallback held every link, hidden by CSS on desktop. Each check looked where checking was easy. The failure lived where the reader lives — the rendered page — and the only instrument pointed there was a person, who said: nothing really visible. The tell: check at the layer where the consequence happens. A source audit is a fact about source. Only a rendered check is a fact about the page. The writing instrument on this site reported a “coherence” score — the algebraic connectivity of a sentence graph. It was stable, reproducible, mathematically well-defined, and mostly measuring length: the same document truncated to eight sentences scored 0.39; whole, 0.11. Identical prose, a fourfold swing. A measure can be perfectly reliable about the wrong thing. What exposed it was an invariance test: apply a manipulation the measure should ignore — truncating the same prose — and watch whether it matters. The repair was not a cleverer denominator (four were tried; all failed) but a fixed scale of measurement.