RefractTrack Stages
Stages
Stages are a project's swimlanes — the columns/workflow steps tasks move through on the board. Managed from Manage → Stages (stages.php / stage_form.php).
Per-project
Stages are per-project: every project gets its own independent set, seeded at creation with a standard starter set (Not Started / In Progress / In Review / Blocked / Done). Renaming, hiding, reordering, or deleting a stage in one project has no effect on any other project's stages.
What you can configure per stage
- Name
- Order — reorder the swimlanes from the Stages page
- Requires assignee — whether moving a task into this stage requires picking an assignee first (defaults on for In Progress and In Review)
- Is done — flags a stage as a completion state (used elsewhere, e.g. bulk "archive all done")
- Visibility — a stage can be hidden from the board without deleting it
Hiding vs. deleting
- A hidden stage's tasks stay exactly where they are and remain reachable from the task detail page or List view; the stage just doesn't get its own lane on the board. New tasks always default into the first visible stage, so nothing you create can land somewhere invisible. You can't hide the last remaining visible stage in a project.
- Deleting a stage only succeeds if no tasks currently sit in it (
stage_idhas noON DELETEclause in the schema — i.e.RESTRICT— which enforces this as a second line of defense behind the application-level check).
Permissions
Stage management (stages:view, stages:create, stages:edit, stages:reorder, stages:delete) is deliberately not a project-scoped permission set, even though the stages themselves are project-owned data. Whether a user can manage stages at all is a global grant; only which project's stages they're looking at changes per page. See "Project-scoped permissions" in Permissions and Roles.