Skip to main content
Version: 2.0

Task statuses

A task always holds exactly one status. The default flow uses the following set (defined canonically in packages/taskflow/src/core/statuses.ts).

Core lifecycle

StatusMeaning
readySpec written; ready to be picked up for implementation.
in-progressImplementation has started.
implementedImplementation complete; awaiting git/push and review.
reviewingUnder code review (AI or human).
approvedReview passed with no blockers.
fix-neededReview found blockers; needs fixing.
fixingBlocker fixes in progress.
fixedFixes applied; ready to be re-reviewed.
pushedChanges pushed to the task's branch.
mergedBranch merged to the main line. Terminal.
doneTask fully complete and closed out. Terminal.

Change-request states

Used when a human requests changes after a task is delivered:

StatusMeaning
request-changesA change request is being recorded.
changes-requestedChange(s) recorded; awaiting implementation.
changes-implementingRequested changes are being implemented.
changes-implementedRequested changes complete; back to git/review.

Terminal vs. active

merged and done are marked terminal — a task in those states has reached the end of the flow. Every other status is "active" and has at least one outgoing transition (see Transitions & agents).

tip

Incidents are not task statuses — they have their own lifecycle attached to a task. See Incident flow.