devpit

Steps

What a column runs when a card arrives: an agent, a session or a command.

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.