Steps
ConceptualThe atomic unit of execution: inputs, effects, results and verification.
Steps are bounded. A step has declared inputs, at most one class of external effect, a result contract and an optional verification requirement.
Anatomy#
{
class="tok-str">"id": class="tok-str">"s5",
class="tok-str">"kind": class="tok-str">"tool",
class="tok-str">"title": class="tok-str">"Apply the minimal fix to GuestCheckout",
class="tok-str">"inputs": { class="tok-str">"files": [class="tok-str">"src/checkout/guest.ts"], class="tok-str">"hypothesis": class="tok-str">"h1" },
class="tok-str">"tool": { class="tok-str">"name": class="tok-str">"files.write", class="tok-str">"idempotencyKey": class="tok-str">"s5-run_7c1a9d" },
class="tok-str">"effect_class": class="tok-str">"workspace_write",
class="tok-str">"budget": { class="tok-str">"wall_clock_seconds": class="tok-num">120, class="tok-str">"retries": class="tok-num">2 },
class="tok-str">"verify": { class="tok-str">"check": class="tok-str">"compiles" },
class="tok-str">"result": { class="tok-str">"status": class="tok-str">"completed", class="tok-str">"files_changed": class="tok-num">2, class="tok-str">"duration_ms": class="tok-num">38122 }
}Effect classes#
Parallelism#
Steps with no dependency edge between them and no conflicting effect class may run concurrently. The scheduler serializes anything touching the same resource, and never parallelizes steps with irreversible effects.
s1 ──┬──▶ s2 ──┐
├──▶ s3 ──┼──▶ s6 ──▶ s7 (verify) ──▶ s8 (approve)
└──▶ s4 ──┘
s5 (irreversible) ── serialized, never parallelLast updated 2026-09-06

