{
 "about": "This desk did not invent its model. The sgit network has been writing about risk as a graph for months: fractal registers, acceptance by a named holder for an interval, typed edges with named inverses, grants against mandates. Its vaults already hold several of the standards as graphs. Below is what the desk surveyed, what each holds by its publisher's own description, and which php2shell risks and frameworks it bears on. Much of it says of itself that it is designed rather than built; the desk cites it as a model, not as evidence about the flaws.",
 "surveyed": "22 October 2026, by grc@php.newsroom, from the published pages and, for some vaults, a read-only clone made outside this repository with the published read key",
 "groups": [
  {"id": "model", "name": "The risk model", "about": "Where the vocabulary of this section comes from."},
  {"id": "registers", "name": "Risk registers and acceptance, as vaults", "about": "Working examples of a register as a graph, with risks assigned to several roles."},
  {"id": "standards", "name": "Standards already held as graphs", "about": "The frameworks this section maps to that the network has already turned into graphs."},
  {"id": "agents", "name": "Agents under a mandate", "about": "The vocabulary this newsroom's own security pass uses for its agents, and the risks it gives rise to here."}
 ],
 "items": [
  {"id": "concepts", "group": "model", "title": "risks.sgit.ai: the concepts", "url": "https://risks.sgit.ai/", "date": "2026", "what": "43 concepts: acceptance is underwriting, not prediction; there is no deny button; the interval is the decision; unaccepted is rated critical; the grounding ladder from reality to fact to vulnerability to risk; fractal registers where only the role's own register is stored and the rest are queries; confirmed, validated and accepted as acts by three roles.", "risks": [], "frameworks": []},
  {"id": "accepted", "group": "model", "title": "Every risk is already accepted. The only question is by whom, and for how long.", "url": "https://newsroom.sgit.ai/articles/every-risk-is-already-accepted.html", "date": "2026-09-24", "what": "A risk exists as soon as the exposure does; every risk has a holder, every holder a boss, every chain ends at the board; nobody accepts on anyone else's behalf; what is assigned to a role is kept apart from what arrives through it.", "risks": ["r04", "r06"], "frameworks": ["euaiact", "nis2"]},
  {"id": "fsg", "group": "model", "title": "Fractal Semantic Graphs", "url": "https://newsroom.sgit.ai/articles/introducing-fractal-semantic-graphs.html", "date": "2026-09-20", "what": "Five rules: every edge is a verb with a named inverse, no generic 'relates to', properties carry data never meaning, supersede never delete, render the answer to a question. The ladder from law and standard through fact, risk, owner and acceptance down to the compute instance.", "risks": [], "frameworks": []},
  {"id": "edgeset", "group": "model", "title": "graphs.sgit.ai: the edge set and fractal risk registers", "url": "https://graphs.sgit.ai/v1/grammar/edge-set.html", "date": "2026", "what": "The established edges with their inverses (gives_rise_to, backed_by, owned_by, protected_by, exposes, accepted_by and the rest) and the rule that wherever a stakeholder accepts a risk there is a register.", "risks": [], "frameworks": []},
  {"id": "code-review-graph", "group": "model", "title": "Code review as a fractal semantic graph", "url": "https://newsroom.sgit.ai/articles/code-review-as-a-fractal-semantic-graph.html", "date": "2026-10-03", "what": "Code in layers from user stories down to the syntax tree; a bug is a story that stopped holding; blast radius is the climb from changed methods to the stories they reach. The model behind this site's code review graph, which this section's paths run into.", "risks": ["r01", "r01-4"], "frameworks": ["ssdf"]},
  {"id": "risk-governance-newsroom", "group": "model", "title": "Risk governance for a newsroom", "url": "https://newsroom.sgit.ai/documents/risk-governance-newsroom.html", "date": "2026", "what": "The publication owns evidence and fact, the customer owns reality, twin and measure, and a vulnerability exists only where the two meet.", "risks": ["r07", "r10-3"], "frameworks": []},
  {"id": "risk-graph-explorer", "group": "registers", "title": "Risk Graph Explorer", "vault": "3simlnqe", "url": "https://sgit.ai/demos/vaults/risk-graph-explorer/index.md", "date": "2026-08-17", "what": "Facts, risks, roles and the provisions they touch (EU AI Act, GDPR, NIS2, PCI DSS) as one graph; one risk assigned to several roles; roles that report to roles up to the board; an acceptance policy where a role may accept only what is assigned to it.", "risks": ["r06", "r06-1", "r06-2"], "frameworks": ["gdpr", "nis2", "pcidss", "euaiact"]},
  {"id": "agentic-browser-isolation", "group": "registers", "title": "Agentic Browser Isolation", "vault": "0610gsp9", "url": "https://sgit.ai/demos/vaults/agentic-browser-isolation/index.md", "date": "2026-08-17", "what": "A living risk graph per stakeholder, at seven altitudes: the worked example of a fractal register.", "risks": ["r10", "r10-1"], "frameworks": ["owasp"]},
  {"id": "risk-acceptance", "group": "registers", "title": "Risk Acceptance Office", "vault": "odn10gfp", "url": "https://sgit.ai/demos/vaults/risk-acceptance/index.md", "date": "2026-09-24", "what": "One risk replayed: established on facts, accepted for an interval, escalated, funded and ended on facts, with a hash-chained decision record.", "risks": ["r01-3"], "frameworks": ["iso27001"]},
  {"id": "risk-mandate", "group": "registers", "title": "Risk Mandate", "vault": "4zf6pf2z", "url": "https://sgit.ai/demos/vaults/risk-mandate/index.md", "date": "2026-08-17", "what": "A working software project delivered as a vault.", "risks": [], "frameworks": []},
  {"id": "thistlewood", "group": "registers", "title": "Ten questions, one graph (the Thistlewood twin)", "url": "https://newsroom.sgit.ai/articles/ten-questions-one-graph.html", "date": "2026-10-19", "what": "Ten CISO questions answered on the graph of an invented retailer: board risks with risks beneath them, accepted until a date, joined to processes, systems, suppliers, controls, incidents and people ranked by blast radius.", "risks": ["r01-6", "r09"], "frameworks": ["nistcsf"]},
  {"id": "regulation-graph", "group": "standards", "title": "Regulation Graph: the EU AI Act", "vault": "73heuprz", "url": "https://sgit.ai/demos/vaults/regulation-graph/index.md", "date": "2026-08-20", "what": "The EU AI Act parsed from the official Formex XML, article by article: 1,523 nodes and 1,944 edges.", "risks": ["r08", "r10"], "frameworks": ["euaiact"]},
  {"id": "standards-atlas-gdpr", "group": "standards", "title": "Standards Atlas: GDPR", "vault": "4zv4bvmu", "url": "https://sgit.ai/demos/vaults/standards-atlas-gdpr/index.md", "date": "2026-08-25", "what": "GDPR as a semantic graph: articles, recitals, court rulings and regulators' guidance.", "risks": ["r06", "r06-1"], "frameworks": ["gdpr"]},
  {"id": "pci-dss-graph", "group": "standards", "title": "PCI DSS Graph", "vault": "7xyzg5zs", "url": "https://sgit.ai/demos/vaults/pci-dss-graph/index.md", "date": "2026-09-29", "what": "PCI DSS v4.0.1 as a graph of goals, requirements, sections and identifiers, the licensed text left with its holder.", "risks": ["r01-1", "r01-5", "r05"], "frameworks": ["pcidss"]},
  {"id": "aibcf-graph", "group": "standards", "title": "AI Baseline Control Framework as a graph", "vault": "lop5iqzw", "url": "https://sgit.ai/demos/vaults/aibcf-graph/index.md", "date": "2026-10-07", "what": "Twenty controls cited to clauses of the EU AI Act, ISO/IEC 42001 and the NIST AI RMF.", "risks": ["r08", "r10"], "frameworks": ["euaiact", "iso42001", "nistairmf"]},
  {"id": "ai-governance-graph", "group": "standards", "title": "The AI governance stack, as a graph", "vault": "1wp3xpf4", "url": "https://sgit.ai/demos/vaults/ai-governance-graph/index.md", "date": "2026-10-09", "what": "A ten-layer AI governance stack (law, standards, inventory, testing, accountability, people and more), with a governance gap modelled as a missing edge.", "risks": ["r08", "r10"], "frameworks": ["iso42001", "nistairmf", "euaiact"]},
  {"id": "aiuc-1", "group": "standards", "title": "AIUC-1 conformance layer", "vault": "2wzct4k7", "url": "https://sgit.ai/demos/vaults/aiuc-1-conformance/index.md", "date": "2026-09-05", "what": "The AIUC-1 standard as a graph, with its crosswalks to the NIST AI RMF, ISO 42001, the EU AI Act and the OWASP lists, and a conformance layer that computes insurability.", "risks": ["r10"], "frameworks": ["nistairmf", "iso42001", "euaiact", "owasp"]},
  {"id": "threat-sized", "group": "standards", "title": "Threat-sized security", "vault": "zwlqqvkm", "url": "https://sgit.ai/demos/vaults/threat-sized-security/index.md", "date": "2026-10-08", "what": "A six-tier ladder of attackers built on NIST SP 800-30, the NCSC and MITRE ATT&CK.", "risks": ["r03", "r08"], "frameworks": ["attack", "nist80053"]},
  {"id": "dsit", "group": "standards", "title": "DSIT AI Risk Toolkit", "vault": "0q4sfr57", "url": "https://sgit.ai/demos/vaults/dsit-ai-risk-toolkit/index.md", "date": "2026-09-20", "what": "An AI decision traced back to UK government guidance.", "risks": ["r10"], "frameworks": []},
  {"id": "owasp-graph", "group": "standards", "title": "riskmandate.ai: the OWASP lists as a graph", "url": "https://riskmandate.ai/owasp-graph.html", "date": "2026", "what": "The OWASP Top 10s (web, LLM, agentic, API, CI/CD and others) as one graph of item ids and titles, bridged to the risk model.", "risks": ["r01-5", "r10-1"], "frameworks": ["owasp"]},
  {"id": "abp", "group": "agents", "title": "abp.sgit.ai: the Agent Behaviour Policy", "url": "https://abp.sgit.ai/model/index.md", "date": "2026", "what": "Mandate, grant and delta: what an agent is authorised to do, what it can do, and the difference, in a verb.object.reach grammar with barriers and undo classes. Carries no score and no rating by design. This newsroom's own grant, mandate and delta are written in it.", "risks": ["r10", "r10-2"], "frameworks": ["owasp", "nistairmf"]},
  {"id": "grant-gap", "group": "agents", "title": "riskmandate.ai: the grant gap", "url": "https://riskmandate.ai/grant-gap.html", "date": "2026", "what": "A grant is what a credential technically permits, a mandate is what the holder is authorised and expected to do; the gap is excess authority. A mandate needs an issuer, a subject, a scope, an interval and a revocation path.", "risks": ["r10"], "frameworks": []},
  {"id": "licence-to-operate", "group": "agents", "title": "Licence to Operate", "vault": "posrhzp3", "url": "https://sgit.ai/demos/vaults/licence-to-operate/index.md", "date": "2026-09-04", "what": "An insurance policy for an agent, simulated: grant, mandate, and the delta nothing covers.", "risks": ["r10"], "frameworks": []},
  {"id": "newsroom-abp", "group": "agents", "title": "This newsroom's own grant, mandate and delta", "url": "https://github.com/SGit-AI/SGit-AI__Website__Newsroom__2026__Oct__PHP/tree/dev/admin/security/abp", "date": "2026-10-22", "what": "Measured by security@php.newsroom: sixteen capabilities in the grant, eight wanted, nine with no boundary in the way. The source of weakness w-agent-reach.", "risks": ["r10", "r10-2"], "frameworks": ["owasp"]}
 ],
 "gaps": [
  "No graph of ISO/IEC 27001, NIST CSF 2.0, NIST SP 800-53, DORA, SOC 2 or the CIS Controls exists in the network yet: this section maps to them from the published texts directly.",
  "NIS2 and the Cyber Resilience Act appear only in passing; the CRA's reporting duty, which applies to php2shell, has no graph.",
  "The network's registers are worked examples on invented organisations; this is the first applied to a live incident."
 ]
}
