| name | commit-protocol |
| description | Create standardized git commits at phase and increment boundaries. Defines commit procedures, message formats, and state bundling. Use when committing after phase completion, increment delivery, or slice implementation. |
Commit Protocol
At key checkpoints, create commits that bundle artifacts produced. This gives a clean, resumable history in git log.
Commit Procedure
After a step or phase completes (and human gate approved, where applicable):
1. Stage all changes:
git add -A
2. Commit with an appropriate tag (see table below).
3. Update state.json to reflect the new state.
4. Append an entry to audit.log.
5. Commit the state update:
git add .spec2cloud/ && git commit -m "spec2cloud: state update"
Commit Messages
| Event | Commit Message |
|---|
| Shell setup | [phase-0] Shell setup complete |
| Product discovery | [phase-1] Product discovery complete — N FRDs, N screens, N increments, tech stack resolved |
| Increment tests | [increment] {id}/tests — test scaffolding complete |
| Increment contracts | [increment] {id}/contracts — contracts generated |
| Increment slice | [impl] {id}/{slice} — slice green |
| Increment all tests green | [impl] {id} — all tests green |
| Increment delivered | [increment] {id} — delivered |
| All increments complete | [release] All increments delivered — product complete |
Why Increment-Level Commits
Each increment is a self-contained delivery. Commits at increment boundaries mean:
git log --oneline --grep="\[increment\]" shows the delivery timeline
- Each delivered increment is a revertable, deployable unit
- Mid-increment commits at slice granularity create resumable checkpoints
Mandatory Completion Checklist
The orchestrator MUST verify ALL of the following for every commit:
BLOCKING: A commit without state.json and audit.log breaks resume capability. The orchestrator must include them before finalizing the commit.