pub fn failover_gate_violations(runs: &[RunOutput]) -> Vec<String>
Evaluate failover evidence and comparisons without I/O. An empty result means the gate passes.