Record ADR conflicts and publish the estate arc42
Some checks failed
Build and publish policy-nexus image / build-and-push (push) Failing after 39s

T03 writes a rulings overlay and a readable conflict list. T04 starts
relevance: five superseded, five live conflicts, estate and activity-core
ADRs marked publish-after-prefix. The Coulomb estate map is now a
published architecture document.
This commit is contained in:
tegwick 2026-08-18 22:27:05 +02:00
parent 9c6a1d3ce0
commit d1f9ac6cd7
17 changed files with 1263 additions and 126 deletions

View file

@ -1,18 +1,20 @@
# ADR review ledger summary
Rows: 126
Rows: 127
## Inventory dispositions
- `excluded`: 2
- `metadata-pending`: 105
- `published`: 11
- `published`: 12
- `unsupported-format`: 8
## Proposed dispositions
- `publish`: 9
- `unreviewed`: 117
- `conflict`: 5
- `publish`: 27
- `superseded`: 5
- `unreviewed`: 90
## Front-matter `id` collisions
@ -37,6 +39,14 @@ Rows: 126
- `ADR-0010`: net-kingdom/docs/adr/ADR-0010-orchestration-vs-dependency-self-coherent-intent.md, the-custodian/canon/architecture/adr-010-hub-authority-and-local-cache-model.md
- `ADR-0011`: net-kingdom/docs/adr/ADR-0011-iam-profile-ownership-and-version-governance.md, the-custodian/canon/architecture/adr-011-federated-namespaces-and-reconciliation-limits.md
## Conflict rows
- `coulomb-social/docs/adr/ADR-0002-space-content-forgejo-markdown.md` (kinds 2): Status is 'superseded in part' by ADR-0003/0004. Not a clean superseded or accepted. Who rules: coulomb-social.
- `railiance-hosts/docs/adr/ADR-003-railiance-5repo-stack-architecture.md` (kinds 6): Accepted 5-repo stack ADR is byte-identical in railiance-hosts and railiance-infra. Two current copies of one decision. Who rules: those two repos, or railiance-master if the stack story moved.
- `railiance-hosts/docs/adr/ADR-004-forgejo-in-cluster-actions-runner.md` (kinds 6): Accepted Forgejo runner ADR is byte-identical in railiance-hosts and railiance-infra. Who rules: those two repos.
- `railiance-infra/docs/adr/ADR-003-railiance-5repo-stack-architecture.md` (kinds 6): Identical accepted copy of the hosts ADR-003. Do not publish both.
- `railiance-infra/docs/adr/ADR-004-forgejo-in-cluster-actions-runner.md` (kinds 6): Identical accepted copy of the hosts ADR-004. Do not publish both.
## Missing files
None.

View file

@ -0,0 +1,60 @@
# ADR conflict pass (WP-0003-T03)
Kinds 14 and 6. Kind 5 waits on the estate arc42 chapter 9. Rulings
live in `rulings.json` and survive a ledger refresh.
## How kind 1 is treated
A shared **front-matter `id`** (`ADR-001` in four repos, `ADR-0001` in
three, `netkingdom-iam-profile` on two files) cannot appear twice in
`publication.json`. That is a prefix/rename packet, not a contradiction
of decisions. The ledger records kind `1` automatically. Disposition
stays `publish` or `unreviewed` unless another kind applies.
Bare `ADR-NNNN` in many filenames is expected. It is not kind 1.
## Kind 2 — status lie
| Source | What the files say | Who rules |
| --- | --- | --- |
| `net-kingdom/canon/standards/iam-profile_v0.2.md` | Front-matter `accepted`. v0.3 says it supersedes v0.2. | net-kingdom |
| `railiance-hosts` and `railiance-infra` `ADR-002` | Body **Status: Superseded by ADR-003**. No YAML `status`. | those repos |
| `coulomb-social/docs/adr/ADR-0002-…` | Status is **superseded in part** by ADR-0003/0004. | coulomb-social |
Mentions of “supersedes” meaning *this* ADR replaces an older one (flex-auth
0003, artifact-store 0001, glas-harness 001) are not status lies.
## Kind 3 — missing / stale successor
| Source | Gap | Who rules |
| --- | --- | --- |
| `the-custodian/canon/standards/iam-profile_v0.1.md` | `superseded_by` still names v0.2; current is v0.3. | the-custodian |
Custodian ADR-008 already names Tenancy Posture. No gap.
## Kind 4 — contradicting decisions
No pair of *accepted* ADRs was found that cannot both be true.
railiance-platform ADR-0003 restates custodian ADR-001 (hub is a read
model). That is alignment, not a clash.
## Kind 6 — duplicate current claim
| Sources | Claim | Who rules |
| --- | --- | --- |
| custodian ADR-008 vs Tenancy Posture | Multi-tenancy framework. ADR-008 is already superseded. T04: `superseded`. | already ruled in the source |
| iam-profile v0.2 and v0.3 | Same `id`, both `accepted`. T04: v0.2 `superseded`, v0.3 `publish` after id fix. | net-kingdom |
| railiance-hosts and railiance-infra ADR-002 | Identical superseded copies. | those repos (historical only) |
| railiance-hosts and railiance-infra ADR-003 | Identical **accepted** 5-repo stack ADR. **Conflict.** | those repos or railiance-master |
| railiance-hosts and railiance-infra ADR-004 | Identical **accepted** Forgejo runner ADR. **Conflict.** | those repos |
## Conflict rows that stay unpublished
Until the owner rules:
1. `railiance-hosts` / `railiance-infra` ADR-003
2. `railiance-hosts` / `railiance-infra` ADR-004
3. `coulomb-social` ADR-0002 (partial supersession)
Kind 5 (architecture miss) is not run yet. It starts when
`coulomb-estate_v0.1.md` chapter 9 exists.

View file

@ -41,8 +41,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Cross-repo event bridge. Id ACT-ADR-001 is unique. Needs owner/revision/review front-matter.",
"source_path": "docs/adr/adr-001-event-bridge-architecture.md",
"source_repo": "activity-core",
"successor": ""
@ -85,8 +85,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Cross-repo definition format. Unique id. Needs owner/revision/review.",
"source_path": "docs/adr/adr-002-definition-format.md",
"source_repo": "activity-core",
"successor": ""
@ -127,8 +127,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Cross-repo rule/instruction split. Unique id. Needs owner/revision/review.",
"source_path": "docs/adr/adr-003-rule-instruction-model.md",
"source_repo": "activity-core",
"successor": ""
@ -168,8 +168,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Cross-repo producer trust boundary. Unique id. Needs owner/revision/review.",
"source_path": "docs/adr/adr-004-producer-trust-boundary.md",
"source_repo": "activity-core",
"successor": ""
@ -204,8 +204,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Cross-repo ops-run vs work-record split. Unique id. Needs owner/revision/review.",
"source_path": "docs/adr/adr-005-ops-runs-vs-dev-work-records.md",
"source_repo": "activity-core",
"successor": ""
@ -500,7 +500,9 @@
"target-revenue/docs/adr/ADR-0001-stage0-library-stack.md",
"the-custodian/canon/architecture/adr-001-workplans-as-repo-artefacts.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-001",
@ -527,7 +529,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-001' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-001-workplan-prefix.md",
"source_repo": "coulomb-loop",
"successor": ""
@ -548,7 +550,9 @@
"target-revenue/docs/adr/ADR-0002-hosted-trust-service-stack.md",
"the-custodian/canon/architecture/adr-002-custodian-agent-runtime-design.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-002",
@ -574,7 +578,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-002' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-002-customer-supplier-boundary.md",
"source_repo": "coulomb-loop",
"successor": ""
@ -593,7 +597,9 @@
"rapp-postgres/docs/adr/ADR-0003-e3-row-level-security-contract.md",
"the-custodian/canon/architecture/adr-003-materialized-derived-state.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-003",
@ -619,7 +625,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-003' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-003-cadence-ramp-policy.md",
"source_repo": "coulomb-loop",
"successor": ""
@ -637,7 +643,9 @@
"rapp-postgres/docs/adr/ADR-0004-platform-pg-cell-ceiling.md",
"the-custodian/canon/architecture/adr-004-connectivity-first-network-posture.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-004",
@ -663,7 +671,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-004' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-004-repo-rotation-on-diminishing-returns.md",
"source_repo": "coulomb-loop",
"successor": ""
@ -686,7 +694,9 @@
"target-revenue/docs/adr/ADR-0001-stage0-library-stack.md",
"the-custodian/canon/architecture/adr-001-workplans-as-repo-artefacts.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-0001",
@ -712,7 +722,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-0001' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-0001-netkingdom-identity.md",
"source_repo": "coulomb-social",
"successor": ""
@ -733,7 +743,9 @@
"target-revenue/docs/adr/ADR-0002-hosted-trust-service-stack.md",
"the-custodian/canon/architecture/adr-002-custodian-agent-runtime-design.md"
],
"conflict_kinds": [],
"conflict_kinds": [
2
],
"file_present": true,
"frontmatter": {
"id": "",
@ -758,11 +770,11 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "conflict",
"review_notes": "Status is 'superseded in part' by ADR-0003/0004. Not a clean superseded or accepted. Who rules: coulomb-social.",
"source_path": "docs/adr/ADR-0002-space-content-forgejo-markdown.md",
"source_repo": "coulomb-social",
"successor": ""
"successor": "coulomb-social/docs/adr/ADR-0003-page-centric-markdown-sor.md"
},
{
"bare_adr": "ADR-0003",
@ -1235,7 +1247,9 @@
"target-revenue/docs/adr/ADR-0001-stage0-library-stack.md",
"the-custodian/canon/architecture/adr-001-workplans-as-repo-artefacts.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-001",
@ -1262,7 +1276,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-001' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-001-workplan-convention.md",
"source_repo": "kaizen-agentic",
"successor": ""
@ -1283,7 +1297,9 @@
"target-revenue/docs/adr/ADR-0002-hosted-trust-service-stack.md",
"the-custodian/canon/architecture/adr-002-custodian-agent-runtime-design.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-002",
@ -1309,7 +1325,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-002' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-002-project-memory-convention.md",
"source_repo": "kaizen-agentic",
"successor": ""
@ -1328,7 +1344,9 @@
"rapp-postgres/docs/adr/ADR-0003-e3-row-level-security-contract.md",
"the-custodian/canon/architecture/adr-003-materialized-derived-state.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-003",
@ -1354,7 +1372,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-003' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-003-protocols-artifact-convention.md",
"source_repo": "kaizen-agentic",
"successor": ""
@ -1372,7 +1390,9 @@
"rapp-postgres/docs/adr/ADR-0004-platform-pg-cell-ceiling.md",
"the-custodian/canon/architecture/adr-004-connectivity-first-network-posture.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-004",
@ -1398,7 +1418,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-004' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-004-project-metrics-convention.md",
"source_repo": "kaizen-agentic",
"successor": ""
@ -1411,7 +1431,9 @@
"railiance-master/docs/adr/ADR-0005-derived-rail-composition.md",
"the-custodian/canon/architecture/adr-005-cross-repo-workplans-project-repos.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-005",
@ -1436,7 +1458,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-005' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-005-scheduled-agent-execution.md",
"source_repo": "kaizen-agentic",
"successor": ""
@ -1535,7 +1557,9 @@
"target-revenue/docs/adr/ADR-0001-stage0-library-stack.md",
"the-custodian/canon/architecture/adr-001-workplans-as-repo-artefacts.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-0001",
@ -1561,7 +1585,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-0001' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-0001-choose-go-for-keycape.md",
"source_repo": "key-cape",
"successor": ""
@ -1699,7 +1723,11 @@
{
"bare_adr": "",
"bare_adr_collisions": [],
"conflict_kinds": [],
"conflict_kinds": [
1,
2,
6
],
"file_present": true,
"frontmatter": {
"id": "netkingdom-iam-profile",
@ -1722,16 +1750,19 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "superseded",
"review_notes": "v0.3 says it supersedes v0.2, but v0.2 is still status accepted and shares id netkingdom-iam-profile. Who rules: net-kingdom (status + unique id).",
"source_path": "canon/standards/iam-profile_v0.2.md",
"source_repo": "net-kingdom",
"successor": ""
"successor": "net-kingdom/canon/standards/iam-profile_v0.3.md"
},
{
"bare_adr": "",
"bare_adr_collisions": [],
"conflict_kinds": [],
"conflict_kinds": [
1,
6
],
"file_present": true,
"frontmatter": {
"id": "netkingdom-iam-profile",
@ -1754,8 +1785,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Current IAM profile. Cannot publish until id is unique (e.g. netkingdom-iam-profile-v0.3). Who rules: net-kingdom.",
"source_path": "canon/standards/iam-profile_v0.3.md",
"source_repo": "net-kingdom",
"successor": ""
@ -2283,7 +2314,10 @@
"target-revenue/docs/adr/ADR-0002-hosted-trust-service-stack.md",
"the-custodian/canon/architecture/adr-002-custodian-agent-runtime-design.md"
],
"conflict_kinds": [],
"conflict_kinds": [
2,
6
],
"file_present": true,
"frontmatter": {
"id": "",
@ -2308,11 +2342,11 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "superseded",
"review_notes": "Body is superseded by ADR-003. Byte-identical copy also lives in railiance-infra. Who rules: railiance-hosts/infra which copy is historical.",
"source_path": "docs/adr/ADR-002-repo-boundary-hosts-vs-bootstrap.md",
"source_repo": "railiance-hosts",
"successor": ""
"successor": "railiance-hosts/docs/adr/ADR-003-railiance-5repo-stack-architecture.md"
},
{
"bare_adr": "ADR-0003",
@ -2328,7 +2362,9 @@
"rapp-postgres/docs/adr/ADR-0003-e3-row-level-security-contract.md",
"the-custodian/canon/architecture/adr-003-materialized-derived-state.md"
],
"conflict_kinds": [],
"conflict_kinds": [
6
],
"file_present": true,
"frontmatter": {
"id": "",
@ -2353,8 +2389,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "conflict",
"review_notes": "Accepted 5-repo stack ADR is byte-identical in railiance-hosts and railiance-infra. Two current copies of one decision. Who rules: those two repos, or railiance-master if the stack story moved.",
"source_path": "docs/adr/ADR-003-railiance-5repo-stack-architecture.md",
"source_repo": "railiance-hosts",
"successor": ""
@ -2372,7 +2408,9 @@
"rapp-postgres/docs/adr/ADR-0004-platform-pg-cell-ceiling.md",
"the-custodian/canon/architecture/adr-004-connectivity-first-network-posture.md"
],
"conflict_kinds": [],
"conflict_kinds": [
6
],
"file_present": true,
"frontmatter": {
"id": "",
@ -2397,8 +2435,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "conflict",
"review_notes": "Accepted Forgejo runner ADR is byte-identical in railiance-hosts and railiance-infra. Who rules: those two repos.",
"source_path": "docs/adr/ADR-004-forgejo-in-cluster-actions-runner.md",
"source_repo": "railiance-hosts",
"successor": ""
@ -2419,7 +2457,10 @@
"target-revenue/docs/adr/ADR-0002-hosted-trust-service-stack.md",
"the-custodian/canon/architecture/adr-002-custodian-agent-runtime-design.md"
],
"conflict_kinds": [],
"conflict_kinds": [
2,
6
],
"file_present": true,
"frontmatter": {
"id": "",
@ -2444,11 +2485,11 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "superseded",
"review_notes": "Identical to the railiance-hosts copy; both say superseded by ADR-003.",
"source_path": "docs/adr/ADR-002-repo-boundary-hosts-vs-bootstrap.md",
"source_repo": "railiance-infra",
"successor": ""
"successor": "railiance-infra/docs/adr/ADR-003-railiance-5repo-stack-architecture.md"
},
{
"bare_adr": "ADR-0003",
@ -2464,7 +2505,9 @@
"rapp-postgres/docs/adr/ADR-0003-e3-row-level-security-contract.md",
"the-custodian/canon/architecture/adr-003-materialized-derived-state.md"
],
"conflict_kinds": [],
"conflict_kinds": [
6
],
"file_present": true,
"frontmatter": {
"id": "",
@ -2489,8 +2532,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "conflict",
"review_notes": "Identical accepted copy of the hosts ADR-003. Do not publish both.",
"source_path": "docs/adr/ADR-003-railiance-5repo-stack-architecture.md",
"source_repo": "railiance-infra",
"successor": ""
@ -2508,7 +2551,9 @@
"rapp-postgres/docs/adr/ADR-0004-platform-pg-cell-ceiling.md",
"the-custodian/canon/architecture/adr-004-connectivity-first-network-posture.md"
],
"conflict_kinds": [],
"conflict_kinds": [
6
],
"file_present": true,
"frontmatter": {
"id": "",
@ -2533,8 +2578,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "conflict",
"review_notes": "Identical accepted copy of the hosts ADR-004. Do not publish both.",
"source_path": "docs/adr/ADR-004-forgejo-in-cluster-actions-runner.md",
"source_repo": "railiance-infra",
"successor": ""
@ -2897,8 +2942,8 @@
"id"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Binds other repos on S3. Needs a unique publication id in front-matter.",
"source_path": "docs/adr/ADR-0001-s3-platform-service-boundary.md",
"source_repo": "railiance-platform",
"successor": ""
@ -2939,8 +2984,8 @@
"id"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Proposed placement-policy ownership. Bindings are cross-repo. Needs a unique id.",
"source_path": "docs/adr/ADR-0002-placement-policy-ownership.md",
"source_repo": "railiance-platform",
"successor": ""
@ -2979,8 +3024,8 @@
"id"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Restates ADR-001 for this repo. Needs a unique publication id (front-matter has title but no id).",
"source_path": "docs/adr/ADR-0003-decisions-live-in-the-repo.md",
"source_repo": "railiance-platform",
"successor": ""
@ -3217,7 +3262,9 @@
"target-revenue/docs/adr/ADR-0001-stage0-library-stack.md",
"the-custodian/canon/architecture/adr-001-workplans-as-repo-artefacts.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-001",
@ -3244,7 +3291,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-001' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-001-agent-harness-architecture.md",
"source_repo": "rein-aharness",
"successor": ""
@ -3267,7 +3314,9 @@
"rein-aharness/docs/adr/ADR-001-agent-harness-architecture.md",
"the-custodian/canon/architecture/adr-001-workplans-as-repo-artefacts.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-0001",
@ -3293,7 +3342,7 @@
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"review_notes": "Front-matter id 'ADR-0001' is shared; pick a repo-prefixed publication id before publish. Who rules: owning repo.",
"source_path": "docs/adr/ADR-0001-stage0-library-stack.md",
"source_repo": "target-revenue",
"successor": ""
@ -3360,7 +3409,9 @@
"rein-aharness/docs/adr/ADR-001-agent-harness-architecture.md",
"target-revenue/docs/adr/ADR-0001-stage0-library-stack.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-001",
@ -3386,8 +3437,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate rule: workplans originate as repo files. Needs a unique publication id (e.g. CUST-ADR-001) before publish.",
"source_path": "canon/architecture/adr-001-workplans-as-repo-artefacts.md",
"source_repo": "the-custodian",
"successor": ""
@ -3408,7 +3459,9 @@
"rapp-postgres/docs/adr/ADR-0002-data-retention-and-erasure.md",
"target-revenue/docs/adr/ADR-0002-hosted-trust-service-stack.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-002",
@ -3433,8 +3486,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate ADR. Prefix the publication id before publish.",
"source_path": "canon/architecture/adr-002-custodian-agent-runtime-design.md",
"source_repo": "the-custodian",
"successor": ""
@ -3453,7 +3506,9 @@
"railiance-platform/docs/adr/ADR-0003-decisions-live-in-the-repo.md",
"rapp-postgres/docs/adr/ADR-0003-e3-row-level-security-contract.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-003",
@ -3478,8 +3533,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate ADR: hub is a derived read-model. Prefix the publication id before publish.",
"source_path": "canon/architecture/adr-003-materialized-derived-state.md",
"source_repo": "the-custodian",
"successor": ""
@ -3497,7 +3552,9 @@
"railiance-master/docs/adr/ADR-0004-first-wave-reef-rollout.md",
"rapp-postgres/docs/adr/ADR-0004-platform-pg-cell-ceiling.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-004",
@ -3522,8 +3579,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate ADR. Prefix the publication id before publish.",
"source_path": "canon/architecture/adr-004-connectivity-first-network-posture.md",
"source_repo": "the-custodian",
"successor": ""
@ -3536,7 +3593,9 @@
"railiance-infra/docs/adr/ADR-005-k3s-api-tunnel-only.md",
"railiance-master/docs/adr/ADR-0005-derived-rail-composition.md"
],
"conflict_kinds": [],
"conflict_kinds": [
1
],
"file_present": true,
"frontmatter": {
"id": "ADR-005",
@ -3560,8 +3619,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate ADR. Prefix the publication id before publish.",
"source_path": "canon/architecture/adr-005-cross-repo-workplans-project-repos.md",
"source_repo": "the-custodian",
"successor": ""
@ -3595,8 +3654,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate ADR. Id ADR-006 is unique in front-matter today; still prefix for consistency.",
"source_path": "canon/architecture/adr-006-canon-federation-concept-ownership.md",
"source_repo": "the-custodian",
"successor": ""
@ -3630,8 +3689,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Estate ADR. Prefix the publication id for consistency.",
"source_path": "canon/architecture/adr-007-workplan-identity-and-repo-worker-topology.md",
"source_repo": "the-custodian",
"successor": ""
@ -3642,7 +3701,9 @@
"net-kingdom/docs/adr/ADR-0008-object-storage-sts-credential-vending.md",
"railiance-master/docs/adr/ADR-0008-private-by-default-exposure.md"
],
"conflict_kinds": [],
"conflict_kinds": [
6
],
"file_present": true,
"frontmatter": {
"id": "ADR-008",
@ -3664,8 +3725,8 @@
"review"
],
"notes": "Relocated to net-kingdom Tenancy Posture. Duplicate-claim candidate (kind 6).",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "superseded",
"review_notes": "Body and front-matter already say relocated to Tenancy Posture. Not a live duplicate claim. Who ruled: T04 from the document itself.",
"source_path": "canon/architecture/adr-008-multi-tenancy-model.md",
"source_repo": "the-custodian",
"successor": "netkingdom-tenancy-posture"
@ -3697,8 +3758,8 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "publish",
"review_notes": "Proposed estate ADR. Publish as proposed once prefixed and review metadata is added.",
"source_path": "canon/architecture/adr-010-hub-authority-and-local-cache-model.md",
"source_repo": "the-custodian",
"successor": ""
@ -3729,9 +3790,36 @@
"review"
],
"notes": "",
"proposed_disposition": "publish",
"review_notes": "Proposed estate ADR. Publish as proposed once prefixed and review metadata is added.",
"source_path": "canon/architecture/adr-011-federated-namespaces-and-reconciliation-limits.md",
"source_repo": "the-custodian",
"successor": ""
},
{
"bare_adr": "",
"bare_adr_collisions": [],
"conflict_kinds": [],
"file_present": true,
"frontmatter": {
"id": "coulomb-estate-architecture",
"last_reviewed": "2026-08-18",
"owner": "the-custodian",
"review_interval": "6m",
"revision": "draft-1",
"status": "proposed",
"title": "Coulomb estate 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": "canon/architecture/adr-011-federated-namespaces-and-reconciliation-limits.md",
"source_path": "canon/architecture/coulomb-estate_v0.1.md",
"source_repo": "the-custodian",
"successor": ""
},
@ -4110,7 +4198,9 @@
{
"bare_adr": "",
"bare_adr_collisions": [],
"conflict_kinds": [],
"conflict_kinds": [
3
],
"file_present": true,
"frontmatter": {
"id": "canon-iam-profile",
@ -4131,11 +4221,11 @@
"review"
],
"notes": "",
"proposed_disposition": "unreviewed",
"review_notes": "",
"proposed_disposition": "superseded",
"review_notes": "Already superseded. Recorded successor still points at v0.2; v0.3 now supersedes v0.2. Who rules: the-custodian to update superseded_by.",
"source_path": "canon/standards/iam-profile_v0.1.md",
"source_repo": "the-custodian",
"successor": ""
"successor": "net-kingdom/canon/standards/iam-profile_v0.3.md"
},
{
"bare_adr": "",
@ -4764,6 +4854,7 @@
"successor": ""
}
],
"rulings": "/home/worsch/policy-nexus/docs/adr-review/rulings.json",
"schema_version": 1,
"source_inventory": "source-inventory.json"
}

View file

@ -73,6 +73,12 @@ except for the first publish set named in WP-0003 (this repo's
ADR-0001 and the eight railiance-master ADRs), which start as
`publish` because they are already relevance-obvious.
T03/T04 write `rulings.json`. A ledger refresh merges those four
review fields onto the regenerated facts. Kind `1` is also applied
automatically when a front-matter `id` is shared; that alone does not
flip the row to `conflict` — it is a prefix packet, not a
contradiction.
## First publish set
- `policy-nexus` `docs/adr/ADR-0001-addressing-and-permanence.md`

View file

@ -0,0 +1,232 @@
{
"schema_version": 1,
"ruled_at": "2026-08-18",
"workplan": "POLICY-NEXUS-WP-0003",
"note": "T03/T04 overlay. Regenerating the ledger merges these fields onto inventory facts. Kind 1 on a shared front-matter id is also applied automatically.",
"rulings": [
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-008-multi-tenancy-model.md",
"proposed_disposition": "superseded",
"conflict_kinds": [6],
"successor": "netkingdom-tenancy-posture",
"review_notes": "Body and front-matter already say relocated to Tenancy Posture. Not a live duplicate claim. Who ruled: T04 from the document itself."
},
{
"source_repo": "the-custodian",
"source_path": "canon/standards/iam-profile_v0.1.md",
"proposed_disposition": "superseded",
"conflict_kinds": [3],
"successor": "net-kingdom/canon/standards/iam-profile_v0.3.md",
"review_notes": "Already superseded. Recorded successor still points at v0.2; v0.3 now supersedes v0.2. Who rules: the-custodian to update superseded_by."
},
{
"source_repo": "net-kingdom",
"source_path": "canon/standards/iam-profile_v0.2.md",
"proposed_disposition": "superseded",
"conflict_kinds": [1, 2, 6],
"successor": "net-kingdom/canon/standards/iam-profile_v0.3.md",
"review_notes": "v0.3 says it supersedes v0.2, but v0.2 is still status accepted and shares id netkingdom-iam-profile. Who rules: net-kingdom (status + unique id)."
},
{
"source_repo": "net-kingdom",
"source_path": "canon/standards/iam-profile_v0.3.md",
"proposed_disposition": "publish",
"conflict_kinds": [1, 6],
"successor": "",
"review_notes": "Current IAM profile. Cannot publish until id is unique (e.g. netkingdom-iam-profile-v0.3). Who rules: net-kingdom."
},
{
"source_repo": "railiance-hosts",
"source_path": "docs/adr/ADR-002-repo-boundary-hosts-vs-bootstrap.md",
"proposed_disposition": "superseded",
"conflict_kinds": [2, 6],
"successor": "railiance-hosts/docs/adr/ADR-003-railiance-5repo-stack-architecture.md",
"review_notes": "Body is superseded by ADR-003. Byte-identical copy also lives in railiance-infra. Who rules: railiance-hosts/infra which copy is historical."
},
{
"source_repo": "railiance-infra",
"source_path": "docs/adr/ADR-002-repo-boundary-hosts-vs-bootstrap.md",
"proposed_disposition": "superseded",
"conflict_kinds": [2, 6],
"successor": "railiance-infra/docs/adr/ADR-003-railiance-5repo-stack-architecture.md",
"review_notes": "Identical to the railiance-hosts copy; both say superseded by ADR-003."
},
{
"source_repo": "railiance-hosts",
"source_path": "docs/adr/ADR-003-railiance-5repo-stack-architecture.md",
"proposed_disposition": "conflict",
"conflict_kinds": [6],
"successor": "",
"review_notes": "Accepted 5-repo stack ADR is byte-identical in railiance-hosts and railiance-infra. Two current copies of one decision. Who rules: those two repos, or railiance-master if the stack story moved."
},
{
"source_repo": "railiance-infra",
"source_path": "docs/adr/ADR-003-railiance-5repo-stack-architecture.md",
"proposed_disposition": "conflict",
"conflict_kinds": [6],
"successor": "",
"review_notes": "Identical accepted copy of the hosts ADR-003. Do not publish both."
},
{
"source_repo": "railiance-hosts",
"source_path": "docs/adr/ADR-004-forgejo-in-cluster-actions-runner.md",
"proposed_disposition": "conflict",
"conflict_kinds": [6],
"successor": "",
"review_notes": "Accepted Forgejo runner ADR is byte-identical in railiance-hosts and railiance-infra. Who rules: those two repos."
},
{
"source_repo": "railiance-infra",
"source_path": "docs/adr/ADR-004-forgejo-in-cluster-actions-runner.md",
"proposed_disposition": "conflict",
"conflict_kinds": [6],
"successor": "",
"review_notes": "Identical accepted copy of the hosts ADR-004. Do not publish both."
},
{
"source_repo": "coulomb-social",
"source_path": "docs/adr/ADR-0002-space-content-forgejo-markdown.md",
"proposed_disposition": "conflict",
"conflict_kinds": [2],
"successor": "coulomb-social/docs/adr/ADR-0003-page-centric-markdown-sor.md",
"review_notes": "Status is 'superseded in part' by ADR-0003/0004. Not a clean superseded or accepted. Who rules: coulomb-social."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-001-workplans-as-repo-artefacts.md",
"proposed_disposition": "publish",
"conflict_kinds": [1],
"successor": "",
"review_notes": "Estate rule: workplans originate as repo files. Needs a unique publication id (e.g. CUST-ADR-001) before publish."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-002-custodian-agent-runtime-design.md",
"proposed_disposition": "publish",
"conflict_kinds": [1],
"successor": "",
"review_notes": "Estate ADR. Prefix the publication id before publish."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-003-materialized-derived-state.md",
"proposed_disposition": "publish",
"conflict_kinds": [1],
"successor": "",
"review_notes": "Estate ADR: hub is a derived read-model. Prefix the publication id before publish."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-004-connectivity-first-network-posture.md",
"proposed_disposition": "publish",
"conflict_kinds": [1],
"successor": "",
"review_notes": "Estate ADR. Prefix the publication id before publish."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-005-cross-repo-workplans-project-repos.md",
"proposed_disposition": "publish",
"conflict_kinds": [1],
"successor": "",
"review_notes": "Estate ADR. Prefix the publication id before publish."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-006-canon-federation-concept-ownership.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Estate ADR. Id ADR-006 is unique in front-matter today; still prefix for consistency."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-007-workplan-identity-and-repo-worker-topology.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Estate ADR. Prefix the publication id for consistency."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-010-hub-authority-and-local-cache-model.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Proposed estate ADR. Publish as proposed once prefixed and review metadata is added."
},
{
"source_repo": "the-custodian",
"source_path": "canon/architecture/adr-011-federated-namespaces-and-reconciliation-limits.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Proposed estate ADR. Publish as proposed once prefixed and review metadata is added."
},
{
"source_repo": "activity-core",
"source_path": "docs/adr/adr-001-event-bridge-architecture.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Cross-repo event bridge. Id ACT-ADR-001 is unique. Needs owner/revision/review front-matter."
},
{
"source_repo": "activity-core",
"source_path": "docs/adr/adr-002-definition-format.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Cross-repo definition format. Unique id. Needs owner/revision/review."
},
{
"source_repo": "activity-core",
"source_path": "docs/adr/adr-003-rule-instruction-model.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Cross-repo rule/instruction split. Unique id. Needs owner/revision/review."
},
{
"source_repo": "activity-core",
"source_path": "docs/adr/adr-004-producer-trust-boundary.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Cross-repo producer trust boundary. Unique id. Needs owner/revision/review."
},
{
"source_repo": "activity-core",
"source_path": "docs/adr/adr-005-ops-runs-vs-dev-work-records.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Cross-repo ops-run vs work-record split. Unique id. Needs owner/revision/review."
},
{
"source_repo": "railiance-platform",
"source_path": "docs/adr/ADR-0001-s3-platform-service-boundary.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Binds other repos on S3. Needs a unique publication id in front-matter."
},
{
"source_repo": "railiance-platform",
"source_path": "docs/adr/ADR-0002-placement-policy-ownership.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Proposed placement-policy ownership. Bindings are cross-repo. Needs a unique id."
},
{
"source_repo": "railiance-platform",
"source_path": "docs/adr/ADR-0003-decisions-live-in-the-repo.md",
"proposed_disposition": "publish",
"conflict_kinds": [],
"successor": "",
"review_notes": "Restates ADR-001 for this repo. Needs a unique publication id (front-matter has title but no id)."
}
]
}