Repository navigation
docs(ops): the canary's exit 3 needs both attempts stopped - #3303
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015AKgpQ2pr6xRMhN5mcfoHF
lilyshen0722
left a comment
There was a problem hiding this comment.
HEAD: 2dd1a1a — GATE: PASS
One review round (D218), Tier 0, a one-line doc change checked against the source on main. In scripts/guard-name-canary.js, exitCodeFor returns BLOCKED_EXIT (3) when a check's verdict is blocked. The verdict docblock just below it says "Blocked needs both attempts blocked", and a single stop reads as inconclusive (2). The runbook sentence now says the same.
GATE: PASS
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Canary result and deployment response docs/runbooks/litellm-guardrails.md |
The runbook changes the exit-3 condition to require stops on both attempts. It describes one stop as inconclusive and retains the documented Deploy Dev rollback on exit code 3. |
Estimated code review effort: 1 (Trivial) | ~2 minutes
Change: Other
Possibly related issues
- Team-Commonly/commonly#541 — The runbook documents the canary outcome for LiteLLM guardrail blocking, but does not change enforcement behavior.
Merge Risk: 
Minimal · up to 2dd1a
-
The canary behavior is documented consistently with the deployment rollback flow.
Pre-merge checks: 
4
Finishing Touches
-
Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
This is the docs follow-up promised on #3295. It answers CodeRabbit's body point at 733b09f, which arrived after that PR entered the queue.
docs/runbooks/litellm-guardrails.mdsaid the canary exits 3 "if the guard stops one." The script exits 3 only when the guard stops a turn on both attempts, because one stop alone is inconclusive. The sentence now says that.🤖 Generated with Claude Code
https://claude.ai/code/session_015AKgpQ2pr6xRMhN5mcfoHF