Export the bundle
Organisation settings writes out the sealed records with their digests, chain positions, and links, as a file you keep.
Every governed action is sealed into a signed record and linked into a hash chain, so you can export the evidence and check it yourself.
An audit log tells you something happened. This is a structured document naming the person, the agent, the model that actually served the request, the policy decision, the human who approved it, and every side effect, sealed so later edits are detectable.
Cryptographically sealed (HMAC-SHA256)
sha256: 4c1f8b0a97d2e6135ba0c8f47e91d3aa2c65b8104fd7e39c
outlook.send_email
write
approved by usr_1042
Sample record with representative values. The sections and field names are the ones Renly writes.
Auditors and incident reviewers ask the same things every time. Renly writes the answers at the moment of the action rather than reconstructing them later from logs.
A record that can be quietly edited or deleted is not evidence. Each sealed record carries the digest of the one before it, so altering or removing any record breaks every link that follows it. You do not have to take our word that nothing was changed, the arithmetic settles it.
Governance you can only confirm by asking the vendor is not governance. The format, the canonicalisation, and the algorithm are published, so your own team or your auditor can run the check.
Organisation settings writes out the sealed records with their digests, chain positions, and links, as a file you keep.
Canonical JSON with sorted keys, SHA-256 for content, keyed MAC for the seal. The reference implementation is Apache-2.0 and has no dependencies.
Verification returns the count of intact records, or the first sequence number where the chain stops holding. There is no partial credit.
Most approval flows record that a person clicked yes. Renly binds the approval to a digest of the exact proposal, with a scope and an expiry. If anything about the action changes between the approval and the execution, coverage fails and the action does not run.
The user approved sending an invoice reminder to a named recipient. At execution the arguments hash to the same digest that was approved.
covered: true
Same tool, same session, one field different. The digest no longer matches the approved proposal, so the gate refuses it rather than assuming consent carried over.
covered: false, reason args_mismatch
Standing approvals carry a match rule, an expiry, a use count, and a revocation, so authority that quietly widens over time is visible rather than assumed. The rules are written up in the Action Approval Attestation.
The failure mode of most AI governance is quiet degradation: the checking layer goes down and the requests sail through unchecked. Renly treats an unavailable evidence pipeline as a reason to stop.
A use case can be flagged so that side effecting actions are blocked whenever the evidence pipeline cannot sign, whatever the enforcement mode says.
Approval gates and write controls block rather than bypass when they cannot evaluate. This holds on every plan.
When semantic evaluation is not confident enough, the request goes to a human reviewer instead of resolving itself in the agent's favour.
Each organisation sets the highest autonomy any agent may reach, from observe through suggest and approve to auto. An agent cannot exceed the ceiling by asking.
Which providers and tiers may serve requests is an organisation setting, and the model that actually answered is recorded, not assumed.
Policies, evaluations, evidence, and chains are scoped to one organisation. Each organisation has its own chain, starting from its own genesis.
Policies, approvals, and the evidence chain sit in organisation settings, with verification and export as buttons rather than a support request.
Evidence records
Every governed AI action is captured as a signed attestation and linked into a per-organisation SHA-256 hash chain.
| Action | Gate | Model | Seq | Digest |
|---|---|---|---|---|
| outlook.send_email | approved | claude-opus-5 | 4,182 | 4c1f8b0a… |
| jira.create_issue | approved | claude-opus-5 | 4,181 | b1087a2d… |
| sharepoint.write_file | escalated | gpt-5 | 4,180 | 2e77df41… |
| d365.update_record | blocked | claude-opus-5 | 4,179 | 7a30c9b6… |
Illustration of the governance area in organisation settings. Values are representative.
Attribution, approval gates, and the sealed audit trail are not an upsell. They are how the runtime works on every plan.
Governed is an unregulated word, so we wrote down what it has to mean and made the specifications open under Apache-2.0, with a reference implementation and a conformance suite. Renly states Level 3 conformance to all three, using a keyed MAC rather than public key signatures.
action-provenance/1.0
What the agent did, for whom, with which model, and what happened.
action-approval/1.0
What exactly a human permitted, for how long, and how to prove it.
governed-runtime/1.0
Twelve testable guarantees a runtime must meet to call itself governed.
It is a fair question, and it is the one Renly is built to answer. Attribution, approval gates, and the sealed chain are there from your first login. Bring us the evidence question your auditor or your board is asking.
Talk to Sales Read the Governed Runtime Profile