OSuite OSuite.ai
Sign in Request access
← All posts
Engineering · June 10, 2026 · 7 min read

Why approval must bind to the action, not the text.

A human approval means nothing if a wrapper can rewrite the request after the click. Here is how OSuite makes approval enforceable.

E
Engineering
OSuite Platform
SeriesArchitecture Notes FrameworkPCAA, BAF TypeArchitecture

The most dangerous failure in agent governance is the one that looks like success: a reviewer approves a request, and a slightly different action runs.

It happens because most "approvals" bind to a string of text shown in a UI. Between the click and execution, a retry, a rewrite, or a tool wrapper can change what actually runs. The signature is valid; the consequence is not the one anyone agreed to.

Approval binds to canonical action

The canonical action object

OSuite collapses every form of a request — a shell command, an SDK call, a gateway POST — into one canonical, hashable action object. Approval binds to that fingerprint. If the consequence changes, the fingerprint changes, and the prior approval no longer applies.

Approval should bind to consequence, not to text a wrapper can rewrite.

Defending against drift

  • Semantic drift — two requests that read differently but do the same thing resolve to one object.
  • Approval drift — a re-issued or mutated action cannot inherit a stale approval.

The result is an approval that means what the reviewer thought it meant — and a proof bundle that lets anyone replay the decision later.

Continue Architecture Notes
Architecture Notes

How OSuite governs agent actions: PCAA, CAVA, BAF, and AREG.

June 29, 2026
Architecture Notes

We tested 6,000 agent actions. Runtime labels were not enough.

July 29, 2026

Approve high-risk AI work before it runs.

Request enterprise access and send your first governed decision today.

Request enterprise access Read the docs