A full mutation run takes long enough to be a nightly job, and running it on the changed lines makes it usable in a pull request.
$ vendor/bin/infection
--git-diff-lines --git-diff-base=origin/main
--min-covered-msi=80 --threads=4
# 41 mutants instead of 4,102, and about ninety seconds.
# the nightly run stays, on the whole suite, reporting a
# trend rather than gating anything.
Gating on the diff and trending on the whole is the arrangement that gets adopted, because a full-suite threshold fails on unrelated code the first time somebody touches a legacy file. The diff mode needs the base branch fetched, which in a shallow CI checkout it is not — a fetch depth of zero is the fix and is easy to miss.