# R4 — Go-live gate (per client)

**The signable form of `docs/RELEASE_CHECKLIST.md`.** Walked top to bottom at `R3` Stage 5. Copy per client → `clients/<client_id>/GO-LIVE-YYYY-MM-DD.md`.

**Gate rule:** any unchecked box in **D** or **E** blocks launch outright. Boxes in A–C, F–G may be deferred ≤ 48h with a written note. A skipped box is logged as a decision in `docs/PROGRESS.md` with a reason — and **"the client was impatient" is not a reason.**

| Client | | `client_id` | | Date | | Config version | |
|---|---|---|---|---|---|---|---|

---

## A · Commercial

☐ Signed pilot agreement on file — price, tier, **minute cap stated**, month-to-month, recording disclosure, rollback promise
☐ First invoice issued at **full price** (O2 — the retention metric is meaningless at a discount)
☐ Intake form complete and owner-confirmed; no scraped or assumed business facts

## B · Configuration

☐ Built from the **current vertical template version**, recorded in the client runbook — not a from-scratch config
☐ Knowledge pack: every fact owner-approved; forbidden-topics list present and vertical-appropriate
☐ Escalation (D8): staffed-hours transfer number **verified by a live test call**; after-hours alert route verified
☐ All four D8 triggers present — including **frustration-×2, the one that gets missed**
☐ Business hours correct incl. weekend and holiday pattern; **staffed hours entered separately**
☐ Languages restricted to the LIVE column of `docs/COMPATIBILITY.md`
☐ Config exported to `clients/<client_id>/config/` (portability rule)
☐ Prompt searched for `{{` — zero surviving placeholders

## C · Integrations

☐ Test booking landed in the client's **real** calendar; confirmation message received on a real handset
☐ Test lead landed at the designated destination with the standard payload
☐ Daily-summary flow fired for the test day
☐ **Webhook failure alert tested** — kill the endpoint once and confirm *we* get alerted

## D · Quality — **BLOCKING**

☐ 20-call QA sheet **all-pass**, dated **≤ 7 days** before go-live, on the launch config version
☐ **Zero hallucinated facts in case 11** — automatic blocker, no discussion
☐ Latency: dashboard median ≤ 1.2s across QA calls
☐ Owner listened to ≥ 3 calls and approved voice and tone **in writing**

## E · Compliance — **BLOCKING**

☐ Greeting: assistant self-identification **+ market-correct recording disclosure, heard on a live call** by you
☐ Market recording policy set in the platform (UAE/Gulf: **audio OFF — screenshot filed**)
☐ All credentials in the vault; prompt pack scanned for stray secrets or PII
☐ **O6 founder sign-off exists for this market** (`docs/SECURITY.md` §2 defaults initialled)
☐ Clinic clients only: forbidden-topics + emergency wording passed QA case 13
☐ US healthcare clients: **do not launch** — `docs/SECURITY.md` §4 says don't sign US medical until the platform's HIPAA/BAA posture is checked

## F · Go-live & safety

☐ Forwarding **activation and deactivation** codes tested and written in the client runbook
☐ **Rollback rehearsed by the owner** — they dialled it themselves and watched calls revert
☐ Two post-activation smoke calls from an outside line: one booking, one human transfer, both clean
☐ Handover doc delivered; owner **states back** how to pause it and how to reach us
☐ Week-1 daily-review slots blocked in the founder calendar

## G · Bookkeeping

☐ `clients/<client_id>/RUNBOOK.md` complete
☐ **Setup hours total logged** in `docs/PROGRESS.md` — the kill-criterion baseline for this client
☐ `docs/FEATURES.md` rows flipped to ✅ with this client as evidence, **same day**
☐ Go-live line added to `docs/PROGRESS.md` with date
☐ Margin ledger row opened

---

**Deferred boxes** (A–C, F–G only, ≤ 48h, with reason):

| Box | Reason | Due | Cleared |
|---|---|---|---|
| | | | |

Signed: ______________  Date: __________  Client: ______________
