# Branching Strategy

## Branches

| Branch | Purpose |
| --- | --- |
| `main` | Production-ready history |
| `develop` | Integration branch for upcoming release |
| `feature/*` | Feature or docs work branched from `develop` |
| `hotfix/*` | Urgent production fixes from `main` |
| `release/*` | Release hardening, version bumps, notes |

## Flow

1. Create `feature/<short-name>` from `develop`.
2. Open PR into `develop`.
3. Cut `release/x.y.z` when stabilizing.
4. Merge release into `main` and back into `develop`.
5. Tag `main` with `vX.Y.Z`.
6. Hotfixes merge to `main` and cherry-pick/`merge` back to `develop`.

## Version Tagging

Semantic tags: `vMAJOR.MINOR.PATCH` — see [release-strategy.md](release-strategy.md).

## Documentation Branches

Documentation-only work still uses `feature/*` and must update registries/progress when claiming phase completion.

## Related Documents

- [Release Strategy](release-strategy.md)
- [Developer Guide](developer-guide.md)
