Skip to content
Merged
Show file tree
Hide file tree
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
24 changes: 24 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## Summary
- Issue: <!-- e.g. #29 -->
- What changed:

## Versioning (required)
- [ ] I updated `Cargo.toml` version
- [ ] I added/updated `CHANGELOG.md`
- [ ] I documented release impact in this PR
- [ ] If no bump, I explicitly justify why this is docs/chore/no behavior change

## SemVer choice
- [ ] PATCH (bugfix/reliability/non-breaking internal change)
- [ ] MINOR (new capability/new CLI/workflow contract change)
- [ ] MAJOR (breaking contract)

Version selected: `v`__________

## Validation
- [ ] `cargo test -q`
- [ ] CI green

## Release
- [ ] Tag planned/applied (`vX.Y.Z`)
- [ ] Tag notes include issue IDs
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ source ~/.zshrc
- OpenClaw skill contract: `docs/OPENCLAW_SKILL_CONTRACT.md`
- OpenClaw skill starter: `skills/openclaw/SKILL.md`
- OpenClaw integration bundle: `integrations/openclaw/README.md`
- Versioning and release policy: `VERSIONING.md`

## tutti.toml

Expand Down
71 changes: 71 additions & 0 deletions VERSIONING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# VERSIONING.md

Tutti uses **SemVer** (`MAJOR.MINOR.PATCH`).

## Default rule (per merged issue PR)

Every merged issue PR must include:

- [ ] `Cargo.toml` version bump
- [ ] `CHANGELOG.md` entry
- [ ] release impact noted in PR description

If a PR does **not** change behavior (docs/chore only), explicitly mark it as **no-version-bump** in PR notes.

---

## Bump policy

### PATCH (`v0.2.x -> v0.2.x+1`)
Use for:
- bug fixes
- reliability hardening
- internal orchestration improvements
- non-breaking CLI/workflow behavior refinements

### MINOR (`v0.x -> v0.(x+1).0`)
Use for:
- new user-visible capability
- new CLI commands/subcommands
- workflow contract changes that operators must adapt to
- autonomy milestone releases (meaningfully stronger unattended operation)

### MAJOR (`v1.x -> v2.0.0`)
Use for:
- breaking API/CLI contract changes
- incompatible config/workflow format changes

---

## v0.3.0 trigger (agreed current policy)
Move to `v0.3.0` when all are true:

1. `#28` shipped (stale review gate handling)
2. `#30` shipped (state machine + run ledger)
3. `#35` and/or `#37` shipped (permission/dry-run preflight usability)
4. At least one full issue completed unattended with no manual rescue

Until then, continue with patch bumps on issue delivery.

---

## Tagging policy

- Prefer **tag per merged issue PR** once CI is green on `main`.
- Tag format: `vX.Y.Z`
- Tag must reference `origin/main` merge commit for the release.

Example:

```bash
git fetch origin --tags
# bump Cargo.toml + CHANGELOG in PR first
# after merge:
git checkout main
git pull --ff-only

git tag v0.2.4
git push origin v0.2.4
```

If tags are batched, document which issues are included in the release notes.
Loading