From 49fa6fa4eb2ddeece61f95c826875de62adf1e61 Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 18 Aug 2026 22:16:40 +0200 Subject: [PATCH] Publish the policy-nexus arc42 stub Inventory now discovers docs/architecture and registers the local first-wave stub at /architecture/policy-nexus/v0.1/. --- .../addressing-and-permanence/v1/index.html | 6 +- .../architecture/policy-nexus/v0.1/index.html | 248 ++++++++++++++++++ .../v0.1/revisions/draft-1/index.html | 248 ++++++++++++++++++ build/index.html | 2 +- build/publication-manifest.json | 19 +- docs/adr-review/SUMMARY.md | 6 +- docs/adr-review/ledger.json | 27 ++ publication.json | 8 + source-inventory.config.json | 2 +- source-inventory.json | 6 + ...S-WP-0002-arc42-architecture-collection.md | 12 +- 11 files changed, 571 insertions(+), 13 deletions(-) create mode 100644 build/architecture/policy-nexus/v0.1/index.html create mode 100644 build/architecture/policy-nexus/v0.1/revisions/draft-1/index.html diff --git a/build/adr/addressing-and-permanence/v1/index.html b/build/adr/addressing-and-permanence/v1/index.html index 57bbcce..dcf4fb8 100644 --- a/build/adr/addressing-and-permanence/v1/index.html +++ b/build/adr/addressing-and-permanence/v1/index.html @@ -1,6 +1,6 @@ - + Policy addressing and permanence -
policy-nexus-adr-0001 accepted · accepted-1 the-custodian reviewed 2026-08-18generated from canonical source — do not edit

Policy addressing and permanence

Source: policy-nexus · docs/adr/ADR-0001-addressing-and-permanence.md · 7a24e9107fd62772a82d8b2a69692a09ce88eea9+working-tree.a28668fb4b8b

Review due: 2027-02-18

  • Status: accepted
  • Date: 2026-08-18
  • Owner: the-custodian
+
policy-nexus-adr-0001 accepted · accepted-1 the-custodian reviewed 2026-08-18generated from canonical source — do not edit

Policy addressing and permanence

Source: policy-nexus · docs/adr/ADR-0001-addressing-and-permanence.md · a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8

Review due: 2027-02-18

  • Status: accepted
  • Date: 2026-08-18
  • Owner: the-custodian

Decision

A document has one stable current address and immutable revision addresses:

/<kind>/<document>/<version>/
@@ -211,4 +211,4 @@ a:focus-visible,.rail a:focus-visible{outline:2px solid var(--brass);outline-off
 

Consequences

  • Builds fail if a source disappears, an id differs, a path collides, or an immutable revision would change; stale output is not silently called fresh.
  • Pages show status, revision, owner, last review and exact source revision.
  • Availability remains restart recovery on the single-node rail. This contract promises stable addressing, not a high-availability SLA.
-
policy-nexus-adr-0001 · accepted-1 · acceptedpolicy-nexus · docs/adr/ADR-0001-addressing-and-permanence.md · 7a24e9107fd62772a82d8b2a69692a09ce88eea9+working-tree.a28668fb4b8b
+
policy-nexus-adr-0001 · accepted-1 · acceptedpolicy-nexus · docs/adr/ADR-0001-addressing-and-permanence.md · a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8
diff --git a/build/architecture/policy-nexus/v0.1/index.html b/build/architecture/policy-nexus/v0.1/index.html new file mode 100644 index 0000000..20fce95 --- /dev/null +++ b/build/architecture/policy-nexus/v0.1/index.html @@ -0,0 +1,248 @@ + + + + +Policy Nexus architecture + +
policy-nexus-architecture proposed · draft-1 the-custodian reviewed 2026-08-18generated from canonical source — do not edit

Policy Nexus architecture

Source: policy-nexus · docs/architecture/policy-nexus_v0.1.md · a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8

Review due: 2027-02-18

About this document

+

This document follows the arc42 template for the publication surface at policy.coulomb.social. It is the first-wave architecture document this repository is allowed to author. Other first-wave systems are written in their owning repos.

+
+

01Introduction and Goals

+

Policy Nexus exists so estate canon and architecture decisions have a permanent, current, addressable public home. Before this system, governing documents were served from disposable artifact URLs.

+

1.1 Requirements Overview

+
  • Publish canon (standards, architecture, constitution) and per-repo ADRs from the repositories that own them.
  • Keep one stable current URL and one immutable revision URL per document (ADR-0001).
  • Fail closed when a source disappears or an immutable revision would change.
  • Show status, owner, revision, and review currency on every page.
+

1.2 Quality Goals

+
  1. Permanence of published addresses.
  2. Honesty about staleness.
  3. Source-of-truth stays upstream — this system never writes back.
  4. Builds are deterministic and stdlib-only.
+

1.3 Stakeholders

+
RoleConcern
the-custodianWhat counts as canon; ratification.
Source-repo ownersTheir document is published accurately.
railiance-platform / rapp-policy-nexusSubstrate, Helm, promotion.
Readers inside and outside the estateA URL that still resolves.
+
+

02Architecture Constraints

+

N/A for this stub — first-wave complete will record stdlib-only rendering, single-node rail availability, and the no-CMS rule.

+
+

03System Scope and Context

+

In: addressing, rendering, currency, the public static site. Out: ratification, legal advice, regulatory intake (risk-nexus), editing surfaces, search.

+

3.1 Business Context

+

Source owners publish governing documents. This system makes those documents findable and durable. It does not decide what is current canon.

+

3.2 Technical Context

+
  • Inputs: publication.json, sibling or fetched git checkouts, source-inventory.json.
  • Outputs: static HTML, publication-manifest.json, an OCI image.
  • Neighbours: owning source repos, Forgejo Actions, rapp-policy-nexus, railiance-apps, the reef Traefik/cert-manager substrate.
+
+

04Solution Strategy

+

N/A for this stub — pull-on-schedule ingestion, explicit manifest entries, stdlib renderer. To be written as first-wave complete.

+
+

05Building Block View

+

5.1 Level 1 – System/Top-Level

+

N/A for this stub — builder, inventory auditor, currency checker, OCI artifact, Helm package in rapp-policy-nexus.

+

5.2 Level 2 – Key Components

+

N/A for this stub.

+

5.3 Level 3 – Internal Structure (as needed)

+

N/A for this stub.

+
+

06Runtime View

+

N/A — the published site is static files. Daily source-pull and promotion are operational scenarios for a later revision.

+
+

07Deployment View

+

N/A for this stub — see WP-0001-T04. Single-node restart recovery, not a high-availability SLA.

+
+

08Cross-Cutting Concepts

+

N/A for this stub.

+
+

09Architecture Decisions

+
IdStatusDecisionSource
policy-nexus-adr-0001acceptedStable current address + immutable revision address; no deletiondocs/adr/ADR-0001-addressing-and-permanence.md
+

Later publish ADRs from WP-0003 land here. local and unresolved conflict rows do not.

+
+

10Quality Requirements

+

N/A for this stub — currency failure is already a build/CI failure.

+
+

11Risks and Technical Debt

+

N/A for this stub. Known residual: Markitect arc42-v1 schema is not registered yet (WP-0002-T02).

+
+

12Glossary

+
TermMeaning
Current addressThe stable URL for the document as it now stands.
Revision addressWrite-once URL for one source digest.
Publication entryOne object in publication.json. Discovery is not publication.
First-wave completeChapters 1, 3, 4, 5.1, 9 and 12 are real; others real or N/A.
+
policy-nexus-architecture · draft-1 · proposedpolicy-nexus · docs/architecture/policy-nexus_v0.1.md · a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8
diff --git a/build/architecture/policy-nexus/v0.1/revisions/draft-1/index.html b/build/architecture/policy-nexus/v0.1/revisions/draft-1/index.html new file mode 100644 index 0000000..20fce95 --- /dev/null +++ b/build/architecture/policy-nexus/v0.1/revisions/draft-1/index.html @@ -0,0 +1,248 @@ + + + + +Policy Nexus architecture + +
policy-nexus-architecture proposed · draft-1 the-custodian reviewed 2026-08-18generated from canonical source — do not edit

Policy Nexus architecture

Source: policy-nexus · docs/architecture/policy-nexus_v0.1.md · a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8

Review due: 2027-02-18

About this document

+

This document follows the arc42 template for the publication surface at policy.coulomb.social. It is the first-wave architecture document this repository is allowed to author. Other first-wave systems are written in their owning repos.

+
+

01Introduction and Goals

+

Policy Nexus exists so estate canon and architecture decisions have a permanent, current, addressable public home. Before this system, governing documents were served from disposable artifact URLs.

+

1.1 Requirements Overview

+
  • Publish canon (standards, architecture, constitution) and per-repo ADRs from the repositories that own them.
  • Keep one stable current URL and one immutable revision URL per document (ADR-0001).
  • Fail closed when a source disappears or an immutable revision would change.
  • Show status, owner, revision, and review currency on every page.
+

1.2 Quality Goals

+
  1. Permanence of published addresses.
  2. Honesty about staleness.
  3. Source-of-truth stays upstream — this system never writes back.
  4. Builds are deterministic and stdlib-only.
+

1.3 Stakeholders

+
RoleConcern
the-custodianWhat counts as canon; ratification.
Source-repo ownersTheir document is published accurately.
railiance-platform / rapp-policy-nexusSubstrate, Helm, promotion.
Readers inside and outside the estateA URL that still resolves.
+
+

02Architecture Constraints

+

N/A for this stub — first-wave complete will record stdlib-only rendering, single-node rail availability, and the no-CMS rule.

+
+

03System Scope and Context

+

In: addressing, rendering, currency, the public static site. Out: ratification, legal advice, regulatory intake (risk-nexus), editing surfaces, search.

+

3.1 Business Context

+

Source owners publish governing documents. This system makes those documents findable and durable. It does not decide what is current canon.

+

3.2 Technical Context

+
  • Inputs: publication.json, sibling or fetched git checkouts, source-inventory.json.
  • Outputs: static HTML, publication-manifest.json, an OCI image.
  • Neighbours: owning source repos, Forgejo Actions, rapp-policy-nexus, railiance-apps, the reef Traefik/cert-manager substrate.
+
+

04Solution Strategy

+

N/A for this stub — pull-on-schedule ingestion, explicit manifest entries, stdlib renderer. To be written as first-wave complete.

+
+

05Building Block View

+

5.1 Level 1 – System/Top-Level

+

N/A for this stub — builder, inventory auditor, currency checker, OCI artifact, Helm package in rapp-policy-nexus.

+

5.2 Level 2 – Key Components

+

N/A for this stub.

+

5.3 Level 3 – Internal Structure (as needed)

+

N/A for this stub.

+
+

06Runtime View

+

N/A — the published site is static files. Daily source-pull and promotion are operational scenarios for a later revision.

+
+

07Deployment View

+

N/A for this stub — see WP-0001-T04. Single-node restart recovery, not a high-availability SLA.

+
+

08Cross-Cutting Concepts

+

N/A for this stub.

+
+

09Architecture Decisions

+
IdStatusDecisionSource
policy-nexus-adr-0001acceptedStable current address + immutable revision address; no deletiondocs/adr/ADR-0001-addressing-and-permanence.md
+

Later publish ADRs from WP-0003 land here. local and unresolved conflict rows do not.

+
+

10Quality Requirements

+

N/A for this stub — currency failure is already a build/CI failure.

+
+

11Risks and Technical Debt

+

N/A for this stub. Known residual: Markitect arc42-v1 schema is not registered yet (WP-0002-T02).

+
+

12Glossary

+
TermMeaning
Current addressThe stable URL for the document as it now stands.
Revision addressWrite-once URL for one source digest.
Publication entryOne object in publication.json. Discovery is not publication.
First-wave completeChapters 1, 3, 4, 5.1, 9 and 12 are real; others real or N/A.
+
policy-nexus-architecture · draft-1 · proposedpolicy-nexus · docs/architecture/policy-nexus_v0.1.md · a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8
diff --git a/build/index.html b/build/index.html index da2f058..71d81e3 100644 --- a/build/index.html +++ b/build/index.html @@ -183,4 +183,4 @@ footer{border-top:2px solid var(--ink);margin-top:20px;padding-top:22px;font-fam .route .tag{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:8px} a:focus-visible,.rail a:focus-visible{outline:2px solid var(--brass);outline-offset:3px} @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}} -
policy surfacegenerated from canonical sources — do not edit

Coulomb Policy Nexus

Canon and architecture decisions at stable addresses, with visible currency.

DocumentStatusLifecycleRevisionOwnerReviewedReview dueCurrency
NetKingdom Tenancy Posture v0.1proposedactivedraft-8net-kingdom2026-08-172027-02-17current
Policy addressing and permanenceacceptedactiveaccepted-1the-custodian2026-08-182027-02-18current
Repository Prefix Architectureacceptedactiveaccepted-1railiance-master2026-07-252027-01-25current
Wave 1 rail-kubernetes Boundaryacceptedactiveaccepted-1railiance-master2026-07-252027-01-25current
First-Wave rapp Selectionacceptedactiveaccepted-1railiance-master2026-07-252027-01-25current
First-Wave reef Rolloutacceptedactiveaccepted-1railiance-master2026-07-262027-01-26current
Derived Rail Compositionacceptedactiveaccepted-1railiance-master2026-07-262027-01-26current
Reef Production Admissionacceptedactiveaccepted-1railiance-master2026-08-152027-02-15current
Rapp Declaration Contractacceptedactiveaccepted-1railiance-master2026-08-132027-02-13current
Private-by-default Exposureacceptedactiveaccepted-1railiance-master2026-08-152027-02-15current
+
policy surfacegenerated from canonical sources — do not edit

Coulomb Policy Nexus

Canon and architecture decisions at stable addresses, with visible currency.

DocumentStatusLifecycleRevisionOwnerReviewedReview dueCurrency
NetKingdom Tenancy Posture v0.1proposedactivedraft-8net-kingdom2026-08-172027-02-17current
Policy Nexus architectureproposedactivedraft-1the-custodian2026-08-182027-02-18current
Policy addressing and permanenceacceptedactiveaccepted-1the-custodian2026-08-182027-02-18current
Repository Prefix Architectureacceptedactiveaccepted-1railiance-master2026-07-252027-01-25current
Wave 1 rail-kubernetes Boundaryacceptedactiveaccepted-1railiance-master2026-07-252027-01-25current
First-Wave rapp Selectionacceptedactiveaccepted-1railiance-master2026-07-252027-01-25current
First-Wave reef Rolloutacceptedactiveaccepted-1railiance-master2026-07-262027-01-26current
Derived Rail Compositionacceptedactiveaccepted-1railiance-master2026-07-262027-01-26current
Reef Production Admissionacceptedactiveaccepted-1railiance-master2026-08-152027-02-15current
Rapp Declaration Contractacceptedactiveaccepted-1railiance-master2026-08-132027-02-13current
Private-by-default Exposureacceptedactiveaccepted-1railiance-master2026-08-152027-02-15current
diff --git a/build/publication-manifest.json b/build/publication-manifest.json index c83a96b..400a852 100644 --- a/build/publication-manifest.json +++ b/build/publication-manifest.json @@ -17,6 +17,23 @@ "status": "proposed", "title": "NetKingdom Tenancy Posture v0.1" }, + { + "canonical_path": "architecture/policy-nexus/v0.1/index.html", + "currency": "current", + "id": "policy-nexus-architecture", + "last_reviewed": "2026-08-18", + "lifecycle": "active", + "owner": "the-custodian", + "review_due": "2027-02-18", + "revision": "draft-1", + "revision_path": "architecture/policy-nexus/v0.1/revisions/draft-1/index.html", + "source_digest": "179cbb86bca95f71f46f51ca1971ff1c274eed7d900adf0672b537d4bcc5b480", + "source_path": "docs/architecture/policy-nexus_v0.1.md", + "source_repo": "policy-nexus", + "source_revision": "a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8", + "status": "proposed", + "title": "Policy Nexus architecture" + }, { "canonical_path": "adr/addressing-and-permanence/v1/index.html", "currency": "current", @@ -30,7 +47,7 @@ "source_digest": "a28668fb4b8b6c5ec8c94baac000061276d85ef1849ec7ab8d132b913dbfe3be", "source_path": "docs/adr/ADR-0001-addressing-and-permanence.md", "source_repo": "policy-nexus", - "source_revision": "7a24e9107fd62772a82d8b2a69692a09ce88eea9+working-tree.a28668fb4b8b", + "source_revision": "a8fb62a3bcbff3daf03e5d3d56c3ca3a5bd991f8", "status": "accepted", "title": "Policy addressing and permanence" }, diff --git a/docs/adr-review/SUMMARY.md b/docs/adr-review/SUMMARY.md index ecd759b..69b2f6a 100644 --- a/docs/adr-review/SUMMARY.md +++ b/docs/adr-review/SUMMARY.md @@ -1,18 +1,18 @@ # ADR review ledger summary -Rows: 125 +Rows: 126 ## Inventory dispositions - `excluded`: 2 - `metadata-pending`: 105 -- `published`: 10 +- `published`: 11 - `unsupported-format`: 8 ## Proposed dispositions - `publish`: 9 -- `unreviewed`: 116 +- `unreviewed`: 117 ## Front-matter `id` collisions diff --git a/docs/adr-review/ledger.json b/docs/adr-review/ledger.json index 2f0be8a..27986c4 100644 --- a/docs/adr-review/ledger.json +++ b/docs/adr-review/ledger.json @@ -2240,6 +2240,33 @@ "source_repo": "policy-nexus", "successor": "" }, + { + "bare_adr": "", + "bare_adr_collisions": [], + "conflict_kinds": [], + "file_present": true, + "frontmatter": { + "id": "policy-nexus-architecture", + "last_reviewed": "2026-08-18", + "owner": "the-custodian", + "review_interval": "6m", + "revision": "draft-1", + "status": "proposed", + "title": "Policy Nexus architecture", + "updated": "", + "version": "0.1" + }, + "id_collisions": [], + "inventory_disposition": "published", + "inventory_reason": "Published through an explicit publication.json document entry.", + "missing_fields": [], + "notes": "", + "proposed_disposition": "unreviewed", + "review_notes": "", + "source_path": "docs/architecture/policy-nexus_v0.1.md", + "source_repo": "policy-nexus", + "successor": "" + }, { "bare_adr": "ADR-0002", "bare_adr_collisions": [ diff --git a/publication.json b/publication.json index 6a231e4..5aebd29 100644 --- a/publication.json +++ b/publication.json @@ -28,6 +28,14 @@ "subtitle": "A framework for describing, holding and improving multi-tenancy — including where we are not there yet.", "review_interval": "6m" }, + { + "id": "policy-nexus-architecture", + "source_repo": "policy-nexus", + "source_path": "docs/architecture/policy-nexus_v0.1.md", + "canonical_path": "architecture/policy-nexus/v0.1/index.html", + "revision_path": "architecture/policy-nexus/v0.1/revisions/{revision}/index.html", + "review_interval": "6m" + }, { "id": "policy-nexus-adr-0001", "source_repo": "policy-nexus", diff --git a/source-inventory.config.json b/source-inventory.config.json index dc65333..4d56706 100644 --- a/source-inventory.config.json +++ b/source-inventory.config.json @@ -63,7 +63,7 @@ }, "policy-nexus": { "local": true, - "selectors": ["docs/adr/*.md"] + "selectors": ["docs/adr/*.md", "docs/architecture/*.md"] }, "railiance-hosts": { "branch": "main", diff --git a/source-inventory.json b/source-inventory.json index 5c85393..90a9e49 100644 --- a/source-inventory.json +++ b/source-inventory.json @@ -343,6 +343,12 @@ "source_path": "docs/adr/ADR-0001-addressing-and-permanence.md", "source_repo": "policy-nexus" }, + { + "disposition": "published", + "reason": "Published through an explicit publication.json document entry.", + "source_path": "docs/architecture/policy-nexus_v0.1.md", + "source_repo": "policy-nexus" + }, { "disposition": "metadata-pending", "reason": "In scope; awaits explicit publication addressing and owner/revision/review metadata.", diff --git a/workplans/POLICY-NEXUS-WP-0002-arc42-architecture-collection.md b/workplans/POLICY-NEXUS-WP-0002-arc42-architecture-collection.md index 85e695a..6dd6e12 100644 --- a/workplans/POLICY-NEXUS-WP-0002-arc42-architecture-collection.md +++ b/workplans/POLICY-NEXUS-WP-0002-arc42-architecture-collection.md @@ -229,15 +229,14 @@ publish. Deeper chapters are the owning repo's follow-on, not a gate here. This repo authors only `docs/architecture/policy-nexus_v0.1.md`. 2026-08-18: policy-nexus stub exists with real chapters 1, 3 and 9. It is -not in `publication.json` yet — inventory selectors do not include -`docs/architecture/` until this file is on `HEAD` and T06 reviews it. -The other four documents remain owning-repo work. +published at `/architecture/policy-nexus/v0.1/`. The other four +documents remain owning-repo work. ### T06 — Register and publish ```task id: POLICY-NEXUS-WP-0002-T06 -status: todo +status: progress priority: high ``` @@ -253,6 +252,11 @@ priority: high Do not glob the new trees into publication. Inventory is discovered; publication stays explicit. +2026-08-18: `docs/architecture/*.md` is a policy-nexus selector. +`policy-nexus-architecture` is published at +`/architecture/policy-nexus/v0.1/`. Other first-wave documents still +need owning-repo files. + ### T07 — Smoke the published collection ```task