Re-running a gate
What to do when a gate fails, stays NOT RUN, or reads stale.
The questions and results live in docs/GATES.md; the runbook says where to look, what to decide and what to re-run. It holds names only: no secret values, logins or buyer credentials.
Rules
- A gate closes only with Status PASS or FAIL, a Decision and an Evidence line. PARTIAL stays open. Do not edit a gate to PASS by hand.
- Gate workflows run only from
main, in thesandbox-nightlyenvironment. Only the repository owner can change that environment and the repository secrets, or run anything against the real from a laptop. - Gate flags in
gates-result.jsonmay leave their safe value only while the matching section indocs/GATES.mdis closed with evidence. A test fails otherwise.
Re-run commands (owner)
| Gate | Command |
|---|---|
| G0 | gh workflow run gate-g0 --ref main |
| G1 | gh workflow run gate-g1 --ref main |
| G2 | PAYPAL_ENV=sandbox npm run gate:g2 -w @gavel/payments on the owner laptop (no workflow) |
| G3 | gh workflow run gate-g3 --ref main (also scheduled every 6 hours) |
| G4 | gh workflow run gate-g4 --ref main (needs the variable G4_RECEIVER_URL) |
| nightly specs | gh workflow run nightly-sandbox --ref main |
After any run, commit the new evidence file and the updated docs/GATES.md section on a branch and open a pull request.
Fallbacks
| Gate | If it fails |
|---|---|
| G0 | Hold G1 to G4 and demo on the |
| G1 | Keep the remainder mode at its safe value and the remainder explicitly |
| G2 | Restrict registration to wallet buyers |
| G3 | Keep auctions shorter than the validity window and before the |
| G5 | Always show the for spoken bids |
- docs/RUNBOOK-GATES.mdthe full runbook
Last updated on
Hosting on Render code-checked
How GAVEL uses Render for its API and WebSocket host, why one instance with a persistent disk, how deploys and checks work, and what we would change to scale out.
CI and deployment map verified
Every workflow that checks, proves, deploys or watches GAVEL, when it runs, what it needs by name and what it leaves behind.