Default-deny is enforced by a pipeline, not a promise. Every side effect —
an email sent, an invoice posted, a record updated — transits all five gates in order.
Each gate can only pass or refuse; none can be skipped.
G0Ingress
Every request enters through one door, where identity, tenant, and intent
are cryptographically bound before any model sees it. There is no side
entrance — no path to an agent that doesn't pass G0.
Spoofed requests, cross-tenant access, and anything arriving outside the
authenticated channel. Unbound traffic is dropped, not processed.
G1Policy
Deterministic rules — evaluated as code, not judged by a model — decide what this
agent may attempt against this system. Default-deny: a rule must exist,
or the action doesn't. Every rule change is versioned and itself logged.
The entire class of "the AI did something nobody anticipated." Unanticipated
equals unlisted equals denied.
G2Approval
Actions you've flagged as consequential — large payments, contract sends,
customer-visible changes — pause for a named human approver.
Well-tuned deployments keep this under 5% of all transits: rare enough that
approvals get real attention instead of rubber stamps.
Automation of the decisions that should never be automated. And approval fatigue —
the quiet failure mode where humans stop reading what they sign.
G3Sandbox
The action executes in isolation first, and its output is verified against a
declared contract — the machine-checkable definition of what a
correct result looks like. Only verified output moves forward; failures roll back
without a trace on your systems.
Hallucinated results reaching production. A wrong total, a malformed record, an
off-contract reply — caught in isolation, not in front of your customer.
G4Commit
The verified result lands in your systems and a signed, hash-chained record
lands in the ledger simultaneously. G4 is also the only billable event — the platform's
economics are aligned with actions that verified, because those are the only ones that pay.
Untraceable actions. If it isn't in the ledger, it didn't commit; if it committed,
it's in the ledger. There is no third state.