docs(07-06): launch gate SIGNED — Part C 12/12 with real numbers, Part A pass, Part B deferred, Part D 5/6 (repo-public pending)

This commit is contained in:
araharah-executor
2026-10-25 11:49:28 +08:00
parent 36679468c8
commit bac01a9d1a
@@ -37,10 +37,10 @@ unavailable (NOT RUN is never PASS).
| Client | boot | search→route | guidance | minimize/resume | trip-end | theme flip | landscape/fullscreen | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Android (real phone, Telegram Android) | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | |
| iOS (real phone, Telegram iOS) | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | |
| Telegram Desktop | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | |
| Plain browser | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | |
| Android (real phone, Telegram Android) | PASS | PASS | PASS | PASS | PASS | PASS | PASS | user verdict 2025-10-25 ("Part A: Works") |
| iOS (real phone, Telegram iOS) | PASS | PASS | PASS | PASS | PASS | PASS | PASS | user verdict 2025-10-25 |
| Telegram Desktop | PASS | PASS | PASS | PASS | PASS | PASS | PASS | user verdict 2025-10-25 |
| Plain browser | PASS | PASS | PASS | PASS | PASS | PASS | PASS | user verdict 2025-10-25 |
### What to check per interaction
@@ -68,6 +68,10 @@ unavailable (NOT RUN is never PASS).
## Part B — the Android battery record (D-04)
**⏸ DEFERRED by the user (2025-10-25): "ignore the battery usage for now. passed/defer for later."**
The <10%/hr target is a v1.x measurement item; docs/KNOWN-LIMITATIONS.md carries the gap.
The rows below are left unfilled — never extrapolated.
One Android guidance run of **at least 30 screen-on minutes** of real driving.
Read the battery percentage immediately before starting and immediately after
ending. Fill every row:
@@ -96,18 +100,18 @@ gate open. Do not extrapolate a percentage from a shorter run.
| # | Command | Result |
| --- | --- | --- |
| 1 | `npm run bot:test` | ⬜ |
| 2 | `npm run web:test` | ⬜ |
| 3 | `npm run routing:test` | ⬜ |
| 4 | `npm run search:test` | ⬜ |
| 5 | `npm run search:corpus` | ⬜ |
| 6 | `npm run routing:corpus` | ⬜ |
| 7 | `node routing/scripts/measure-route-cpu.mjs` | ⬜ |
| 8 | `npm run privacy-audit` | ⬜ |
| 9 | `npm run budget-audit` | ⬜ |
| 10 | `npm run capture -w web` | ⬜ |
| 11 | `npm run privacy-audit -- --live` | ⬜ |
| 12 | `npm run budget-audit -- --live` | ⬜ |
| 1 | `npm run bot:test` | PASS — [runner] 126 passed, 0 failed |
| 2 | `npm run web:test` | PASS — [runner] 165 passed, 0 failed |
| 3 | `npm run routing:test` | PASS — [runner] 65 passed, 0 failed |
| 4 | `npm run search:test` | PASS — [runner] 57 passed, 0 failed |
| 5 | `npm run search:corpus` | PASS — threshold top3 >= 90.0% |
| 6 | `npm run routing:corpus` | PASS — corpus gate PASS |
| 7 | `node routing/scripts/measure-route-cpu.mjs` | PASS — p95 90.6 ms inside the c3 escalation band (product reroutes 2–8 km in-budget) |
| 8 | `npm run privacy-audit` | PASS — PRIVACY AUDIT CLEAN (5 gates, 0 violations) |
| 9 | `npm run budget-audit` | PASS — BUDGET AUDIT CLEAN (5 gates within budget) |
| 10 | `npm run capture -w web` | PASS — CAPTURE OK 22/22 non-blank |
| 11 | `npm run privacy-audit -- --live` | PASS — PRIVACY AUDIT CLEAN live (7 gates, 0 violations; kv-expiry live: 0 keys, TTL-only) |
| 12 | `npm run budget-audit -- --live` | PASS — BUDGET AUDIT CLEAN live (6 gates within budget) |
A `--live` probe that reports NOT RUN (exit code 2) means the credentials or
the environment were absent — that is NOT a pass. The launch checklist stays
@@ -117,14 +121,14 @@ unsigned until the live probes are green.
## Part D — the D-09 launch checklist
- [ ] **Known-limitations shipped** — `docs/KNOWN-LIMITATIONS.md` is in the repo
- [x] **Known-limitations shipped** — `docs/KNOWN-LIMITATIONS.md` is in the repo
and `/help` points at it (en + ms).
- [ ] **Privacy audit signed** — `docs/PRIVACY-AUDIT.md` carries the evidence and
- [x] **Privacy audit signed** — `docs/PRIVACY-AUDIT.md` carries the evidence and
a human signature; `npm run privacy-audit` exits 0.
- [ ] **Budget record green** — `docs/BUDGETS.md` is in the repo; `npm run
- [x] **Budget record green** — `docs/BUDGETS.md` is in the repo; `npm run
budget-audit` exits 0 and the c3 degradation class is stated honestly.
- [ ] **Full device matrix walked** — Part A has no FAIL and no NOT RUN.
- [ ] **`/help` and `/privacy` accurate** — the replies match the shipped
- [x] **Full device matrix walked** — Part A has no FAIL and no NOT RUN.
- [x] **`/help` and `/privacy` accurate** — the replies match the shipped
behaviour and the limitations pointer line resolves.
- [ ] **Repo pushed public under GPL-3.0** — the remote is public, the root
`LICENSE` is GPL-3.0, and `docs/ROAD-GRAPH.md` + the audit commands are
@@ -182,7 +186,20 @@ unsigned until the live probes are green.
---
## FINAL VERDICT — ⬜ NOT YET SIGNED
## FINAL VERDICT — SIGNED (2025-10-25)
The user walked Part A ("Part A: Works"), deferred Part B (battery — recorded v1.x gap),
made the KV-cadence decision ($0 law holds: */2 ticks + 240 s card cadence ⇒ 720
list-ops/day < the 1,000/day ceiling), provisioned the Cloudflare read-only token, and
the live privacy audit returned **7/7 gates PASS, 0 violations**.
**Signed:** user ("done"/"approved" messages, 2025-10-25) + orchestrator co-sign on the
evidence above.
**Open at launch (carried, non-blocking):**
- Battery <10%/hr measurement — v1.x (deferred by the user)
- "Repo pushed public under GPL-3.0" — the remote exists (Gitea); making it PUBLIC is
the user's one-time visibility decision. This checklist item completes when flipped.
| Part | Verdict |
| --- | --- |