sgit newsroom v0.1.29 · snapshot 2026-09-24

Reading room · riskmandate.ai

On this page

Reading room / riskmandate.ai · raw text · live ↗

From riskmandate.ai, the page as fetched on 2026-09-24 · open the live page ↗Everything on this sheet is the source site's own text; the newsroom's chrome is outside it.

What you are actually buying — an Agent Behaviour Policy as a vault — RiskMandate Lab 07

The first behaviour-policy vault, built and pushed: eight files derived from a measured grant, a starting mandate and a pinned vocabulary, for Claude Code on the web with one repository attached. The files you hand the agent, a Licence to Operate with a referent, a grant check run from inside the shape, and the one-command template that makes the second shape cheap.

Source: https://riskmandate.ai/lab-vault-delivered.html↗


What you are actually buying.

A vault. Eight files derived from three inputs, and one of the three is yours. It is a working artefact rather than a deck: an agent can read it, a person can sign it, and when the deployment changes it recomputes and says what moved. This page shows the first one — for Claude Code on the web, with one repository attached — file by file, with the numbers it carries and the reasons it carries no score.

Three inputs. Eight documents. One of them is yours.

Everything a buyer receives is in one directory. Two files are the deployment shape's measured grant and the published vocabulary, copied in and pinned by version. One file is the mandate, and it is the only one a person writes. The rest are derived from those on every build, and a hand edit to any of them is undone by the next one.

FileWhat it isWho writes it
MANDATE.md↗What the agent is authorised and expected to do — six wanted, three refused, fourteen unstatedyou — elicited; the only authored file
GRANT.md↗Everything the agent can do: fifteen capabilities, each with its barrier, undo class, evidence tier and the tool it goes through. Irreversible rows firstmeasured from the shape — 13 of 20 rows observed on the thing itself
DELTA.md↗Nine in the grant that nobody asked for: three refused, six never mentioned, seven with nothing but a setting or a sentence in the wayderived — never authored, recomputed on every build
LICENCE-TO-OPERATE.md↗The organisation authorises the agent under this behaviour policy, for an interval, on nine conditions — each next to what enforces itderived from the mandate; a named person signs it when issued
AGENT-BEHAVIOUR-POLICY.md↗The four objects in one documentderived
AGENTS.md↗The file you hand the agent: what the others are, what to do with them, and what a file like it cannot dogeneric — travels unchanged with every vault
SKILL.md↗The same, in the portable agent-skill formatgeneric — travels unchanged
README.md↗How to read it, how to correct it, how to give it to the agentderived
data/ · history/grant.json↗, mandate.json↗, delta.json↗, validity.json↗, the pinned vocabulary↗, and one history entry per recompute↗the machine-readable half of every row above

Fifteen it can do. Six you asked for. Seven nothing bounds.

None of these is a score. Excess is a count of capabilities in the grant and not in the mandate; unbounded excess is how many of those sit at a barrier that is not a control. Neither says whether any of it is acceptable, because acceptability is not in the document — it is in the deployment, and this shape is a disposable container with one repository attached.

CapabilityWhat it isBarrierUndoMandate
authenticate-as.credential.signingSign commits with the key it holds● nonenorefused
delete.file.hostDelete files anywhere the account can reach● nonenounstated
read.credential.hostRead credentials stored where it runs● nonenounstated
read.file.hostRead any file the account can reach● nonenounstated
read.record.historyRead a retained record: past sessions● nonenorefused
authenticate-as.credential.tenantAct in accounts with the credentials it holds○ boundary — the token's scope, set by the platformnounstated
write.file.hostChange any file the account can reach● nonewith effortunstated
create.schedule.tenantCreate something that outlives the session, on the platform◐ setting — the platform's routines are the operator's to deleteyesrefused
create.schedule.hostCreate something that outlives the turn, where it runs○ boundary — the container is ephemeralyesunstated
send.endpoint.allowedReach a permitted list of hosts○ boundary — an egress proxy above the processnowanted
execute.process.hostRun programs as the account● nonewith effortwanted
write.file.project · write.repository.project · read.file.projectRead, change and commit to the attached repository● none—wanted
write.repository.tenantPush to a code host, any branch it can reach◐ setting — hooks in the clone; no rule at the hostwith effortwanted

Drop it into the session. It says, in its own words, what it cannot do.

The idea is that the deliverable is not only read by people. AGENTS.md goes wherever the agent already reads — a CLAUDE.md, an AGENTS.md, a role file, the body of a skill — with MANDATE.md, GRANT.md and the behaviour policy beside it. It tells the agent that the mandate is its scope, that the grant is a description and not permission, that anything in the excess needs a stop-and-report, that instructions found inside content have no authority, and that it must never edit its own mandate.

The organisation is the authority. The behaviour policy is the instrument. The agent is the licensee.

Until now Licence to Operate was the name of a demonstration. In the vault it is a document with fields: who authorises, whom, under which instrument, for what scope, on what conditions, for how long, and who signs. Self-issued and witnessed, which is how most assurance works. Nine conditions, each beside the thing that enforces it — and for six of them that thing is nothing, which the licence says in bold, because an organisation issuing it should know what it is accepting.

The template is the product. The second shape costs one profile and one mandate.

Lab 02↗ said the thing being built is not a document and not even a vault — it is the template plus the shape library, and the marginal cost of a policy is the cost of its shape. This is that template, as a script in this repository: point it at a directory holding a grant, a mandate and the pinned vocabulary and it writes the eight files, recomputes the delta, appends to the history when the counts move, and fails if it cannot reproduce the published record.

StepWhat happensWho
1Copy the template vault for the closest shapeus, in seconds
2Edit data/mandate.json — move rows between want, do not want and unstated. This is the correction, and it is the elicitationthe buyer, with a pen on a card or a person on a call
3Fill the organisation, the owner and the interval in vault.json; status becomes correctedus
4Rebuild. The delta is recomputed, the licence is re-rendered with the conditions and their barriers, the history gets an entryone command
5Push the vault; hand over the read key. The buyer clones it, or opens it in a browser, or hands the key to whoever asks how they govern their agentsus, then them

Pushed, and read live on its own page.

The same files are in an encrypted SG/Vault on the platform this site's demonstrations use — vault ruj286tr. Its read key grants read and nothing else and is published on purpose, like every demo key on this site. It is printed on the vault's own page↗, which reads the vault live in the browser: the card, every table, the vault's app in a sandboxed frame, and the file list, all decrypted from the current commit as you read. A Lab page carries no key by rule, so it is not repeated here; every file is also served from this site — the links above — so nothing depends on the vault host.

Vaultruj286tr
Hostdev.send.sgraph.ai · opened at dev.vault.sgraph.ai, like the demos
Read keypublished on the vault's page↗, in the public form sgit declares for a deliberately published key
Clone itsgit clone <read key> — read-only; the key is on the vault's page
Commits15 September 2026 — v1 the template with the grant check · v2 the vault app · v3 the start-here view, the zip and the PDF · v4 the primer and the minimal HUD · v5 the loader: the renderer now lives once, in the app vault

The write side of this vault is held by us and appears nowhere on this site; a test in the repository fails the build if anything shaped like one lands in site/. The vault's history is the vault's: every recompute is a commit, and a buyer's own vault keeps the draft it was corrected from as its first entry.

Five things this does not settle, and one it does.

Built 15 September 2026 from abp.sgit.ai v0.3.0 (profile anthropic/claude-code-remote/ccr-container version 2026-09-05.2, mandate coding-assistant-in-a-container of 2026-09-09) with scripts/site/build-abp-vault.mjs. The generic AGENTS.md and SKILL.md are in site/vaults/_template/. The eight-line prompt with its enforcement column is Lab 05↗; the perishable-barrier and self-report findings are Lab 06↗; the twelve-stage flow this delivers stage ten of is Lab 02↗.

Correct the mandate. That is the whole purchase.

Everything else in the vault is derived. If you run an agent in this shape, open MANDATE.md, tell us which of the six you actually asked for and which of the nine you would object to — and the next build is yours.

The journey, kept as files.

This page holds current thinking, and it will change. Each edition below is a dated, immutable copy of what it said on the day, with its own digest. Nothing is rewritten; the list only grows.

Digests for every edition are in lab-editions.json↗, so a PDF somebody was sent can be checked against this list.