DEV Community

Cover image for Merge, Don't Ship: Approval Gates for Agents
Max Quimby
Max Quimby

Posted on Originally published at agentconn.com

Merge, Don't Ship: Approval Gates for Agents

Merge, Don't Ship: Approval Gates for Agents

The operator conversation about production agents has shifted. Six months ago, the question was should agents have human approval gates? Today, the question is where exactly does the gate go?

📖 Read the full version with charts and embedded sources on AgentConn →

The answer emerging from production teams is deceptively simple: let agents merge freely, but gate the ship. Not more gates. Fewer gates, at higher stakes, in the right places.

Michael J. Black on X — The more you delegate, the more your fundamentals matter

View original post on X →

Michael J. Black put the underlying principle cleanly: "The more you delegate, the more your fundamentals matter, because you cannot supervise what you do not understand." That is not a warning against delegation. It is a design constraint for the approval layer. If your gate requires understanding the change to be useful, and you have designed your system so reviewers cannot understand the change, your gate is theater.

Anthropic's own data makes the theater problem concrete. When they studied Claude Code's permission model, they found that users accept 93% of permission prompts. That is not evidence that 93% of agent actions are safe. It is evidence that per-action approval does not work — the approval rate is so high that the gate has become a speed bump, not a checkpoint. Anthropic's response was auto mode: a classifier that evaluates each tool call and only surfaces the ones that actually warrant human attention.

Boris Cherny on X — Skip all permissions for Claude Cowork, the most requested feature

View original post on X →

Boris Cherny, head of Claude Code at Anthropic, tweeted about the demand signal: "Skip all permissions" was the most-requested feature. That demand tells you everything about where the old model failed. When your users' top request is "stop asking me," your gate is not providing oversight — it is providing friction.

The lesson is not "remove all gates." The lesson is that a gate on every action is functionally equivalent to no gate at all, because approval fatigue degrades the human reviewer into a rubber stamp.

The God Agent Is Dead. Long Live Scoped Agents.

Before you can design a useful approval gate, you have to fix what sits behind it. And the most common thing sitting behind it is a god agent — a single agent with 20, 30, or 50 tools that tries to do everything.

Dev.to article — The God Agent Mistake

View original post on Dev.to →

The God Agent anti-pattern is the most documented failure mode in production agent architecture. The failure mechanism is straightforward: as tool count increases, tool-selection accuracy drops. With 5 tools, the model picks correctly almost every time. At 20 tools, accuracy slides to the low 80s. At 50 tools, accuracy falls below levels where production systems can function reliably.

Sohail Shaikh and Ankush Rastogi quantified this at AI Engineer World's Fair 2026 in their talk "The 100-Tool Agent Is a Trap." Their data showed tool-selection accuracy plummeting from 78% at 10 tools to 40% at 100 tools. Their proposed fix — semantic routing with just-in-time context — is clever infrastructure, but the first-order fix is simpler: stop building god agents.

Pykero Agency's analysis found the same pattern from the operator side: the most dependable production agents use 2–5 tools scoped to a single job. Past that range, tool-selection accuracy drops and failures get harder to isolate. This is not a theoretical concern — it is the most common source of production agent incidents after prompt injection.

The 5–8 tool plateau: Multiple independent analyses converge on the same number. Production agents reliably select the right tool when they have 5–8 options. Beyond that, routing or splitting into sub-agents is not an optimization — it is a reliability requirement. Five well-scoped tools beat 25 sprawling ones every time.

The connection to approval gates is direct. A god agent with 50 tools generates a firehose of heterogeneous actions — some safe, some destructive — and a human reviewer has no way to develop a mental model of what "normal" looks like. A scoped agent with 4 tools generates a predictable stream of actions. A reviewer can spot the anomaly because they understand the baseline.

The move toward scoped, skilled agents is accelerating. Anthropic recently donated Agent Skills — the pattern that lets agents load domain-specific capabilities on demand rather than carrying every tool at all times — to the Agentic AI Foundation.

Boris Cherny on X — Agent Skills donated to Agentic AI Foundation

View original post on X →

This is why the article on AgentConn about the harness guardrail stack matters for this conversation: the guardrail layer works only when the scope of what it guards is narrow enough to reason about.

The Merge Gate / Ship Gate Split

The most important architectural pattern in production agent deployment right now has nothing to do with AI. It is a DevOps pattern that predates LLMs by a decade: decouple the merge from the ship.

Matty Stratton on Dev.to — Your Agent Didn't Break Prod. Your Pipeline Did.

View original post on Dev.to →

Matty Stratton's "Your Agent Didn't Break Prod. Your Pipeline Did" is the clearest articulation of this principle. His argument: if your team cannot answer "who decided to release this?" for a given deploy, then an agent that opens PRs quickly is not your biggest problem. Your pipeline is. PRs merge to main, but main is not what is live. A separate release step promotes main to production, and that promotion only happens on explicit approval.

This is the merge-gate / ship-gate split:

Merge gate (automated, deterministic):

  • Schema validation: does the PR change tool definitions, permissions, or scopes?
  • Blast-radius analysis: what can this change affect in production?
  • Eval suite: does the candidate agent pass regression tests?
  • Static checks: no LLM calls, no network, no agent execution

Ship gate (human, judgment-based):

  • A named person approves the promotion to production
  • Approval is tied to a specific commit SHA — not a branch, not a "latest"
  • The approval expires (24 hours for sensitive changes, 7 days for routine)
  • The ship decision is logged for audit

ThreeMoonsLab agents-shipgate GitHub repo

View repo on GitHub →

ThreeMoonsLab's agents-shipgate is an open-source implementation of the merge gate half. It issues a deterministic verdict when a PR changes an agent's tools or permissions — reviewing schemas, scopes, approval policies, idempotency, and blast radius. Crucially, it runs with no agent execution, no LLM calls, no network connections. The gate is static analysis, not another AI judgment call.

Practitioner pattern: the three-layer gate

  1. Merge gate — deterministic checks (schema, scope, blast radius). Automated. Agents-shipgate, custom CI checks, or eval harness.
  2. Ship gate — human approval for production promotion. Tied to a commit SHA with expiry. This is the "who decided to release this?" checkpoint.
  3. Runtime gate — a classifier (like Anthropic's auto-mode classifier) that evaluates individual tool calls during execution, surfacing only the high-risk ones for human review.

Most teams get into trouble by collapsing all three into a single "approve every action" prompt. That is what produces the 93% rubber-stamp rate.

The AgentOps Accelerator documentation from Microsoft Azure describes a similar two-stage split: feature PRs run an eval against the candidate agent before merge, and a later release-to-main PR acts as a manual approval step with static checks only. Deployment happens after that merge.

Approval Fatigue: The Gate That Approves Everything Protects Nothing

Anthropic Research — Claude Code Auto Mode

Read the full research post on Anthropic →

Let us return to the 93% number, because it reveals something deeper than a UX problem. And Anthropic is not the only company that noticed.

Sam Altman on X — Codex approval framework

View original post on X →

Sam Altman described the same design principle for Codex: "move quickly on routine work while stopping for review when the risk changes." Sandboxing, approvals, and network policies — not a blanket approval prompt on every action. The two largest agent-tooling companies independently arrived at the same conclusion: gate by risk, not by action count.

Anthropic's auto-mode research describes the failure mode precisely: "Over time, repeated prompts lead to approval fatigue, where people stop paying close attention to what they're approving." Before auto mode, Claude Code users had two workarounds: a sandbox (limiting what the agent could do) or the --dangerously-skip-permissions flag (which disables all prompts entirely). The naming of that flag is itself an admission: the team knew that per-action approval was so burdensome that users would seek an unsafe binary escape.

Sachin Malhotra from Anthropic expanded on this at AI Engineer World's Fair 2026 in "Give the Agent a Budget, Not a Token." His framework replaces per-action approval with asymmetric permissions, replenishing rate limits, aggregate monitoring, and trusted identity. The key insight: bound the agent's autonomy budget, not its individual actions. Let it spend that budget on routine operations. Gate only the operations that exceed the budget.

The habituation curve research models this formally: permission prompt approval rates follow a predictable decay curve. In the first hour, reviewers examine prompts carefully. By day three, they are clicking approve reflexively. The research suggests that any gate shown more than roughly 15 times per session will converge toward automatic approval regardless of content.

⚠️ Contrarian Corner: Most approval gates are security theater. The evidence is clear: 93% auto-approve rate, documented habituation curves, and the existence of --dangerously-skip-permissions as a widely-used escape hatch. If your approval gate fires on every file write and every shell command, you do not have oversight — you have a speed bump that trained your reviewers to stop reading. The discipline is not "more gates." It is fewer gates that actually get read. Gate the irreversible. Auto-approve the routine. And stop pretending that a prompt shown 50 times a day is providing meaningful human oversight.

The Agents-Propose-Humans-Authorize Model

The Zof.ai analysis crystallizes the emerging operating model into a formal pattern: agents propose, humans authorize, and a separate executor runs the authorized action.

The architecture has four components:

  1. Intent record — the agent creates an immutable description of what it wants to do
  2. Policy check — an independent system (not the agent, not another LLM) evaluates the intent against rules: allow, escalate, or block
  3. Human authorization — for escalated actions, a named person reviews and signs off, with single-use authorization tied to the specific intent record
  4. Executor — a separate component, not the agent, runs the authorized action

The critical detail: the agent never holds deployment credentials. The pipeline issues credentials per run, scoped to the authorized action. This means prompt injection cannot escalate to production access even if it compromises the agent's context — the agent has nothing to escalate with.

HackerNoon's coverage of the same pattern emphasizes the scope constraint: "Scope each agent to the smallest set of tools its role requires." This is the tool-minimalism principle applied to security, not just reliability. A scoped agent with 4 tools has 4 possible attack surfaces. A god agent with 40 tools has 40.

We covered the permission-defaults side of this in our piece on leaked secrets from agent defaults — the same principle applies. Default-open permissions combined with a rubber-stamp approval gate is how agents get access they should never have had. And the incidents keep happening: an agent with a valid key deleted production not because it was malicious, but because nothing between the agent and the destructive action was actually checking.

What Practitioners Should Do

The conversation about production agent oversight has matured past "should we have gates?" into specific architectural decisions. Here is what the evidence supports.

💡 The approval-gate discipline — a practitioner checklist:

Tool count:

  • Audit your agent's tool count. If it exceeds 8, measure tool-selection accuracy in your traces before adding more.
  • If accuracy drops, split into scoped sub-agents with 3–5 tools each, coordinated by a router.
  • Remove tools that are used less than 5% of the time. The long tail of unused tools is pure noise in the context window.

Gate architecture:

  • Separate merge from ship. Agents can merge PRs (with automated merge-gate checks). Production promotion is a distinct event with a named approver.
  • Tie approval to a specific commit SHA with an expiry window. Stale approvals are a vector for shipping unreviewed changes.
  • Use deterministic gates (schema validation, blast-radius checks) at merge time. Reserve human judgment for the ship decision.

Approval hygiene:

  • If your gate fires more than 15 times per session, it is producing approval fatigue. Redesign it.
  • Gate irreversible actions: production deploys, data deletion, external communications, credential changes.
  • Auto-approve routine operations: file reads, non-destructive queries, internal logging.
  • Log every approval decision. "Who approved this?" should have an answer for every production change.

The Microsoft AgentOps guidance puts it in pipeline terms: the agent owns the feature branch. CI owns the merge gate. A human owns the release. Three actors, three gates, three different kinds of checks.

Matty Stratton's parting observation deserves the last word: "Gated promotions, expand/contract migrations, decoupling deploy from release: this is stuff engineering orgs have known for well over a decade." Agents did not invent a new problem. They accelerated an old one. The teams that already had deployment discipline are adapting fine. The teams that relied on a human reviewer catching problems informally — those are the ones discovering that a 93% approval rate means their last line of defense was never a line of defense at all.

The approval gate that works is not the one you click through 50 times a day. It is the one that fires once, at the moment of maximum consequence, and demands your full attention because it earned it.


Originally published at AgentConn

Top comments (0)