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-25 · open the live page ↗Everything on this sheet is the source site's own text; the newsroom's chrome is outside it.

T02 — The grant as edges, one per path

Rendered from .claude/briefs/T02-edges-per-path.md in the repository. The text below is that file. Source: https://riskmandate.ai/admin/work/T02/↗ · noindex · written by scripts/site/build-admin.mjs

From: the graph brief §3 and §4 item 3; the n8n review §3 (barrier class is not a property of a capability). Size: a day. Touches: scripts/site/build-abp-vault.mjs, site/vaults/*/data/edges.json (new, derived), site/vaults/_app/index.html (the renderer, if it shows paths), docs/briefs/ (a short implementation note).

The task

Derive data/edges.json in every vault from data/grant.json: one edge per path, not per row. An edge is policy → behaviour with via (one door), barrier, evidence, material, undo, and the mandate's stance. A grant row with two via entries becomes two edges, and where the row's note records that the barrier differs by door, the edges carry different barriers.

The grant row format is upstream's (abp/profile/v1) and has one barrier per row. Do not fork it. Add an optional per-path override on the row (paths: [{via, barrier, evidence, note}]) that the generator reads when present and falls back from when absent; write the ask for a first-class version of it into Lab 03 (T07).

Constraints

Done means