Hand goaly a goal. It freezes what "done" means, then loops your agent against that bar until it's actually done — a bar the agent can't weaken to pass.
$ npm i -g goaly
The success check is hashed and frozen before the loop starts — the agent can't weaken its own test to finish.
Done means both turn: the frozen check passes and an independent, refute-first reviewer doesn't veto.
Anything that errors or returns garbage is a fail, never a false green. The control loop makes zero LLM calls.
A pure, zero-LLM reducer owns the policy; a thin driver does the work it asks for. Click any stage.
The full design — verify ladder, stuck detection, seams, resume — lives in ARCHITECTURE.md →
--candidates N races N isolated attempts per iteration and keeps the one that climbs furthest.--parallel-phases runs independent plan phases concurrently and re-verifies every merge.--worktree isolates the whole run in its own checkout — your main tree is never touched.--adversarial red-teams the contract before Seal and attacks every green before Sign-off.goaly ui is a local control center: a mission dashboard, a live run pipeline, a session inspector into the agent's turns, and the Seal in a browser review station.--resume.--sandbox jails the agent and the verify command, with per-seam network policy.--from-run starts a new, re-verified goal that knows what just happened.Every flag, default, and guarantee: the full reference →