Appearance
YY.M.P — Deployment plan
Ordered by the
depends_ongraph, not by convenience. Expand-contract meansadd-nullable → backfill → switch → dropis a hard ordering; applying CR-03 before CR-02 breaks production.
Fixed ordering rule
Backend (expand only) → Web PWA → stores. Stores lag by review latency, so a contraction never ships in the same release as the app change that stops needing the thing. Backend goes first and must remain compatible with the oldest live app build.
Pre-flight
- [ ]
npm run check:releaseexits 0 - [ ]
check:env-driftshows no DIVERGENT - [ ]
check:fn-configshows no loosening - [ ] Declared change set == actual pending set (
supabase migration list --linked) - [ ] G4 approval recorded, bound to the commit SHA being deployed
Steps
| # | CR | Environment | Action | Owner | Est. | Verification |
|---|---|---|---|---|---|---|
| 1 | dev | |||||
| 2 | uat | |||||
| 3 | prod |
Store submission
| Platform | Build | Submitted | Expected review | Rollout |
|---|---|---|---|---|
| Android | staged % | |||
| iOS |
A staged rollout means the old build is still live, so the compatibility floor uses the oldest supported build, not the newest.