Platform · trust

A record that answers the question asked

Every system has an audit log. Very few answer the question auditors actually ask, which is not what changed but why it changed, on whose authority, and what the state was immediately before. A log of field diffs cannot answer that, and with agents in the picture it becomes the difference between a defensible record and a misleading one.

audit_log · one agent actionappend only
event_idevt_01J9K4M2QX7T
agentaccounts-payable
modelclaude-opus-5 · 2026-07
authority_level2 (execute in policy)
triggerinbound email · [email protected]
source_recordsbill_88104, po_2291, vendor_412
extracted_fields11 of 11 · confidence 0.97
reasoning_summaryVendor matched on remit-to and tax ID. Line…
policy_appliedap_autopost_v4 · under $2,500, PO within 2%
policy_resultpass
approved_at2026-08-19T14:22:07Z
resulting_entryJE-88104 · debits 4,180.00 = credits 4,180.00
immutable_hashsha256:9f3c…a71e
Exportable, immutable after write, retained for the life of the tenant
Append-only, hash-chainedOne log for people and agentsReasoning stored, not just the diff

What it does

Six things, specifically.

Append-only by construction

Entries cannot be edited or deleted by any actor including our own engineers, and each is hash-chained to its predecessor so a gap or alteration is detectable rather than invisible.

One schema for every actor

A person, an agent, an API key, and a portal user produce entries in the same format. Auditors read one trail rather than correlating four.

The reasoning, not just the diff

For an automated action: the inputs it read, the policy that permitted it, the confidence, and the alternatives it rejected. That is what makes an automated decision reviewable.

The authority is named

Every entry carries the specific grant that permitted it, so the question of whether somebody was allowed to do this is answered by the record rather than by a separate permission report.

State reconstruction

Any record can be reconstructed as it stood at any past moment, which is how a question about what the balance looked like before an adjustment gets a direct answer.

Exportable and filterable

By actor, object, entity, period, or authority, exported in a format an auditor can work with directly rather than screenshots of a search screen.

Why field diffs are not enough

The standard log records that a user changed a field from one value to another at a timestamp. That is sufficient when the question is whether somebody tampered with a number. It is insufficient for every other question an auditor asks.

Was this person authorised to make that change at that value in that entity? What was the approval that permitted it? What did the record look like before the chain of changes started? A diff log answers none of those, so the answers are assembled by hand from permission exports, email threads, and memory.

An auditor rarely asks what changed. They ask on whose authority, and whether that authority was granted before or after the change.

Automated actions need more, not less

When a person codes an invoice, the reasoning lives in their head and the audit standard has always been to accept that. When an agent codes an invoice, there is no head, and a log entry saying an agent set the account to 6400 is not a record of a decision — it is a record of an outcome.

So every automated action stores what it read, which policy authorised it, what confidence it assigned, and what it considered and rejected. A reviewer can evaluate the decision rather than only the result, which is the only basis on which automation becomes auditable at all.

Immutability that means something

Append-only is a claim that has to survive the question of who can bypass it. Ours is enforced at the database level with no update or delete path exposed to application code, and each entry hash-chains to the previous one so removal or alteration breaks the chain.

Our own engineers cannot edit it either. Break-glass production access is itself logged into the same trail, time-bound, dual-approved, and reported to you. A control that exempts the vendor is not a control.

Retention

Seven years by default, longer on request, with export at any time. The log survives the deletion of the records it describes, because the question of who deleted something is precisely the one you need answered after it is gone.

Limits

Where this does not help.

It is large

A full-fidelity trail of every actor, including reasoning on automated actions, is a substantial amount of data. That is a cost we accept rather than sample away.

It cannot audit systems we do not run

Changes made directly in a connected system are recorded as observed at sync, not as authored. Their own log remains authoritative for their own actions.

Break-glass exists and is logged

A small number of our engineers can reach production under time-bound, dual-approved, reported access. Claiming nobody can would be untrue.

Questions

What people ask.

Can anyone edit the log?
No actor, including our engineers, has an update or delete path. Entries are hash-chained so alteration or removal is detectable rather than silent.
What is recorded for an agent action?
The inputs read, the policy that authorised it, the confidence assigned, and the alternatives rejected — enough to evaluate the decision rather than only its outcome.
How long is it retained?
Seven years by default, longer on request, and exportable at any time. It outlives the records it describes.
Can auditors get direct access?
Yes, as a scoped, expiring, read-only actor whose own access is logged. That is usually faster than fielding evidence requests.
Does it cover changes made in connected systems?
Those are recorded as observed at sync rather than as authored. The source system’s own log stays authoritative for actions taken inside it.

Bring us your last audit request list.

We will show you exactly what the trail returns for each item on it.