Milestones
A milestone is one unit of planned work with a contract (objective, acceptance criteria, verification checks) and a task graph (the concrete steps). Nothing gets implemented until a human confirms the contract -- that confirmation is the one mandatory approval gate in the whole lifecycle.
Lifecycle
Requirement → Milestone (Contract ⇄ Milestone Review) →
Human Approval → Task Graph → [TDD ⇄ Task Verification →
Task Commit]* → Final Full Test → Milestone Complete →
Milestone Merge.
States
draft-- drafted, contract and task graph not yet confirmed.confirmed-- the contract is frozen, verification commands hash-approved, baseline commit created. Ready (dependency-free) tasks promote automatically.in_progress-- tasks are being worked.review-- milestone verification is running or has been run.completed-- every task done and every check passing.
review → in_progress on failed verification; draft|confirmed → cancelled for a milestone abandoned before real work starts.
Working with milestones
pitway milestone-add --contract contract.md --tasks tasks.yaml # draft
pitway milestone-confirm M001 # confirm
pitway milestone-status M001 # status
pitway milestone-complete M001 # complete
pitway milestone-merge M001 # merge
See Contracts and Tasks for the two things every milestone is built from, and Completion / Merge for how one finishes.