Skip to content

What loopexec does not do

Serious tools say no clearly. A boundary you can read is worth more than a feature you can’t trust.

loopexec is a deterministic runtime for loop engineering. It governs how work is executed, recorded, and resumed: it runs a bounded loop that halts on a computed halt reason, and it leaves a receipt. That is the whole job. Everything below is outside it - on purpose.

These are category boundaries, not a roadmap. They hold at every status.

loopexec is notBecauseWho owns that
an AI model or agentit has no weights and makes no edits; it runs an external agent and governs the loop around it (the model lives in your --exec - see Models and Agents)your model / agent
an agent framework or multi-agent chatroomit orchestrates no personas; one executor runs, with at most one advisory cross-lab judge that can veto a green iteration but never promote a red onerole governance (Musketeer)
a prompt-automation toolit does not author, template, or tune promptsyou
a CI replacementCI gates a push; loopexec runs a bounded check_fixpoint loop until a check passes, a guard trips, a budget is spent, or a human is requiredyour CI
a task runnermake, just, and npm run a DAG to completion; loopexec iterates until an external check reaches fixpoint and emits a computed halt reasonmake / just / npm
a state definition systemit reads state from disk and the CLI; it never defines the schemaSMALL
the application oracleit runs YOUR check and records the exit code; it never decides application correctnessyour external check

The most important “no” is the oracle boundary. The check MUST be an external process returning an exit code, independent of the agent. The agent’s self-assessment is not a check. loopexec never grades the work; your external process does. A loop runs until that check passes - never because an agent reports it is done.

When the check goes green, the contract requires guards to be evaluated first: guards dominate success. A suite that passed only because a test was weakened is specified to halt as a guard reason, not as success. loopexec does not decide what “correct” means. It refuses to let a green verdict stand on a hollowed-out check.

Three things loopexec will not do for you even after every mechanism in the spec ships. These are permanent, not pending.

The boundaries above are permanent and true today. As of v0.2.0 the engine is complete through Slice 7, so the mechanisms that enforce them ship; a few named sub-parts of those shipped cores stay Planned, and the docs render that distinction rather than hide it.

CapabilityStatus
CLI contract: --json, stable exit codes, deterministic outputShipped
init / status / check / step commandsShipped
run as a real iterating loop, computed halt reasons, typed receiptShipped
probe-check confidence boundShipped (core) - perturbation + in-loop monitor Planned
doctor precondition gate, isolation preflightShipped (core) - hermeticity + adequacy coverage-delta tier Planned (mutation canary ships)
Metric-integrity gate (guards dominate success)Shipped (core) - assertion-count / manifest-hash / coverage-floor Planned
Two-zone isolation + per-run minted keyShipped (core) - container engine / egress proxy / key API are operator hooks
replay / reexecute, attest / ackShipped
escalate / watch + comprehension gateShipped (core) - github/slack channels + kill-PID actuator Planned

Where the limits above say loopexec “is specified to” halt or gate, those mechanisms ship as of v0.2.0 - the probe-check confidence bound, the feasibility split in explain-halt, and the comprehension gate are all in the binary, with named sub-parts still Planned. The full capability matrix is normative in SPEC section 11; the binary tests and these pages both reference it.

Read next: Halt Reasons for the computed stop conditions, Determinism for how the check is held to a confidence bound, and Loop Engineering for the discipline this runtime enforces.