smalltalk pre-release
Steps and work
A step is one unit of work in a mission. A step says what should happen, who may do it, and what has to happen first.
Order comes from dependencies
Only depends-on orders steps. The order you write them in is only for display. A step without dependencies is a root, and can start right away even if it's written last.
step "verify" {
depends-on { step "build" completed }
goal "Run the test suite against the build."
}
A few shapes cover most plans:
queueruns a group of steps in strict sequence.loopruns bounded rounds until the result is good enough, and always declaresmax-rounds.- Nested missions give a step its own child mission, with its own run.
finallyholds cleanup steps that run after success, failure or cancellation.
Who may do it
Each step says who may claim it:
assigned-tonames one agent.available-tonames a pool, and any agent in it may claim the step.agentlessmeans no agent claims it. The step waits on the graph instead: a dependency, another run, or a gate such as a person's approval.
A mission can set a default that its steps inherit.
Claiming work
When a step is ready, a worker claims it with a renewable lease tied to that agent's current runtime. It renews the lease as it works, reports progress, and then completes or fails the step.
A step's timeout is a budget for doing the work. It only counts while a worker holds the claim, not while the step waits for dependencies or gates.
Completing a step is a report, not a verdict. The step only advances when its products and gates hold.
The seat's view
Each seat holds one step at a time and keeps a queue of runs. It takes the next ready step in queue order. A person can reorder the queue without interrupting the step the seat already holds.