Gates
A [gate](../glossary.md#gate) is where the run waits for you to approve or reject.
A gate is where the run waits for you to approve or reject.
What it is
A gate is a place in the pipeline where the run waits for you. Nothing in the next step starts until you decide. The factory does not guess. It shows you what it has — the diff, the prompt, the findings — and it waits.
Approve means the run should continue at the next step. Reject means you do not want that result. A reject needs a note. If the gate sits in a loop that still has tries left, that note becomes feedback for the next try. If the gate is not in a loop, or the loop is on its last try, the run ends as needs attention, with your note kept for a requeue.
A gate is not a merge and not a push. Approving does not land the change in your default branch. Rejecting does not delete the branch. Delivery, if it runs later, still only writes a local commit. You merge. You push.
The demo pipeline has no gate by default. You add one when you want a person to look — before deliver, after a review, anywhere the order should stop.
What you see
On the Dashboard a waiting run is blocked: waiting for you, at a named gate, with a prompt. Waiting time does not count toward the run's limit. The rest of that factory can still run other work.
You see the same decision in the CLI and, if you use it, in the local MCP tools: approve and reject, matching the Dashboard. Reject without a note is refused. Approve can carry a note too; it is kept with the decision.
After you decide, the run is no longer waiting. Approve continues from the step after the gate. Reject in a loop starts the next try of that loop, with your note as feedback. Reject at the end of the line leaves the run in needs attention so you can requeue or dismiss.
You will not see the factory merge, open a pull request, or push because you approved. That is not what a gate does.
What you decide
You decide whether this result is good enough to continue. Read the prompt, the diff, and the evidence the run has so far. If you approve, you are saying the pipeline may go on, not that the product is shipped.
If you reject, you decide the note. The next try, or the next run after a requeue, will see it. Write what was wrong and what to do instead. An empty reject is not a decision the factory will take.
You decide where gates belong when you edit the pipeline. Too many gates and the factory is a queue of interruptions. None, and delivery is the first time you look. A gate before deliver is the usual "look at the diff" stop.
You decide nothing about publishing. A gate is a local yes or no on a local run.
Where to go next
Meet a gate on the run detail page as Waiting for you, in the CLI as approve and reject, and in kusaw.yaml as a gate entry in the pipeline.
- Run — the work that stops and continues
- Pipeline — where to put a gate
- Evidence — what to read before you decide
- Delivery — still your merge after an approve
- Local MCP server — the same approve and reject tools