feat: publish Risk Nexus findings and methods
All checks were successful
Build and publish policy-nexus image / build-and-push (push) Successful in 1m10s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a058f3-8ba0-7692-a042-9a870fc3d663
This commit is contained in:
tegwick 2026-09-01 01:56:46 +02:00
parent 4c8a7b9666
commit c1b60f322e
70 changed files with 3888 additions and 198 deletions

View file

@ -165,7 +165,7 @@ def _index_page(site: dict[str, Any], records: list[dict[str, str]]) -> str:
'<div class="wrap"><header><div class="eyebrow"><span>policy surface</span>'
"<span>generated from canonical sources — do not edit</span></div>"
f"<h1>{html.escape(site['title'])}</h1>"
'<p class="sub">Canon and architecture decisions at stable addresses, with visible currency.</p>'
'<p class="sub">Governing documents and public risk records at stable addresses, with visible currency.</p>'
"</header><main><table><thead><tr><th>Document</th><th>Status</th>"
"<th>Lifecycle</th><th>Revision</th><th>Owner</th><th>Reviewed</th>"
"<th>Review due</th><th>Currency</th>"
@ -201,6 +201,13 @@ def build(
raise ValueError(
f"{source}: manifest id {document['id']!r} does not match {meta.get('id')!r}"
)
if (
document["source_repo"] == "risk-nexus"
and meta.get("disclosure") != "public"
):
raise ValueError(
f"{source}: risk-nexus publications require disclosure: public"
)
for required_field in ("title", "status", "owner"):
if not meta.get(required_field):
raise ValueError(f"{source}: {required_field} is required for publication")