fix(P02): mandatory releases for every phase and milestone — correct versioning

---ci---
phase: 2
milestone: v0.2
status: execute
decisions:
  - id: D-016
    decision: Every ship creates a release — phases get patch, milestones get minor/major
    rationale: Releases are not optional. Every phase must be tagged and released. Milestone completion also gets a release. Major for schema changes, Minor for milestones, Patch for phases.
    confidence: 0.99
    alternatives: [optional releases, phase-only releases]
---/ci---

- ship.md: rewritten with mandatory release flow and versioning table (Major/Minor/Patch)
- run.md: COMPLETE stage now includes tag + release as mandatory steps
- branch-strategy.md: added Versioning and Releases section with merge→tag→release examples
This commit is contained in:
CI
2026-05-29 13:35:51 +00:00
parent 2f738c33b7
commit e4bb3a9970
3 changed files with 115 additions and 20 deletions
+40
View File
@@ -77,6 +77,44 @@ gitBranch.mergePhaseBranch("phase/01-git-native-architecture", "main", true);
Squash merge keeps main clean while preserving full development history in the phase branch. Phase branches can be deleted after merge if desired.
## Versioning and Releases
**Every merge to main creates a release. No exceptions.** Versioning maps to project structure:
| Version Part | When | Example |
|-------------|------|---------|
| **Major** (X.0.0) | Project-level refactor or schema change | `v1.0.0` |
| **Minor** (0.X.0) | Every milestone completion | `v0.3.0` |
| **Patch** (0.0.X) | Every phase completion | `v0.2.3` |
### Phase completion (patch release)
```bash
git checkout main
git merge --squash phase/01-git-native-architecture
git commit -m "docs(P01): complete git-native-architecture phase"
git tag -a v0.2.1 -m "v0.2.1: git-native-architecture"
git push origin main --tags
# Create Gitea release for v0.2.1
```
Phase number within the milestone determines the patch version (1st phase = .1, 2nd phase = .2, etc.)
### Milestone completion (minor release)
```bash
git checkout main
git merge --squash milestone/v0.2-git-native
git commit -m "docs(milestone): complete git-native"
git tag -a v0.2.0 -m "v0.2.0: git-native"
git push origin main --tags
# Create Gitea release for v0.2.0 with full milestone summary
```
### Major release
When the project undergoes a schema-breaking change (e.g., switching from file-based to git-native architecture), bump the major version. Major releases follow the same merge → tag → release flow.
## Phase Discovery
```typescript
@@ -117,6 +155,8 @@ status: execute
git checkout main
git merge --squash phase/01-git-native-architecture
git commit -m "docs(P01): complete git-native-architecture phase"
git tag -a v0.2.1 -m "v0.2.1: git-native-architecture"
git push origin main --tags
```
</branch_strategy>