Timeline
Indicative ~8 weeks to first canary, assuming Phase 0 lands Week 1–2 and screen ports continue in parallel. Test infra is the critical path — slip it and everything slips.
Week 1 = w/c 2026-06-16. Adjust dates as the team commits; this is a planning skeleton, not a contract.
| Week | Dates (w/c) | Focus | Exit milestone |
|---|---|---|---|
| 1 | 2026-06-16 | Phase 0: Vitest + Cypress + Playwright scaffolding; CI checks wired | Placeholder tests run green in CI |
| 2 | 2026-06-23 | Phase 0 done · Phase 1 starts: parity checklist + critical-path ranking | Gate 0 ✅ ; parity checklist drafted |
| 3 | 2026-06-30 | Phase 1: unit/component tests land with each port | Coverage climbing per layer target |
| 4 | 2026-07-07 | Phase 1 done · Phase 2 starts · feature freeze on legacy | Gate 1 ✅ ; freeze announced |
| 5 | 2026-07-14 | Phase 2: E2E critical flows on staging | Discovery + booking E2E green |
| 6 | 2026-07-21 | Phase 2 done · Phase 3 starts | Gate 2 ✅ (QA sign-off) |
| 7 | 2026-07-28 | Phase 3: perf budgets, error monitoring, load test, rollback drill | Gate 3 ✅ |
| 8 | 2026-08-04 | Phase 4: internal dogfood → 5% canary | First real traffic on monorepo |
| 9–10 | 2026-08-11 → | Phase 4: 25% → 50% → 100% → 1-week soak | Gate 4 ✅ → decommission legacy |
Milestones
- M1 (end W2): Test infra proven — Gate 0 ✅
- M2 (end W4): Parity defined + feature freeze — Gate 1 ✅
- M3 (end W6): Critical flows green on staging — Gate 2 ✅
- M4 (end W7): Non-functional hardening done — Gate 3 ✅
- M5 (W8): First canary traffic (5%)
- M6 (~W10): 100% + soak complete — Gate 4 ✅, legacy decommissioned
Dependencies / sequencing notes
- Phase 1 ports depend on Phase 0 test infra (TDD per PR requires Vitest/Cypress working).
- Phase 2 E2E depends on a stable staging deploy (
hh-ionic-staging.pages.dev). - Phase 4 canary depends on Cloudflare weighted routing — coordinate with
hungryhub-terraform/hh-cloudflareahead of W8 (Irfan). - Feature freeze (2.1) must hold from W4 until cutover, or parity becomes a moving target.