Evidence
A real run on 26 Oct 2026 (all times UTC). Every link is a real artifact of the GitLab project.
15:48
change
A "cleanup" merge request removes a strip(). Review and CI pass. The gate asks a human because there is no new test. MR !2 15:55:31 UTC
probe red
Scheduled probe fails in production: a coupon pasted with a trailing space gets HTTP 422. scheduled pipeline 15:56:48 UTC
rollback
Rollback to the previous Cloud Run revision, incident opened and assigned to Duo. incident #3 15:59:13 UTC
fix opened
Duo Developer Flow opens the fix with a regression test. MR !3 16:02:48 UTC
gate
Proof (red before, green after), scans, risk gate: score 16, auto-merge. gate comment in MR !3 16:09:16 UTC
released
Staging revision, smoke test, promotion, release, postmortem. release pipeline Time to mitigate 1 min 17 s. Time to fix 13 min 45 s. Humans woken up: 0. The postmortem with these numbers was written by the pipeline into incident #3.
The case where the gate does not merge
Issue #4 asks for Swiss customers; the fix needs a VAT rate in app/tax_rates.py, which Finance owns in CODEOWNERS. Duo's MR !4 has a proven regression test and a score of 24, below the auto-merge limit of 30, but the gate does not merge it: it labels it risk::human-approval and requests a reviewer. It stays open until Finance approves.

Requesting the reviewer also starts a custom Duo flow, Nightjar Approval Brief, which posts a read-only decision brief for the code owner.