Mutation testing asks whether a test suite would notice a small, plausible defect. A tool applies an operator such as swapping < for <= or replacing i++ with i--, runs the suite against the changed program, and marks the mutant killed if any test fails the PIT operator list. A mutant that leaves every test green survives, and the survivor names a hole in the assertions. That is the whole technique in one paragraph.
The attraction of handing this to a coding agent is that the agent can read the domain, pick locations that matter, and explain a survivor in prose. The danger is the same thing: an agent with write access to a repository and a goal ("maximize the mutation score") has an obvious shortcut. It can weaken a test, delete an assertion, or add an if to the production code that makes the mutant equivalent. Any of these raises the score without improving the suite.
This is not a hypothetical failure mode confined to agents. Code coverage is already gameable this way: a line counts as covered whether or not its result is asserted a practitioner write-up on hollow tests. Mutation testing was designed precisely because coverage cannot distinguish "executed" from "verified" Google's account of mutation testing at scale. If you let the author of the tests also judge the tests, you get the coverage illusion back with extra compute.
The fix is separation of powers. The agent stays the operator: it chooses mutation sites and writes the runtime harness. The human keeps authorship of the test files, and the pipeline enforces that with hashes.



