Decide whether a canary model should promote, hold, or roll back using quality, error rate, and latency guardrails.
Required APIdef canary_decision(stable, canary, min_improvement, max_latency_increase):
return 'promote' | 'hold' | 'rollback'BehaviorThink through the mechanism first if you want the extra reasoning step. It never blocks the editor.
canary_decision({'quality': 0.8, 'error_rate': 0.02, 'latency_ms': 100}, {'quality': 0.85, 'error_rate': 0.02, 'latency_ms': 105}, 0.03, 10)quality evidence can earn a rollout
canary_decision({'quality': 0.8, 'error_rate': 0.02, 'latency_ms': 100}, {'quality': 0.9, 'error_rate': 0.02, 'latency_ms': 130}, 0.03, 10)a quality win cannot bypass a latency guardrail
2 hidden edge tests run after the visible contract passes.
Run Tests to see the contract verdicts here.