Skip to content

A system that executes without verifying is unreliable by design — the only reliable shape is execute → validate → correct until an observable exit condition passes.

Principle

Closed Loop Systems Win

The structural shape

Open loops ship errors. Closed loops catch them at the boundary.

Open loop — fire and forget

→ → → ✗

1execute

2ship (no check)

Failure is invisible. Plausible output masks errors. They surface downstream — later, more expensive, harder to attribute.

Closed loop — verified

→ ⟲ ⟲ ✓

1execute

2validate

3correct

4repeat → exit ✓

Error has an address. Probabilistic components become a reliable system — the loop catches failure where it was created.

Agents are non-deterministic. The same prompt produces different outputs across runs. An open loop bets the system on a coin flip; a closed loop corrects until the coin lands the right way.

Same shape, three scales

The loop is fractal — it runs at task, plan, and pipeline.

Each scale has the same shape: execute, validate against external state, correct until exit.

Task

builder→Stop hook→retry (1/2/3)→exit 0

Plan

builder→validator vs spec→correction task→PASS

Pipeline

plan→build→test→review→all pass

Every phase validates the output of the prior phase. No scale trusts its predecessor on self-report.

What "verify" actually means

An agent grading itself is not a closed loop.

Not a loop

"Looks good to me — shipped."

Ground truth

agent's own assessment

Closed loop

"Stop hook ran. Disk matches filesExpected."

Ground truth

disk state · spec · test suite

Verification must be against observable, external state — disk contents, the spec, the test suite. A second agent prompt asking "did it work?" is just another probabilistic output — not a check.

How to measure the loop

Four KPIs quantify closed-loop health.

Optimize for movement, not a fixed threshold.

Size↑

Scale of work one agent can handle. Growing = more trust, larger task grants.

Attempts↓

Corrections per task. Shrinking = better context, less rework. Leading indicator of Streak collapse.

Streak↑

Consecutive one-shot successes without human intervention. Growing = the system is reliable.

Presence↓

Human involvement per shipped unit. Shrinking = autonomy increasing.

Optimize Size × Streak together — that's the compound metric. When Attempts starts creeping up, Streak has already begun to break before you notice.

The limit case — Size high, Attempts = 1, Streak unbroken, Presence near zero — is one-shot agentic coding. Drive the KPIs in the right direction. The loop is measured by its movement.

The discipline

Any step that ends without a check is a step you don't own.

Self-reported completion is a claim. External state is proof. Every execute must terminate at an observable exit condition — or it terminates at the user, as a bug.