Workflows and stations
What a workflow is, everything a station carries, why one worker per station is the rule, and how to divide work into stations that hold.
A workflow is an assembly line inside a factory, drawn as a board. Each of its columns is a station: one job, one worker, one definition of done.
A factory holds as many workflows as the team needs — feature development, bug fixes, incidents, security remediation — and they share the workspace's installed agents. A station in one can hand a card to another; see Handoffs between workflows.
What a station carries
| Setting | What it decides |
|---|---|
| Worker type | An agent, an agent after approval, or a person |
| Agent | Which of the workspace's agents holds it |
| Person | Who decides, for approval and human stations |
| Instructions for this column | What this station expects, on top of the agent's skill |
| Start work when | Dropped or created — Triggers |
| When it passes | Where a passing card goes |
| When it fails | Where a failing card goes, with the reason |
| When it is blocked or out of retries | Where a card goes when the worker cannot continue |
| Retry limit | 1–10, the bound on the loop |
| Notify by email | Who to tell when a card arrives |
| Handoffs this agent may choose | The routes to other workflows the agent is allowed to take |
| Permissions | Open draft pull requests, use tool connections — both off by default |
That is the complete configuration surface. If a behaviour is not in this table, the station does not do it.
Rules, not prompts
Everything in that table is enforced by the system. An agent finishes a run by reporting pass, fail or blocked; what that outcome does to the card — where it goes, whether it has used its retries, whether a person has to approve first — is decided by the station's settings. An agent cannot talk its way to a different route, and it cannot hand a card to a workflow you did not declare a route to.
One worker per station
A station has exactly one worker. This is a constraint worth understanding rather than working around.
A station with two holders has no definition of done — each one's verdict is only half an answer, and a card that "passed" has passed according to somebody. Two jobs means two columns, and two columns means the handover between them is explicit and visible, which is the thing that makes the workflow readable.
If you want two opinions on the same work, make it two stations in sequence: Development → Code review → QA.
Dividing work into stations
Signs a station is doing too much:
- Its instructions contain the word "and" more than twice.
- Its failure path would be different depending on what went wrong.
- You cannot say in one sentence what must be true for a card to leave it.
Signs there are too many stations:
- A station never fails anything.
- Cards pass through without a person ever looking at what happened there.
- Two adjacent stations have the same worker.
Dividing work into workflows
Signs one workflow should be two:
- Two kinds of card move through it and skip half the stations each.
- The failure path for one kind of work makes no sense for the other.
- A different set of specialists works each kind.
Bugs and features are the usual example. Give each its own workflow in the same factory and route between them.
Stay in this column
Every routing select defaults to staying put. A station with no pass target is a valid, useful thing: the worker does its job, writes its verdict into the discussion, and the card stays for a person to move.
That is a good way to start. Add automatic routing once you trust what the verdicts look like.
Taking a station out of service
Remove worker, or deactivate the agent under My agents. The column keeps its cards and its history; nothing new is picked up.