Coverage Gate
A build check that fails when coverage falls below a threshold, and what that pressure produces.
A coverage gate fails a build when Code Coverage drops below a configured threshold. It is the standard mechanism for stopping coverage from eroding, and it is a direct instance of Goodhart's Law — a proxy turned into a target.
Its effects depend almost entirely on the accompanying convention. A gate paired with liberal exclusion annotations produces a number that means nothing, since the hard parts are simply excluded. A gate set at one hundred percent with no exclusions permitted produces something more interesting: because a branch cannot be annotated away, it has to be either covered or eliminated. That converts the gate into pressure on design, and much of the resulting work is genuinely good — removing guards that no input can reach, making an always-supplied optional required, modelling two fields that always travel together as one unit rather than two independent options.
The costs are also real. A strict gate makes any measurement artifact a hard block, so instrumentation quirks and flaky tests stop being annoyances and start blocking delivery. And a gate is only as good as its scope: one configured to run for changes targeting particular branches silently skips for changes targeting others, reporting neither pass nor fail. A skipped gate reads as a green build.
See also7
Hand-picked in the note itself — the neighbours worth reading next.
Branch Coverage
The proportion of conditional outcomes exercised — the strictest ordinary coverage metric, and the most informative.
Testing & Verification10 connections
Continuous Integration
Automatically building and testing every change, so integration problems surface immediately.
Version Control & Delivery17 connections
Goodhart's Law
When a measure becomes a target, it stops being a good measure.
Method13 connections
Vacuous Truth
A statement that holds only because its subject set is empty — a green result that measured nothing.
Method25 connections
Falsifiability
A claim is only worth something if you know what observation would refute it.
Method16 connections
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method44 connections
Unreachable Code
Code no input can execute — usually a guard against a state the surrounding invariants forbid.
Testing & Verification10 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from12
Notes elsewhere in the wiki that reach for this one.
- Branch CoverageTesting & Verification
The proportion of conditional outcomes exercised — the strictest ordinary coverage metric, and the most informative.
- Character EncodingSystems & Tooling
The mapping between characters and bytes, and the source of a specific family of invisible bugs.
- Code CoverageTesting & Verification
The proportion of code executed by a test suite — a map of what is untested, not a measure of quality.
- Continuous IntegrationVersion Control & Delivery
Automatically building and testing every change, so integration problems surface immediately.
- Defensive DefaultMethod
A substituted value that papers over a missing input and hides the misconfiguration that produced it.
- FalsifiabilityMethod
A claim is only worth something if you know what observation would refute it.
- GlobSystems & Tooling
Wildcard pattern matching over filenames, similar enough to regular expressions to mislead.
- Goodhart's LawMethod
When a measure becomes a target, it stops being a good measure.
- Silent FailureMethod
A failure that produces no signal, so the absence of an error reads as success.
- Stacked Pull RequestsVersion Control & Delivery
A chain of dependent changes, each reviewed separately and merged in order.
- Unreachable CodeTesting & Verification
Code no input can execute — usually a guard against a state the surrounding invariants forbid.
- Vacuous TruthMethod
A statement that holds only because its subject set is empty — a green result that measured nothing.