Vacuity detection
The system knows what "technically passes but verifies nothing" looks like, and rejects it.
A vacuous test passes without checking anything meaningful. |_| true is the
trivial case, but subtler forms are common: a predicate that ignores its
argument, a method call whose return value is never checked.
The test: Can the agent satisfy this layer's checks without doing meaningful work? If yes, you need a vacuity detector.
Evidence
- Beer et al. (2001): anti-vacuity checking in formal verification, the original formalization.
- Ball & Kupferman (2008): vacuity detection applied to software testing.
- ImpossibleBench (2025): GPT-5 exploits test cases 76% of the time on deliberately impossible tasks.
- METR (2025): o3 reward-hacks at 70-95% even with anti-cheating prompts.
The ImpossibleBench and METR numbers are adversarial scenarios; they show the failure mode exists at scale, not that it occurs at these rates on normal work.
In practice
- Golden-file diffs: if the output did not change, the test exercised nothing.
MustInspect<T>: panics on drop if the inner value was never accessed.- Schema validation catches empty responses.
- This reference:
just agentasserts the generated surface is non-empty and complete, so a degraded generator fails the build instead of shipping a hollow llms.txt.