Engineering Meta March 8, 2026 5 min read

We Shipped Our Blog Launch Through Gate. Here's What the Approval Queue Looked Like.

✓ This post was intent int_d4a2b9 · approved · executed · audit trail at /dashboard

Three blog posts. Four AI agents. One approval queue. Zero posts went live until a human said so.

That's the short version. Here's what the AI agent content publishing workflow actually looked like when we ran our own content launch through Zehrava Gate.


What We Did

We needed three SEO posts for the Gate launch. Rather than write them manually, we spun up four sub-agents simultaneously:

After the drafts landed, a fifth agent — agent-publisher — ran an SEO pass using the keyword map, built the styled HTML pages, and submitted all three to Gate using the blog-publish policy.

The posts:

None of them published automatically. They sat in the approval queue until we reviewed them.


The blog-publish Policy

Gate is policy-driven. Every agent action goes through a policy that defines what's allowed, what requires approval, and what gets blocked. Here's the policy the publisher agent used:

id: blog-publish
destinations: [blog.publish]
require_approval: always
expiry_minutes: 1440
notes: "All blog content must be reviewed before publishing to zehrava.com/blog"

The key: require_approval: always. The agent can propose. It cannot deliver without a human in the loop. gate.propose() submits the intent. gate.execute() issues the execution order after a human approves — one-time token. Once it fires, the intent closes.


What the Approval Queue Looked Like

After the publisher agent finished, this is what was waiting in the Gate dashboard:

Pending Approvals (3)
──────────────────────────────────────────────────────────────
int_4a3b5e  │ Why AI Agents Need a Commit Checkpoint    ⏳ Pending
int_3d1186  │ 847 Records, No Audit Trail               ⏳ Pending
int_478ac5  │ Policy-as-YAML: Agent Governance          ⏳ Pending
──────────────────────────────────────────────────────────────

Each intent had the full HTML payload, target keyword, internal links, and destination path. We read all three. Approved. Published. Total review time: about ten minutes across three posts. That's the cost of the human checkpoint.


Same System, Any Write Type

Gate doesn't know these were blog posts. It doesn't have a blog mode. The same dashboard where we approved these intents is where we approve Salesforce record imports, support email drafts, and finance exports. The payload is different every time. The pipeline is identical:

  1. Agent calls gate.propose()
  2. Policy evaluates destination and payload
  3. Intent lands in the queue
  4. Human reviews and approves
  5. gate.execute() fires — once

A blog post going through Gate looks the same to the system as a Stripe refund request going through Gate. Same approval UX. Same audit log. Same policy enforcement. The AI agent content publishing workflow is one instance of a broader pattern.

That's what "framework-agnostic" means in practice. Gate sits between your agents and production, regardless of what your agents are doing.


Governance as Infrastructure

Most teams bolt on approval flows after something goes wrong. An agent writes to the wrong CRM record. An email goes to the full list. A post publishes before it's ready. Then they add a check. The problem: every new agent action needs its own check. You end up with a patchwork of custom guards — each one fragile, none of them consistent.

Gate flips the model. Define policies once. Every agent action that matches a destination goes through the same checkpoint automatically. The agent doesn't need to know your approval requirements — it calls gate.propose(). Gate handles the rest.

Governance becomes infrastructure. Not a feature you add. Not a wrapper you bolt on. The checkpoint is in the path, and everything passes through it.


This Post Also Went Through Gate

This post — the one you're reading — was submitted as int_d4a2b9 before it went live. Same policy. Same queue. Same execution flow. We approved it. You're reading proof.

Add a commit checkpoint to your agent stack.

MIT license. Self-hostable. Framework-agnostic. Takes under an hour to wrap your first agent.

Get started free →