schemeta/docs/phase8-cutover-rollback.md
Rbanh 0c5c1040cd
Some checks are pending
CI / test (push) Waiting to run
Sprint 7: add Phase 8 cutover gate and rollback runbook
2026-02-19 23:24:46 -05:00

55 lines
1.8 KiB
Markdown

# Phase 8 Cutover and Rollback Runbook
## Goal
Move from legacy-first UI to React-first UI safely, with a deterministic rollback path.
## Preconditions
- `main` branch green on:
- `npm run test`
- `npm run test:ui`
- `npm run frontend:react:check`
- Milestone #7 issues required for cutover are accepted.
- Latest regression artifacts are present under `output/playwright/`.
## Cutover Gate Command
Run this gate command before enabling React as default:
```bash
npm run phase8:cutover:check
```
It writes a machine-readable report to:
- `output/phase8/cutover-check-report.json`
## Cutover Checklist
1. Confirm release candidate commit hash and tag target.
2. Run `npm run phase8:cutover:check` and archive report artifact.
3. Verify React path boots and legacy path still boots in dual-run.
4. Verify save/load/import/export compatibility on fixture corpus.
5. Confirm MCP tools still return stable API envelopes.
6. Publish release notes with known limitations and rollback trigger criteria.
## Rollback Triggers
Rollback immediately if any occur post-cutover:
- New blocker in compile/apply loop.
- UI interaction regressions that break editing workflows.
- Crossings/overlaps/readability regressions above agreed thresholds.
- API/MCP contract break for compile/analyze/layout endpoints.
## Rollback Procedure
1. Switch deployment back to previous stable tag.
2. Re-enable legacy-first UI mode.
3. Re-run:
- `npm run test`
- `npm run test:ui`
4. Open incident issue with:
- failing commit/tag
- regression screenshots
- exact reproduction JSON
5. Keep React path available in non-default dual-run mode until fix lands.
## Evidence to Attach to Release
- `output/phase8/cutover-check-report.json`
- `output/playwright/ui-metrics-report.json`
- Updated `docs/release-checklist.md` completion notes