See it govern

Live demo · runs in your browser · no network

One attempt allowed. One refused. One held for approval.

  1. Govern
  2. Run
  3. Replay
  4. Verify

Every artifact below is produced by the same kernel modules that run in the Aarmos runtime. Press 1 2 3 4 5 6 for individual scenarios or A for all six. Then head to /trust/verify to replay and verify offline.

1

Watch it govern

What does the gate actually decide?

Scenario 1 · not run

Safe read

The assistant asks to READ a policy document. The rule allows read, the tenant matches, and the device carries a hardware attestation. Kernel returns ALLOW and signs the receipt.

principal
agent://ops-assistant@acme-prod
resource
doc://policies/handbook.md
requested
read

Press 1 or click Run to gate this request.

Scenario 2 · not run

High-risk write

Same agent now tries to WRITE to the production billing table. The rule ships with a `require_approval` pre-effect obligation. Approval fails; O3 aborts the transaction BEFORE any bytes are written. O3.a still fires the notify obligation so SIEM sees the attempt.

principal
agent://ops-assistant@acme-prod
resource
table://billing.invoices
requested
write

Press 2 or click Run to gate this request.

Scenario 3 · not run

Additional authority required

A support agent tries to refund a customer more than it may move on its own. Aarmos does not throw the work away: it records what was attempted, names the authority that is missing, and lets the same attempt run again once that authority is held.

principal
agent://support-copilot@acme-prod
resource
payment://refunds/2026-4482
requested
transact

Press 3 or click Run to gate this request.

2

Edge cases

What happens when someone probes the boundary?

Scenario 4 · not run

Cross-tenant delegate

The agent tries to spawn a child agent in a DIFFERENT tenant (contoso-sandbox) and grants it `transact` — a verb the parent doesn't hold. The kernel checks the tenant boundary first, then attenuation. Both fail; no policy can override.

principal
agent://ops-assistant@acme-prod
resource
agent://child@contoso-sandbox
requested
read, write, transact

Press 4 or click Run to gate this request.

Scenario 5 · not run

Cross-tenant probe

A same-tenant caller (acme-prod) aims a READ at a resource tagged contoso-secure. The tenant-isolation check fires BEFORE any policy evaluates: attested target tenants can only be reached by matching principals. The kernel denies with ERR_TENANT_MISMATCH, the counter increments on the operator dashboard, and no bytes are returned.

principal
agent://ops-assistant@acme-prod
resource
doc://policies/contoso-secure/roadmap.md
requested
read

Press 5 or click Run to gate this request.

Scenario 6 · not run

Content rule block (inline)

The agent tries to READ a customer support ticket whose body contains a raw SSN. The `dlp_scan` inline directive scans the structured payload during the inline phase, matches the SSN pattern with `action: block`, and drops the payload. The kernel records the inline failure in the receipt; no bytes leave the gate. Because dlp_scan runs AFTER any pre-effect reservation, the demo also fires the metering refund path so no budget is burned.

principal
agent://support-copilot@acme-prod
resource
ticket://support/2026-4482
requested
read

Press 6 or click Run to gate this request.

3

Verify it yourself

Do I have to take your word for it?

Take any receipt above to /trust/verify and check it offline against the published AVAR rules.

Read the underlying rules in the ASP spec. Everything here uses the shipped kernel — no fixtures, no mocks.