Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions docs/developer/branching-strategy.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,19 @@

### Operational Rule
- If a direct `main` -> `develop` PR is opened and blocked by merge policy, close it and create a linear sync PR from `develop`.

## Merge Method Decision Matrix (Canonical)

For this repository, the correct merge method depends on the branch pair:

1. feature/* or fix/* -> develop: Squash and merge (recommended).
2. develop -> main (release PR): Create a merge commit.
3. hotfix/* -> main: Squash and merge.
4. main -> develop sync: do not use direct merge or rebase-merge; use the linear cherry-pick sync PR model.

### Rationale

- This policy is defined in this branching strategy and related governance docs.
- Squash keeps develop clean and supports one-issue-per-commit traceability.
- Merge commit on develop -> main preserves release boundary/history.
- Rebase-merge is not a project standard for these flows and can reduce governance traceability in this model.