Answer — trust and control

Is there an AI coding agent that needs my approval before it merges anything?

Updated 21 August 2026

Yes, and the pattern has a name: a human-in-the-loop approval gate. Cloud coding agents are generally designed to end at a pull request rather than at a merge, which leaves the last step to a person. How firmly that holds varies by product. Some vendors document that their agent cannot approve or merge its own pull request, and others expect you to enforce it yourself. So the control worth relying on is your repository's own branch protection, because a rule on the branch binds every author equally, whether the author is a person or a machine. Keelen treats the gate as a per-project setting rather than a fixed limit: require plan approval before any code is written, merge by hand yourself, push a branch and open nothing at all, or allow gated auto-merge only after five verification gates pass.

Decide this per project rather than once. The right answer for a prototype is rarely the right answer for the repository that takes payments.

What to do, in order

  1. Decide what the gate is actually protecting

    Approval is expensive attention, so spend it where a mistake is expensive. Money, customer data, authentication, permissions, and anything that deletes or migrates records deserve a human. A copy change on a marketing page usually does not.

  2. Turn on branch protection, whatever agent you use

    This is the enforcement layer, and it is the only one that does not depend on a vendor keeping a promise. Protect the default branch, block direct pushes, and require a pull request. Every author then goes through the same door.

  3. Require the checks that actually run your tests

    A required status check means a red build blocks the merge button instead of merely colouring it. Without this an approval gate measures whether somebody clicked, not whether the code works.

  4. Require a review, and decide whose

    A required review is what makes approval mandatory rather than polite. If you are the only reviewer, say so honestly and budget the time. A gate nobody has time to operate becomes a queue.

  5. Then choose how much the agent may do on its own

    With the branch protected, the agent's own autonomy setting is a convenience rather than a risk boundary. Move it up or down per project as your confidence changes, and keep the branch rules where they are.

What a human-in-the-loop approval gate is

It is a control that stops generated code from reaching your main branch until a person approves it. The boundary is the merge, not the writing: the agent stays free to plan, write, and push to a branch, and a human decides whether that work lands. The pattern matters because the cost of a mistake is not evenly spread. Code on a branch is a draft, and code on the default branch is what your users run.

Do not rely on the vendor's promise, rely on the branch rule

Products differ in whether the merge boundary is a fixed property of the agent, a default you can switch off, or something you are simply expected to arrange yourself. Some are explicit in their documentation that the agent cannot approve or merge its own work. Others document the opposite for related actions, or say nothing at all. Two consequences follow. Check the vendor's own current documentation rather than a comparison article, because these designs change often. And put the guarantee where you control it, on the branch, so that changing tools later does not quietly change what is enforced.

On Keelen the gate is a setting, not a limitation

Autonomy is a per-project setting, not a personality. Plan review makes a human approve the plan before any code is written. Manual merge means Keelen opens the pull request and you click merge. Branch-only means it pushes a branch and never opens a pull request at all. Pause one project or the whole fleet whenever you want the keyboard back.

How the gates work

What stands in front of an auto-merge

Five gates stand between the loop and your main branch. New tests are applied without the implementation first and must fail, so tests born green are rejected. An independent reviewer that shares no context with the run that wrote the code reviews the diff. Your own test suite runs on a clean checkout. Nothing merges over a red required CI check. And a review window stands before gated auto-merge, which you can replace with plan-review sign-off, manual merge, or branch-only mode.

The security model

When Keelen is not the answer

  • You want an assistant that suggests code while you type. That is an editor tool, and the merge question does not arise there.
  • You want nothing autonomous touching the repository at all, even on a branch you never merge. No setting makes that true except not connecting the repository.
  • You want a system that ships with no human in the path and no gate of any kind. Keelen can auto-merge, but only behind verification gates, so it will hold work back rather than force it through.

Hand the work to a loop

Connect a repository, write what you want in plain language, and review the tested pull requests that come back.

FAQ

What is a human-in-the-loop approval gate?

It is a checkpoint where an autonomous agent pauses and waits for a person to confirm before it takes an action. For coding agents the checkpoint that matters most is the merge: the agent may plan, write, and open a pull request on its own, and a human decides whether that work reaches the main branch. It is also called a code-generation review gate.

Can an AI coding agent merge its own pull request?

Some can, if you configure them to. The safer framing is that your repository decides, not the agent: with branch protection and a required review on the default branch, nothing merges without the approval you specified, regardless of who or what opened the pull request.

Is branch protection enough on its own?

It is the enforcement, but it is not the judgement. Branch protection guarantees that somebody approved and that the required checks were green. It cannot tell you whether the tests were any good. Pair it with tests that fail before a change and pass after it, and with a review that did not come from the author.

Can I set different approval levels for different projects?

On Keelen, yes. Autonomy is a per-project setting, so one repository can require you to approve the plan before any code is written while another allows gated auto-merge. You can also pause one project or every project at any time.