Release path

How a change reaches production, step by step. Drawn from the code on November 8, 2026.

The short version

  1. Publishing a GitHub release from main is the only path to production.
  2. The two-key RELEASE-GO rule lives only in the docs; no workflow checks it.
  3. The release applies no migration; migrations go first, on the signed path.
Tort Terminal: how a change reaches production A sequence diagram generated by Archify. feature PR into develop Squash merge on green.Stacked PRs onfeature/** bases runthe gate too. PR Validate + UI Review Gate needs lint,format, tsc, tests,audits. Screen filesneed UI CLEAR <headsha7> from a ruler. both contexts green merge --squash --admin --admin clears the1-approval rule only.enforce_admins is off,so confirm the gateCONCLUDED green first. push to develop: beta deploy beta customenvironment tracksdevelop(tortterminal-dev.com). vercel.json: amain push deploysnothing. release PR develop to main PR Validate + Release source guard Guard: head must bedevelop, release/v* orhotfix/**; vercel.jsonmust keep the mainkill switch. gate + guard green RELEASE-GO <tag> <sha7>: Jean RELEASE-GO <tag> <sha7>: Brick A new commit needs newGOs. No workflow orscript readsRELEASE-GO: documentedprocess, notcode-enforced. Brick approves the release PR main asks 1 approvalplus two checks;--admin bypasses theapproval, so this keyis discipline too. merge --merge --admin (merge commit) Never squash: itsplits the historiesand every laterrelease PR re-showsthe old commits. push to main: Back-merge check Fails when maincarries non-mergecommits develop lacks;a develop release addsnone, so green. gh workflow run prod-migrate.yml Input: at least tworaw signedNEON-APPROVE events asJSON, within 45minutes. Jean runs itfrom Buzz. db:migrate:prod:ci --approval Refuses any host butprod. Each pendingfile needs twoNEON-APPROVEsignatures fromnon-authors. apply records audited audit-migration-approvals --targetproduction.release.yml applies nomigration; its summarylists them. gh release create vYYYY.MM.DD --target main Only admins create v*tags; the Jean andBrick apps are on thebypass list. Aprerelease deploysnothing. release: released Fires on publish andwhen a prerelease ispromoted, never for aprerelease itself. validate tag, pin sha, refuse off-main Tag vYYYY.MM.DD[.N],published, not aprerelease; sha pinnedat publish; commitmust be onorigin/main. POST production deployment Vercel API: targetproduction, gitSourcemain at the releasesha, forceNew, for theVercel project. readyState READY Polled every 20 s forup to ~40 min; ERRORor CANCELED fails therun. assert production points at it Checks the productiontarget; if unmoved,promotes andre-checks, else fails(after an InstantRollback auto-assignis off). Cloud Build: cron-jobs + crop worker images Two workflows, sameshape: refuse a commitnot on main, push:<short sha> and:latest; cron-jobsthen rolls lk-pull-apiby digest. terraform.yml: plan + apply infra/ Apply only on releaseor a dispatch frommain; re-plans on therelease commit;refuses a plandeleting lk-pull-api. hotfix/** PR into main, squash on green Release source guardadmits hotfix/**; ahotfix migration whiledevelop holdsunreleased ones isrefused. Then releaseas above. Back-merge check RED on main back-merge PR main to develop Merge commit, neversquash; the checknever opens this PRitself. rollback: Run workflow with an older tag release.ymlworkflow_dispatch frommain; the tag must bea publishednon-prerelease v*.Migrations never rollback. 1. Feature PR into develop, auto beta 2. Release PR develop to main 3. Two keys on the Release issue 4. Prod migrations before publishing 5. Publish the Release: Vercel production 6. Same released event: Cloud Run, Terraform 7. Hotfix path and rollback Release issue · two keys: RELEASE-GO · Sequence participant Release issue two keys: RELEASE-GO Dev or agent · Jean, Brick, Claude · Sequence participant Dev or agent Jean, Brick, Claude GitHub repo · develop, main, Releases · Sequence participant GitHub repo develop, main, Releases PR gates · Actions checks on PRs · Sequence participant PR gates Actions checks on PRs Release workflows · Actions: ship to prod · Sequence participant Release workflows Actions: ship to prod Vercel · beta and production · Sequence participant Vercel beta and production Neon prod · signed migrations · Sequence participant Neon prod signed migrations GCP · Cloud Run, Terraform · Sequence participant GCP Cloud Run, Terraform Legend main request return security async trace message

From you

nothing