Enforcing a test list on every diff means three different things are being paid for, and they behave nothing alike. Mixing them into a single "CI cost" number hides which lever actually moves the total.
The first pool is model tokens: a model reads the list and the diff, then decides whether the change satisfies each item. The second is command minutes: manifest checks, linters, hook runs, whatever the list says must physically execute. The third is reviewer minutes: the human who reads the gate's output, decides whether a failure is real, and either fixes the change or argues with the tool.
The ordering matters. Practitioners typically assume the token bill is the problem because it is the unfamiliar one. It usually is not. Reviewer time is billed at the highest rate of the three, and false failures multiply it, because a false failure costs one read plus one investigation plus, often, one debate about whether the gate can be trusted.
The useful framing is borrowed from eval practice: agent behavior is scored against defined criteria with a pass threshold, rather than asserted as an exact match, because non-deterministic systems can reach the same correct outcome by different routes (Braintrust's agent testing guide). A test-list gate is an eval with a pass threshold. Once you accept that, you also accept that some runs will score below threshold for reasons that have nothing to do with a regression, which is exactly what a false failure is.



