# M5 · Launch (T50–T52)

Exit gate: a full cycle rehearsed on a mainnet fork with no blocking incident, every alert fired once on purpose, and the launch checklist signed.

---

## T50 · Alerts and observability

**Goal** Every alert of the spec fires to the team Telegram, plus a simple ops dashboard.

**Depends on** T04, T22, T31, T32

**Read first** `securite-et-observabilite.md` (Observabilité et alertes)

**Build** `apps/workers/src/jobs/alerts.check.ts`, `apps/admin/app/ops/page.tsx`, Sentry wiring in api/workers/web

**Steps**
1. Implement each alert of the table: tracking lag > 5 min (live token), hot wallet out of bounds, failed buyback tx, agent budget 80% / 100%, step late > 1h, Surplus balance < 7 days, validation pending > 2h.
2. De-duplicate (same alert key at most once per 30 min).
3. Ops page: operations in progress, steps, spend vs caps, wallet balances, last alerts.

**Done when**
- [ ] Each alert has a test that triggers it from fixture state
- [ ] Manual drill on staging: each alert received once in the team Telegram (screenshots in PR)

---

## T51 · Full-cycle rehearsal on a mainnet fork

**Goal** One script that runs a whole cycle end to end on a fork, with accelerated time.

**Depends on** all previous tickets

**Read first** `plan-de-developpement.md` (M5), `use-cases.md`, all `parcours-*.md`

**Build** `scripts/rehearsal.ts`, `infra/fork/` (anvil fork config), `docs/rehearsal-report.md` template

**Steps**
1. Start anvil forked from mainnet at a recent block; deploy BuybackBurner; fund test wallets.
2. Submit 5 real dead tokens (addresses provided by the team), run analysis, publish a cycle, cast votes from test emails, close, run the operation with time acceleration (LLM calls real or recorded, flag `REHEARSAL_LLM=real|recorded`), execute all slices, run the verdict.
3. Produce a report: timings per step, LLM cost, slices, ledger vs balances diff (must be 0), alerts fired.

**Done when**
- [ ] `pnpm rehearsal` completes end to end
- [ ] Report shows ledger diff = 0 wei and no blocking error
- [ ] Every use case UC-01 to UC-21 is ticked in the report as covered or explicitly not applicable

---

## T52 · Launch checklist

**Goal** Production ready, reviewed and switched on.

**Depends on** T51

**Read first** `token-vivra-et-tresorerie.md` (Paramètres de lancement), `questions-ouvertes.md`, `plan-de-developpement.md`

**Steps**
1. Open Pons questions answered and reflected in code (claim signature, multi-token fee recipient, weekly CTO cadence).
2. Production env: secrets in the manager, hot wallets funded within bounds, BuybackBurner deployed and verified on mainnet with production caps, `CHAIN_ENV=mainnet`.
3. Domains, DNS, email sender (SPF/DKIM), X accounts connected, Telegram bot added to the team chat.
4. `validation_required = true`; emergency stop tested on production (pause a fake operation).
5. Launch sequence: $VIVRA launch on Pons with `creatorTaxBps=300` and `creatorFeeRecipient=Collecte`; publish the 5 dossiers; open the vote.

**Done when**
- [ ] Checklist file `docs/launch-checklist.md` with every item ticked, owner and date
- [ ] First production cycle published
