# Grant and Mandate — pack README

**Status:** a site-agent first pass at the pack specified in two project-lead briefs of 26 August 2026 (v0.33.62). Ten documents plus a change-control appendix, **two** measured library entries, and — as of 26 August — **build-order step 1 built and its acceptance test passed**: a push refused by git rather than by the agent. The library half has a shipped register underneath it ([pki.sgit.ai/registry](../../registry/index.html), v0.1.26); the risk-product half is specified, not built, and the pack says so. Corpus version assigned on adoption.
**Date:** 26 August 2026

Building blocks for tying the grant and mandate concepts to the commercial product: a **grant document** (what an environment can do, measured), a **mandate document** (what it is expected to do, authored), a **delta** between them (excess, shortfall, blind spots — computed, never stored), and a **library** of measured grants. The registry holds the reusable library, carrying no personal data ever; the risk product ([RiskMandate.ai](https://riskmandate.ai)) holds the private instance over it, storing references rather than copies — which is what makes a finished pack shareable without disclosing anything about the person's machine.

Three things a reader must not re-derive, because relitigating them rebuilds the error the pack fixes: **reality before the risk register** (a fact before a risk, and a fact is a measurement); **the library/instance split with references not copies**; and **the three-term comparison**, where `library − self-report = blind spots` is the number that makes a self-report falsifiable at all. Two findings arrive settled: **the grant is discovered, not authored** (a typed grant is a wish), and **the grant is authority, not authorisation** (nobody decided it, and apparent authority binds anyway).

The first library entry was generated by measuring this pack's own Claude Code Remote container — and the measurement **refused to measure itself**, blocked by an account-level classifier that evaluates outside the agent's loop. That refusal is the sharpest datum in the entry: a boundary-tier control observed working on the measuring agent, which is the cleanest demonstration of the pack's own three-tier control test, produced by accident.

**And the pack is no longer only a specification.** [Document 07](07__enforcement.md) records build-order step 1, built and run: a mandate authored deliberately narrower than the measured grant, compiled into a `pre-push` hook, and a push to `dev` refused with `error: failed to push some refs` — git's words, not the agent's. It reached tier **setting**, not boundary, and says so. Within the hour it refused the release carrying it, and the correct remedy was the issuer **amending the mandate** rather than any bypass — which is what a mandate is for, and is only visible once the constraint is mechanical.

## Reading order

1. `00__LEADING-BRIEF.md` — the three constraints, the inventory, the settled findings
2. `01__concepts.md` — the lexicon, in the graphs-site format, and the ordering rule
3. `02__schemas.md` — the grant document, the mandate document, the delta computed-not-stored, the history field
4. `03__library.md` — what a building block is, how it is measured and drift-checked, and the first entry
5. `04__workflows.md` — the user path and the agent path, and the skill that compiles but never enforces
6. `05__mockups.md` — six screens, and why the fourth is the trap
7. `06__mvp.md` — build order (branch constraint first), the acceptance test, and what is excluded
8. `07__enforcement.md` — **the first compiled mandate, built and tested**: what it refused, what tier it actually reached (`setting`, not boundary), and the two findings the exercise produced — including the control refusing the release that was carrying it
9. `08__build-record.md` — **what was actually built** across four releases, with the evidence for each claim, the four findings that cost something to record, what the readiness report's six questions became, and a flat list of what is still only written down
10. `09__building-blocks.md` — **the brief the project lead called #3**, derived from the two v0.33.62 briefs: nine reusable primitives with rendering rules, the defeat-path rule that makes a tier badge honest, and the authority/enforcement split. Ships as [a stylesheet and a gallery rendering real documents](../blocks.html)
11. `99__change-control.md` — every correction and decision; read it second if building, last if reading through

Adopted rather than reinvented: **Cedar** (default-deny policy evaluation outside the agent's loop; it does not do identity, so it composes with the registry), and **graphs.sgit.ai**'s lexicon, edge sets, provenance chains and drift gate. The one thing nothing in the industry provides — a mandate with an issuer and an interval — is the thing this pack builds.

All content CC BY 4.0.
