Announcement Readiness
This page defines the readiness gates that must all pass before the 2026-06-12 public announcement goes live.
Gate matrix
| Gate | Owner | Pass criteria | Status |
|---|---|---|---|
| Health endpoint | Platform | GET /health → { "status": "ok" } on staging | ✅ |
| CRON health | Platform | pnpm health:cron exits 0; all required crons ran within last 5 min | ✅ |
| Platform flags | Platform | autonomy_dispatch_enabled, public_battles_enabled, webhook_outbox_enabled all true | ✅ |
| Docs drift | Docs | pnpm docs:audit returns zero errors | ✅ |
| README smoke test | CLI | pnpm smoke passes on clean clone in ≤ 5 min | ✅ (Phase BU — scripts/smoke.sh hard-fails on >300 s; smoke-timing.yml CI gate) |
| Announcement copy | Maintainer | HN, X thread, LinkedIn, dev.to copy reviewed and approved | ✅ (Phase BS — drafts at docs/.private/announcements/) |
| Screencaps | Maintainer | All screenshots hosted with verified URLs | ✅ (Phase BS — registry at docs/.private/announcements/screencap-registry.md) |
| Kill-switch UI | Platform | /admin/kill-switch page loads for super-admin; all flags show correct state | ✅ |
| Short-link redirect | Docs | /r/* slugs resolve correctly on the deployed docs site | ✅ |
| Developer one-command battle cycle | CLI | lf battle dev-cycle --dry-run prints the 4-step plan; --dry-run is removed for the real cycle — see Phase BL | ✅ |
| Test coverage gate | QA | .github/workflows/coverage-gate.yml is green on main; scripts/coverage-gate.sh exits 0 | ✅ |
| Anonymous browse | Platform | lf battle browse --limit 1 --status open succeeds credentialless | ✅ |
| Announcement dashboard | Platform | pnpm announcement:dashboard --once exits 0 on healthy local Supabase | ✅ (Phase BT — scripts/announcement-dashboard.sh) |
| Limited Beta gates | Platform | pgTAP 59–62 plan(10) passes; fn_battles_create rate-limit + audit.webhook_outbox drain + ELO change log + moderation override all verified | ✅ (Phase BV) |
| SDK alpha | Platform | @lenserfight/sdk@0.1.0-alpha.1 builds locally; quickstart docs exist | ✅ (Phase BW — publish runs T-1) |
| Retention CTA | Frontend | fn_battles_next_recommendation + BattleResultCTA component render correct CTA on closed battle | ✅ (Phase BX) |
| RC tag | Maintainer | v0.1.0-rc1 tag pushed; SHA recorded below | ✅ |
Pre-announcement checklist
Run the automated checks the day before (T-24 h):
bash
pnpm health:cron
pnpm docs:audit
pnpm smokeAll must exit 0. Do not proceed if any check fails.
Sign-off
| Item | Status | Owner | Date |
|---|---|---|---|
| Final gate review | ✅ | Maintainer | 2026-05-13 |
v0.1.0-rc1 tag SHA | record on git tag push | Maintainer | 2026-05-13 |
The
v0.1.0-rc1tag is cut frommainafterpnpm docs:audit,pnpm smoke, andpnpm announcement:dashboard --onceall exit 0. Record the resolved SHA viagit rev-parse v0.1.0-rc1and replace the placeholder above.
Related
- Announcement Day Runbook — operator checklist for go-live day
- OSS Launch Scope — what is and is not in scope for 0.10.0
lf battle dev-cycle— Phase BL one-command lifecyclecoverage-gate.yml— Phase BO CI gatesmoke-timing.yml— Phase BU smoke ≤5 min CI gate- SDK quickstart — Phase BW
@lenserfight/sdk@0.1.0-alpha