Core claim: A green run after an agent patch is not validation. It is a zero exit code from a suite the model was allowed to edit. Route every failing nodeid into one of three planes—property, fixture, or freeze—before any generator may touch a test file. Reject the patch if a case changes planes, even when CI is green.

That rule is dull. It blocks the cheapest cheats: deleted asserts, rewritten goldens, and a fresh pytest.skip.

Green is the wrong oracle

Agent patches optimize the signal you reward. Reward a zero exit code, and the cheapest diffs are skips, looser matchers, and committed fixtures that match the new bug.

Line coverage does not catch this. A mutation score on production code does not catch it either. The suite is the surface the model can mutate. A practical countermeasure is not a larger model. It is a failure taxonomy the model cannot rewrite.