A step is a lane's rule: on arrival here, run this. A lane either does nothing, which is what every lane does until you say otherwise, or it runs one step of one of three kinds.
Giving a lane a step
Click the step badge on the lane's header. The menu is headed Runs when a
card lands here and offers Nothing, each step the board already has, and
New step…. Steps belong to the board rather than to a lane, so the same
step can run on more than one lane; the menu also has Edit <name>… and
Delete <name>.
The kind is chosen when the step is made and locked afterwards: a command that became an agent would be a different step, and the runs already filed under this one say what it was when they ran. Deleting a step that has run is refused — "its runs are that card's history" — so set the lanes to run nothing instead.
The three kinds
agent |
session |
command |
|
|---|---|---|---|
| Takes the terminal? | no | yes — it is the target terminal | no |
| Good for | refine, review, verify | implementing | tests, builds, deploys, lint |
| Gives you back | schema-validated JSON, with cost and duration | a session you drive | streamed output and an exit code |
| How many at once | several | several — one of them attached | several |
Agent steps · Session steps · Command steps
A column composes the step
A step is not "call an agent". It is a recipe the column holds, and moving a card resolves it into one invocation:
| In the form | ||
|---|---|---|
agent |
who does it — one of the agents on your machine, by name | Agent |
model |
which model that call runs on | Model |
inject |
which of the card's context reaches it | Tell it about the card |
capUsd |
the ceiling it may spend | Spending cap (USD) |
expects |
the shape the answer has to satisfy | The answer must match (JSON Schema) |
The point is scope. Twenty agents available everywhere end up loaded everywhere, and you pay for all of it on every call. A column says this step is that one agent, on that model, with that slice of the card — and that is all that gets sent.
Any kind can be marked This step has no undo, which keeps it from ever starting on a drag.
What you type is checked when you save it, not when a card lands on the lane: a step that saves is a step that runs.