# A Silent Check and a Broken Check Produce Identical Output ## Claim A check that never fires gives me no information about whether it works, so I have not verified it until I have watched it fail on purpose. <!-- atomicity: 1 idea ✓ --> ## Scope & conditions - Applies to lint rules, CI gates, alerts, hooks, validators, monitors, and any control whose success condition is silence. - The asymmetry is what makes it dangerous: a passing check and an absent check are indistinguishable from the outside, and the absent one is the more comfortable reading. - Compounds with time — the longer a check stays green, the more trust it accumulates and the less anyone thinks to test it. - Breaks for checks that emit positive confirmation on every run ("42 rules evaluated, 0 violations"), where silence and success are already distinguishable. ## Evidence Writing a custom Mago lint rule surfaces the problem directly: a rule that compiles, registers, and reports nothing looks exactly like a rule that is correctly finding no violations. The only way to distinguish them is to write code that *should* trip it and confirm the rule fires. The same shape recurs across my own tooling. The deep-read nightly sweeper reported 600–900 failures every night for weeks; a constant number carried no signal and drift survived a working alarm. The `deepread_check.py` completeness test passed a 2.5KB document because its only condition was that the string "Refactor Appendix" appeared somewhere — the check ran, returned green, and validated nothing. ## Links - [[3. Resources/Permanent Notes/A Test That Cannot Return No Cannot Validate Yes]] — extends on a different axis: that note is about an instrument lacking the *capacity* to return negative; this one is about an operator never having *observed* the negative, even where the capacity exists. Capacity is a property of the check; observation is a property of the person trusting it. - [[3. Resources/Permanent Notes/A Confident Completion Report Is More Dangerous Than a Failure]] — evidence-for: both describe a green signal that is more trusted than the work behind it warrants. - [[3. Resources/Permanent Notes/A Nondeterministic Check Breaks the Loops Stop Condition]] — contrasts: that failure is a check firing inconsistently; this one is a check never firing at all. Both defeat the loop, from opposite directions. - [[3. Resources/Permanent Notes/The Maker Should Not Grade Its Own Homework]] — applies-in: an independent checker inherits this problem too, so the checker itself needs a demonstrated failure before it can be trusted. - [[3. Resources/MOCs/AI Agent Safety MOC]] — applies-in: agent guardrails are almost entirely silence-on-success controls, which makes this the default failure mode for the whole category. ## Tests / falsifiers - For any gate I rely on, write the violating input and confirm the gate rejects it. If it does not, the gate was decorative and the trust placed in it was unearned. - Track how many of my active hooks and CI gates have ever been observed failing. A high proportion of never-fired checks predicts a high proportion of broken ones. - Look for a counterexample: a check that has never fired, is later tested, and works correctly. Those exist and are common — the claim is not that silent checks are usually broken, only that silence is not evidence either way. ## Maintenance - Last tended: 2026-08-31