Docs menuSteps and work

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:

  • queue runs a group of steps in strict sequence.
  • loop runs bounded rounds until the result is good enough, and always declares max-rounds.
  • Nested missions give a step its own child mission, with its own run.
  • finally holds cleanup steps that run after success, failure or cancellation.

Who may do it

Each step says who may claim it:

  • assigned-to names one agent.
  • available-to names a pool, and any agent in it may claim the step.
  • agentless means 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.