Skip to content

Gates

Each workflow phase has exit gates. Every one of them is evaluated by the engine against real state — you don’t tick a box, and neither can an AI.

Gate Passes when Example
min_tasks(n) At least n tasks have been created The planning phase needs at least 1 task before work can start
all_tasks_done There is at least one task, and every task is done — an empty list does not pass Finish the execution phase before moving to review
no_blocked_tasks No task is blocked You can’t wrap up while something is stuck
artifact_exists(path) The named output path exists (a file or a directory) artifacts/report.md has to be written for it to count as delivered
min_decisions(n) At least n decisions were recorded after entering this phase The review phase needs at least 1 decision on record
manual_confirm(prompt) You personally press the confirm button in the app “Output has been inspected by a human” — an AI cannot press this for you
doctor_clean The workspace doctor reports no errors The handoff layer has to be healthy before the project can close out

If a gate has not passed, advance_phase returns an error. Forcing it through requires a reason, and is written to the ledger and the phase history as an OVERRIDE.

An AI has no permission to force a phase advance, and no permission to satisfy a manual_confirm gate. Both are permanently reserved for humans.