Statuses & Workflows
Each item type runs its own workflow — the statuses it can hold, the moves it can make, and the rules that block a move until the work beneath it is done.
A status is never just a label you pick from a list. Each item type runs its own workflow — a set of statuses and the moves allowed between them — so the picker only ever offers you moves that are legal from where the item currently sits. A phase does not have a QC stage; a subtask does not need one.
Changing a Status
The status chip itself is the control. Click it and a Move to menu opens listing the legal moves and nothing else. On the item's own page the same choice sits in the Status field in the Overview section, where each option is named after the move rather than the destination — Start Work, Submit for Inspection, Finalize.
An item that has reached the end of its workflow shows a plain chip with no menu. There is nowhere left to go.
On the Board, dragging a card between columns is the same move by another gesture, and it is checked the same way. If the server refuses it, the card springs back to the column it was really in.
When a Move Is Blocked
Some moves are guarded — usually because the work beneath the item has not finished. A blocked move opens a dialog rather than a passing toast, because a refusal you cannot act on is no use on site. The dialog names the rule in the workflow's own words and gives you a button to go and satisfy it:
- View items takes you to the work that is holding it up
- Edit field takes you to the field that needs filling in
| Rule | Wording you'll see |
|---|---|
| A phase cannot complete with open activities | "All activities within this phase must be complete" |
| An activity cannot go for review with open tasks | "All tasks within this activity must be complete" |
| A task cannot be marked construction complete with open subtasks | "All sub-tasks must be complete before marking construction complete" |
| A task cannot pass QC with an inspection outstanding | "All linked inspections must be completed and passed before marking QC passed" |
Finished means finished in its own workflow
A child counts as done when it reaches the end of its own workflow. A task at QC Passed has not finished — Complete is the last status in the task workflow, so a phase above it stays blocked until the task is finalised.
The Task Workflow
The longest of the five, because a task is the thing that gets built and inspected.
| Status | Move out of it | Takes it to |
|---|---|---|
| Not Started | Mark Ready | Ready |
| Ready | Start Work | In Progress |
| In Progress | Put On Hold | On Hold |
| In Progress | Mark Construction Complete | Construction Complete |
| On Hold | Resume Work | In Progress |
| Construction Complete | Submit for Inspection | Inspection |
| Inspection | QC Passed | QC Passed |
| Inspection | QC Failed | QC Failed |
| QC Failed | Rework Required | In Progress |
| QC Passed | Finalize | Complete |
Submit for Inspection notifies the project's QC inspectors, so the handover from build to check does not depend on somebody remembering to send a message.
The Other Four Workflows
| Type | Statuses | Moves |
|---|---|---|
| Phase | Planning → Approved → Active ⇄ On Hold → Complete | Approve Phase, Activate Phase, Put On Hold, Resume Phase, Complete Phase |
| Activity | Not Started → In Progress ⇄ On Hold → Under Review → Complete | Start Activity, Put On Hold, Resume, Submit for Review, Send Back, Complete Activity |
| Subtask | Not Started → In Progress → Complete | Start, Complete |
| Issue | Open → In Progress → Fixed → Closed | Start Fix, Mark Fixed, Close Issue, Reject Fix |
Send Back on an activity returns it from Under Review to In Progress — the way to reject a review without starting the activity over.
Reject Fix does the same for an issue, returning it from Fixed to In Progress. Closing an issue is guarded: the other issues raised alongside it must be fixed first, and the reinspection has to be in.
Reading Statuses Across the Views
- The Board builds its columns from the statuses the items on it can actually reach, so it is a different board for a set of subtasks than for a set of tasks
- Group by → Status in the toolbar groups any view by status without moving anything
- Filter → Status narrows to the statuses you care about, and combines with the other filters using AND or OR