This applies to every repository in the organization.
Every repository has at most two branches:
| Branch | Role |
|---|---|
main |
Default branch. Always stable and verified. The only permanent branch. |
dev |
The single working branch. Fixed name: dev — never develop, never a per-task name. |
A repository is main-only when no work is in progress. dev exists only while it is needed, and is not mandatory.
mainis the default branch everywhere.masteris not allowed — rename it tomain.- All code work happens on
dev. - As soon as the code is good and verified, merge
dev→mainimmediately. No deferred merges. - If
devstays open, it is continued under the same name for the next change; it is closed only when the work is finished. - No per-task branches.
feat/…,fix/…,issue-number/…branches must be merged and deleted within the same task. Never leave a branch open past the work that created it. - A branch opened by a tool (e.g.
dependabot/…) is removed as soon as its pull request is merged or closed. - A branch is deleted only after its work is in
main(or indev). Never delete unmerged work. - Changes are proposed with a Pull Request into
main; the PR is merged, then its branch is deleted.
One stable branch keeps the default branch honest and deployable. One working branch keeps parallel work from fragmenting into dozens of stale branches. Short-lived branches mean main always reflects reality.