Delivery Flow Checklist
The loop every change travels, plus the migration rules that differ from it. Code changes are reversible; schema changes are not, and the checklist separates them deliberately.
Syntax
implementor-onboarding
1. Branch from an up-to-date main
2. Build locally, against local or scratch data
3. Push; open a pull request
4. Preview builds at its own URL — nothing live has changed
5. Review — you, then the tenant if it is customer-visible
6. Merge
7. VERIFY — load the live URL and confirm the change is thereParameters
| Parameter | Type | Description |
|---|---|---|
| step 7 | verification | The most-skipped step. Merging is not deploying and deploying is not serving. Caches exist. |
| never commit to main | rule | Not for a typo, not for urgency. The value comes from being universal; one tolerated exception establishes that exceptions exist. |
| migrations move forward | rule | Write a new migration to correct a mistake. Never edit one that has been applied. |
| destructive changes | gate | Dropping, renaming, retyping, or rewriting rows — stop and get explicit tenant agreement before running. |
| snapshot first | rule | Before a destructive change on live data, export the exact rows to a durable file. Seeds reproduce forward; they do not recover. |
Example
implementor-onboarding
THE THREE GATE STAGES, in cost order:
1. Structural does it conform? cheapest — runs on everything
2. Functional does it do the thing? runs on structural passes
3. Operational safe to release? most expensive — runs last
The order is economics, not ceremony. Reverse it and your most
expensive check discovers a typo.
A gate reports pass, fail, or COULD NOT RUN. The third must be loud
and must never be treated as a pass.