Evidence map
Every claim on this site, the status it holds, what it ran on, and the file or workflow behind it.
A claim without a file behind it is an opinion. This page lists the claims GAVEL makes, gives each one a status, says what it ran on, and links the file or workflow that backs it. Use the filter to show one status at a time. Hover, focus or tap a row for its limits.
Evidence map: claim, status, evidence
Scroll the figure sideways, or open it full size.
Hover, focus or tap a row for its limits and links to the files behind it.
docs/GATES.md when the site is built. Limits are quoted from the Scope, Verdict and Evidence lines there, from docs/evidence/SIM/SIM-MULTIDAY.md and from docs/SECURITY-REVIEW.md. G3 is in progress (day 0 7 Nov 2026 03:06 UTC, final about 12 Nov). The 30 day run is a simulation. Sandbox and fake PayPal are labelled as they are in docs/GATES.md. Every path in the map exists on main.Text version of this diagram
- G0: the sandbox app signs in and creates an AUTHORIZE order: PASS, ran on PayPal sandbox. The only record is the run log of workflow gate-g0 (run 41815593520, 4 Nov). No evidence file is committed, so it is reported, not independently verifiable. Evidence: .github/workflows/gate-g0.yml.
- G1: a final capture closes the authorization: PASS, ran on PayPal sandbox. Two PayPal-account buyers. The authorization reads CAPTURED and the order COMPLETED. That the remainder is released is inferred, not read from a buyer balance (decision A). Evidence: docs/evidence/G1/G1-20261104T231047Z.jsonl, docs/evidence/G1/G1-20261105T123116Z.jsonl.
- G2: card and guest AUTHORIZE work in SDK v6: PASS, ran on PayPal sandbox. AUTHORIZE only. Capture and void of the guest card authorization were not run. Evidence: docs/evidence/G2/G2-20261105T115228Z.jsonl.
- G4: real webhooks verify through PayPal: PASS, ran on PayPal sandbox. Six real deliveries answered SUCCESS. Rejection of a tampered event is covered against the fake only. Retry behaviour stays UNVERIFIED. Evidence: docs/evidence/G4/G4-20261105T012205Z.jsonl, packages/payments/test/fixtures/webhooks.
- G3: honor period, validity window and reauthorize: IN PROGRESS, ran on PayPal sandbox (real probe). In progress. Day 0 was 7 Nov 2026 03:06 UTC; checkpoints at 3.5, 4 and 5 days; the final reading is about 12 Nov 06:17 UTC. No result exists yet, so no claim is made. Evidence: .github/workflows/gate-g3.yml, .github/workflows/gate-g3-early.yml.
- G5: spoken bids are accurate enough to accept unconfirmed: PARTIAL, ran on Recorded provider outputs, synthetic audio. Wrong-accept 0.000 to 0.000 on 24 synthetic, noise-free clips per set (limit 0.05), for both providers, after fixes chosen on those same clips (the 15 hold-out clips only check for regressions). No real-room or noisy-room test. Spoken bids always go through the confirm prompt. Evidence: docs/GATES.md, packages/voice/fixtures/stt-cache, packages/voice/fixtures/stt-cache-human, .github/workflows/voice-eval.yml.
- 30 simulated days settle correctly, ledger balanced to the cent: SIMULATED, ran on Fake clock and fake PayPal. It runs our code against a model of PayPal rules. A pass says our code is right if PayPal follows the model, and says nothing about whether PayPal does. PayPal 29-day validity was not verified in the real sandbox. Evidence: docs/evidence/SIM/SIM-MULTIDAY.md, packages/payments/test/simdays/multiday.test.ts, .github/workflows/sim-multiday.yml.
- Nightly sandbox specs R1 to R10: OPEN, ran on PayPal sandbox. Run 42200708552 (6 Nov) report overall inconclusive: pass 7, fail 0, inconclusive 1, skipped 2. Reauthorize (R3) answered HTTP 422, so it proves nothing about G3. The staging restart spec was skipped. Evidence: docs/evidence/nightly/NIGHTLY-42200708552.json, docs/evidence/nightly/NIGHTLY-42317068784.json, .github/workflows/nightly-sandbox.yml.
- Sandbox call latency, hammer to CAPTURED and SETTLED targets: OPEN, ran on PayPal sandbox, n=10. Per-call p50 and p95 were measured (run 42047543821, 5 Nov). The end to end targets stay UNVERIFIED: only the capture call was measured, in 10 samples. Evidence: docs/GATES.md, .github/workflows/measure-sandbox.yml.
- The settlement saga resumes after a crash without a double capture: CI, ran on Fake PayPal. Tests in CI against the fake PayPal. On the sandbox the nightly spec R10 recorded one in-process crash, not a killed server. Evidence: packages/payments/test/saga/crash.test.ts, packages/payments/test/saga/crashChain.test.ts, packages/payments/test/saga/machine.test.ts.
- The audit ledger is a hash chain: CI, ran on In process, no PayPal. A property of the code, checked by tests in CI. It makes edits detectable; it does not stop someone with write access from rewriting the whole chain. Evidence: packages/engine/src/ledger/chain.ts, packages/engine/test/chain.test.ts.
- Webhooks are de-duplicated, ordered and verified before use: CI, ran on Fake PayPal. Against the fake. Only the signature check on real events is sandbox evidence (G4). Evidence: packages/payments/test/webhooks/dedupe.test.ts, packages/payments/test/webhooks/order.test.ts, packages/payments/test/webhooks/verify.test.ts.
- Accessibility of the web app: CI, ran on Automated browser checks. Automated checks (axe) only. The screen-reader and 200 percent zoom passes are recorded in docs/A11Y.md as not yet performed. Evidence: docs/A11Y.md, packages/web/test/visual/a11y.spec.ts.
- No secrets in the repository history: CI, ran on GitHub Actions scan. A scan job. Its latest result is read from the workflow run, not recorded in these docs. Evidence: .github/workflows/gitleaks-history.yml.
- Security checklist SEC-01 to SEC-18 signed off: OPEN, ran on Review by a second person. Every item reads OPEN: nobody has signed an item off yet. Submission rules say no P0 item may be OPEN. The automated checks listed per item exist, but a sign-off is a person. Evidence: docs/SECURITY-REVIEW.md.
- The hosted app passes the nightly judge walkthrough: OPEN, ran on Not run. The workflow fails when JUDGE_URL is empty, so a run that tested nothing cannot look like a pass. The uptime probe is off until UPTIME_ENABLED is true. docs/GATES.md keeps staging security and load tests UNVERIFIED until a staging URL exists. Evidence: .github/workflows/judge-smoke.yml, .github/workflows/uptime.yml.
Status meanings: PASS, a recorded sandbox run passed, with evidence; FAIL, a recorded run failed; the fallback is in force; PARTIAL, a run exists but does not close the gate question (for example synthetic data only); IN PROGRESS, a real run is under way; no result yet; SIMULATED, a simulation with a fake clock, not a PayPal result; OPEN, evidence exists but the claim is not concluded or not signed off; CI, checked by tests or workflows in CI; no recorded run in the docs.
How to read the statuses
A recorded run on the PayPal sandbox passed and the evidence is in the repository or in a named run. The limit of each pass is stated on its row. A pass on one buyer type says nothing about another.
Sandbox is not the fake
Sandbox means real calls to the PayPal sandbox. Fake PayPal means an in-process model in packages/payments/src/fake. A row says which one it ran on. Nothing here ran against live PayPal and no real money moved.
Where the numbers come from
Gate statuses are read from docs/GATES.md by docsite/scripts/gen-repo-data.mjs when the site is built, so the map cannot say PASS where the file says FAIL.
Limits are copied from the Scope, Verdict and Evidence lines of the same file, from docs/evidence/SIM/SIM-MULTIDAY.md and from docs/SECURITY-REVIEW.md.
Paths are real files on main. If a path is removed or renamed the row must be updated in the same change.
What the map does not claim
Go deeper
Gates G0 to G5
Each gate, its result and its caveat.
The 30 day simulation
Eight scenarios, labelled SIMULATED.
Latency
Measured sandbox numbers and the targets they do not meet.
Security review
The SEC-01 to SEC-18 checklist and its open items.
Where this lives in the code
- docs/GATES.mdgate status, observed rows, decisions
- docs/evidence/SIM/SIM-MULTIDAY.mdthe simulated 30 day run
- docs/evidence/nightly/NIGHTLY-42200708552.jsonredacted nightly sandbox report
- docs/SECURITY-REVIEW.mdchecklist, all items still OPEN
- docsite/scripts/gen-repo-data.mjsreads the gate and simulation data at build time
Last updated on