# Claude Code on the web, with one repository attached — an Agent Behaviour Policy, as a vault

> This is the template vault for one deployment shape: the draft a buyer corrects. Everything in it is derived from three inputs, and one of them is yours.

**Vault** `claude-code-web` · **status** template · **shape** `anthropic/claude-code-remote/ccr-container` · **grant** 2026-09-05.2 · **mandate** 2026-09-09 · **vocabulary** abp.sgit.ai v0.3.0 · **as at** 2026-09-15

---


## What is in here

| File | What it is | Who writes it |
| --- | --- | --- |
| `AGENT-BEHAVIOUR-POLICY.md` | The four objects in one document: grant, mandate, delta, barrier | derived |
| `MANDATE.md` · `data/mandate.json` | What the agent is authorised and expected to do | **you** — the only authored file |
| `GRANT.md` · `data/grant.json` | Everything the agent can do, one row per capability, with what stands in the way of each | measured from the shape; never typed |
| `DELTA.md` · `data/delta.json` | Excess, shortfall, and the part of the excess nothing bounds | derived, never authored, recomputed on every build |
| `LICENCE-TO-OPERATE.md` | The organisation authorises the agent to operate under this behaviour policy, for an interval, with conditions | derived from the mandate; signed by a named person when issued |
| `AGENTS.md` | Drop this into the agent's own context — `CLAUDE.md`, `AGENTS.md`, a `ROLE.md`, a skill — so it knows how to treat the rest | generic; travels unchanged |
| `SKILL.md` | The same, in the portable agent-skill format | generic; travels unchanged |
| `MAP-A-GRANT.md` | A prompt for an agent that already holds a credential or a connector: measure your own grant and draft the first policy | generic; travels unchanged |
| `data/validity.json` | What this describes, as at when, and what would void it | derived |
| `data/vocabulary/` | The 23 capability primitives, 4 barriers, 3 undo classes and evidence tiers this was computed against, pinned | copied from abp.sgit.ai, versioned |
| `history/` | One entry per recompute whose counts moved | derived |

## How to read it

1. **`MANDATE.md` first**, because it is the one thing you already know. If it is wrong, it is wrong upward — most people authorised less than the draft assumes.
2. **`GRANT.md` second.** Every row says how it is known (measured or derived), what stands in the way (one of four barriers), and whether the effect can be undone.
3. **`DELTA.md` third.** The list of what it can do and you did not ask for, split into the part you refused, the part you never mentioned, and the part nothing bounds.
4. **`LICENCE-TO-OPERATE.md` last.** What the organisation is actually authorising, for how long, on what conditions, and who signs.

## How to correct it

Edit `data/mandate.json` — move a capability between `want`, `do_not_want` and `unstated` — and rebuild:

```
node scripts/site/build-abp-vault.mjs claude-code-web
```

The delta is recomputed and the documents are rewritten. Nothing else in this vault is edited by hand, and a hand-edited delta would be detected: the build recomputes it from the inputs every time.

## How to give it to the agent

Copy `AGENTS.md` into the agent's working context (or append it to the file the agent already reads — `CLAUDE.md`, `AGENTS.md`, `ROLE.md`, a `SKILL.md`), and put `MANDATE.md`, `GRANT.md` and `AGENT-BEHAVIOUR-POLICY.md` beside it. `AGENTS.md` tells the agent what each file is, what to do with it, and — in its own words — what a file like that cannot do.

## What this is not

- Not a risk assessment. It has no assets in it and no consequences; it is the input to one.
- Not a compliance assessment, a certification, an audit or a security review of any named product.
- Not a guardrail. The barrier column in `GRANT.md` says which rows are bounded by something and which are only asked.
- Not scored. A behaviour policy cannot be dangerous; a deployment can.

---

_This describes the deployment shape as at this date. If the risk changed, the deployment changed — not this document._ 
No score, rating, level or traffic light appears in this vault or in its data, and none will. The behaviour policy describes; it does not judge. 
Generated by `scripts/site/build-abp-vault.mjs` from `data/grant.json`, `data/mandate.json` and the pinned vocabulary; `data/mandate.json` is the only file a person writes. Licence: CC BY 4.0.

