Goal
Migrate dev → main as default branch, stand up vnext, configure protections. Zero workflow changes — pure infrastructure, no code risk. Blocks all subsequent phases.
Tasks
p0-migrate-dev-to-main
-
Verify main is ancestor of dev (git merge-base --is-ancestor main dev). Reconcile if not.
-
Fast-forward main to dev HEAD.
-
Bulk-retarget all open PRs dev → main:
gh pr list --base dev --json number --jq '.[].number' | xargs -I {} gh pr edit {} --base main
Verify zero PRs remain targeting dev.
-
Change GitHub default branch from dev → main.
-
Update CI workflows + branch protection rules + any external refs pointing at dev or staging.
-
Delete staging (stale ~2 months, throwaway).
-
Delete dev (retired). Tags already live on main commits — no change needed.
-
Contributor announcement (GitHub Discussion + README banner).
p0-vnext-branch
- Create
vnext long-lived branch from new main.
- Mirror branch protections from
main: no direct push, require PR, required CI status checks.
- Grant
overture-pull-requester GH App bypass on vnext protection rules (needed for p1-post-merge-rebase force-push).
p0-docs
- Create
docs/branching-strategy.md covering the two-branch model and contributor workflow.
- Update
CONTRIBUTING.md with a pointer to it.
- This is the live doc — subsequent phases append to it.
Contributor-facing changes
dev is gone. Default branch is now main.
staging is gone.
- New
vnext branch exists for major changes.
- Branch from
main. Target main for normal work, vnext for major changes.
- Open PRs were auto-retargeted from
dev → main. No action needed unless yours was missed.
Definition of done
Goal
Migrate
dev→mainas default branch, stand upvnext, configure protections. Zero workflow changes — pure infrastructure, no code risk. Blocks all subsequent phases.Tasks
p0-migrate-dev-to-mainVerify
mainis ancestor ofdev(git merge-base --is-ancestor main dev). Reconcile if not.Fast-forward
maintodevHEAD.Bulk-retarget all open PRs
dev→main:Verify zero PRs remain targeting
dev.Change GitHub default branch from
dev→main.Update CI workflows + branch protection rules + any external refs pointing at
devorstaging.Delete
staging(stale ~2 months, throwaway).Delete
dev(retired). Tags already live onmaincommits — no change needed.Contributor announcement (GitHub Discussion + README banner).
p0-vnext-branchvnextlong-lived branch from newmain.main: no direct push, require PR, required CI status checks.overture-pull-requesterGH App bypass onvnextprotection rules (needed forp1-post-merge-rebaseforce-push).p0-docsdocs/branching-strategy.mdcovering the two-branch model and contributor workflow.CONTRIBUTING.mdwith a pointer to it.Contributor-facing changes
devis gone. Default branch is nowmain.stagingis gone.vnextbranch exists for major changes.main. Targetmainfor normal work,vnextfor major changes.dev→main. No action needed unless yours was missed.Definition of done
mainis the default branch, at parity with formerdevHEADvnextexists, protected,overture-pull-requesterhas bypassdevandstagingdeletedmaindocs/branching-strategy.mdcreated,CONTRIBUTING.mdupdated