The five-state board Shipped

Five states, and the two that check anything

The states are Linear's, on purpose — nobody needs a new vocabulary for work. What is different is that two of the transitions are gates: one will not let work start without a spec, and one will not let it close without evidence.

The five

StateWhat it means here
TriageOne line, from anywhere. A request that has not been scoped is not work in progress
TodoScoped and accepted: the four fields are answered and the zones are named
In ProgressThe first gate. A grant exists, bound to one task and one branch, and it expires
In ReviewHanded in. The zones closed in the same breath the board moved
DoneThe second gate. A manifest, the evidence the quality gate named, and a record on the branch

A task lands in Triage in about four secondsmeasured once, for one task, on one machine. Capture is meant to be cheap; it is the two gates that are meant to cost something.

The task spec: four fields, asked once

The first gate refuses to open without these. They are the design-doc fields, not a ceremony invented here.

There is no mandatory checklist beyond these four, anywhere in the product, and that restraint was argued for three times with data. A tool that blocks legitimate work gets uninstalled in week two.

The gate is a transition, not a command

There is no open-zone. Access exists because a task moved, and it is bound to the branch that task named. That matters more than it sounds: the moment a second door exists it becomes the one everybody uses in a hurry, and a gate with a bypass command is a suggestion with extra steps.

Closing is the same shape in reverse. The second gate computes a change manifest from the branch, asks for the evidence the quality gate names, and writesthe audit record last, so it contains everything else.

Spike mode, for the work that should not survive

Exploration leaves residue: code that shipped because nobody decided it should not. A spike is time-boxed and disposable by default — promoted deliberately or discarded, on aspike/ branch, with sandbox tables that get dropped together.

The schema zone stays shut for the whole of it, regardless of what the grant says. It is the one place a git revert cannot save you, which is why it is the zone the setup always creates.

Where it stops

The states and their transitions are in the docs, the model a task declares against is the zone map, and what it leaves behind isthe record.