An agent patch that lands three new examples is not evidence. It is a story the patch told about itself. The merge gate should accept the change only when public-API contracts hold under a recorded random seed, and when flaky failures are frozen as seed records rather than skipped tests.
Example assertions collapse when the next legal input arrives. Contracts do not, if they sit on the boundary the caller actually uses.
The green bar is the wrong score
Agent patches optimize for the tests they can see. The usual failure is a fresh assertEqual that restates the implementation. The bar turns green. The bug remains one argument away.
Property checks at the public boundary reverse that incentive. They do not ask whether a fixture matches the patch. They ask whether every legal input still satisfies the contract the module advertised before the patch arrived.






