2 · Launch signoff — tiered go/no-go
Objective — make the Phase 12 launch-readiness decision tiered so a small cosmetic gap never blocks the production cutover and a real blocker always does — Tier 1 must be 13/13, Tier 2 proceeds with documented exceptions, and Tier 3 is completed or tracked in Zaj-BACKLOG.md.
Steps at a glance:
- Confirm Tier 1 blockers (must be 13/13) — If any of these fail, do not launch.
- Review Tier 2 — important (launch with documented exceptions) — Runtime version current, all PHP extensions loaded, storage writable, symlinks created, config/route caching succeeds, no JS console errors, email delivery confirmed, every critical route responds, log rotation configured.
- Review Tier 3 — nice-to-have (complete or backlog) — Static analysis clean, dependency audits clean, performance score above target, dev-only profiling disabled in production, chat-alert integration wired, page load under 3 seconds.
Background
Section titled “Background”The decision is tiered on purpose. Tier 1 is non-negotiable; Tier 2 can ship with a written exception; Tier 3 is nice-to-have. That separation keeps a minor gap from blocking a launch while guaranteeing a real blocker always stops it.
1. Confirm Tier 1 blockers (must be 13/13)
Section titled “1. Confirm Tier 1 blockers (must be 13/13)”If any of these fail, do not launch.
-
Verify all 13 blockers pass.
# Item Check 1 Launch-candidate runs the committed code Deployed commit hash matches 2 APP_DEBUG=falseLaunch-candidate .env3 APP_ENVmatches the environment rowLaunch-candidate .env4 APP_KEYset & secureStarts with base64:5 Database connected php artisan db:show6 All migrations applied migrate:statusall “Ran”7 Registration works Launch-candidate signup path verified 8 Login works Launch-candidate login path verified 9 Payment flow works Test/sandbox charge and refund pass now; production live charge/refund is a Phase 12 human gate 10 HTTPS enforced HTTP redirects, HTTPS 200 11 .envnot publicly reachableRequest returns 403/404 12 Error tracking receiving Test exception appears 13 Uptime monitoring active Monitors green - ✅ All 13 Tier-1 items pass — Phase 12 is not blocked. Also confirm Phase 10 handoff areas are still green: consent banner enforced, Privacy/Terms/Cookie/Refund published, production live-charge/refund is named for Phase 12, and security headers match the Phase 7 canonical set.
2. Review Tier 2 — important (launch with documented exceptions)
Section titled “2. Review Tier 2 — important (launch with documented exceptions)”Runtime version current, all PHP extensions loaded, storage writable, symlinks created, config/route caching succeeds, no JS console errors, email delivery confirmed, every critical route responds, log rotation configured.
-
Confirm each Tier 2 item or document the exception.
- ✅ Every Tier 2 item is green, or each gap has a written, accepted exception.
3. Review Tier 3 — nice-to-have (complete or backlog)
Section titled “3. Review Tier 3 — nice-to-have (complete or backlog)”Static analysis clean, dependency audits clean, performance score above target, dev-only profiling disabled in production, chat-alert integration wired, page load under 3 seconds.
-
Complete or track the Tier 3 items, then sign off.
- ✅ Tier 3 items are completed or knowingly tracked in
Zaj-BACKLOG.mdas post-launch non-blockers, and a person has signed off on the launch.
- ✅ Tier 3 items are completed or knowingly tracked in
Checklist
Section titled “Checklist”Do not mark this step done until every box below is checked.
- 🔀 Tier 1 is 13/13 — all readiness blockers pass; if any fail, do not enter Phase 12. Blocker 9 has launch-candidate test/sandbox proof now and a 👤 Phase 12 production live-charge/refund gate.
- 🤖 Tier 2 resolved — green or documented exception for each item.
- 🤖 Tier 3 handled — completed or knowingly tracked in
Zaj-BACKLOG.mdas post-launch non-blockers. - 👤 Phase 12 signed off — a person has made the go/no-go decision to enter production cutover.