railiance-platform/docs/adr
codex 56d516e10c
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Add unique publication ids to platform ADRs
RPLAT-ADR-0001–0003 so policy-nexus can register the S3, placement,
and file-backed decision records.
2026-08-19 01:09:18 +02:00
..
ADR-0001-s3-platform-service-boundary.md Add unique publication ids to platform ADRs 2026-08-19 01:09:18 +02:00
ADR-0002-placement-policy-ownership.md Add unique publication ids to platform ADRs 2026-08-19 01:09:18 +02:00
ADR-0003-decisions-live-in-the-repo.md Add unique publication ids to platform ADRs 2026-08-19 01:09:18 +02:00
README.md RPF-WP-0018 T01-T06: publish S3 posture, placement policy, quotas, ADR surface 2026-08-17 21:55:11 +02:00

title status revision owner date last_reviewed review_interval
ADR convention for railiance-platform accepted 1.0 railiance-platform 2026-08-17 2026-08-17 12m

ADRs in this repo

Work record: RPF-WP-0018 T05.

Until 2026-08-17 this repo held no ADRs. Its decisions lived either as prose in docs/ without status or ownership, or in the State Hub via record_decision(). Both are wrong homes, for the same reason: the hub is a read model and prose is not addressable as a decision. policy-nexus publishes canon and ADRs only, so a repo with no ADRs publishes nothing — regardless of how much governing content it holds. See ADR-0003.

What gets an ADR here

A decision gets an ADR when it binds someone other than the person who made it — another repo, a future maintainer, or a consumer of an S3 interface.

Content Home Published
A decision binding others docs/adr/ yes
A procedure someone follows docs/*.md runbook no
Live interface values docs/s3-consumer-interfaces.md no
Work sequencing workplans/ no

Runbooks stay prose deliberately. A site that publishes everything publishes nothing in particular, and POLICY-NEXUS-WP-0001 T03 already draws that line.

Frontmatter is mandatory

Every ADR carries the YAML block below. The fields are not decoration: they are exactly what POLICY-NEXUS-WP-0001 T02 and T05 consume to render a page and to mark it stale.

---
title: "ADR-NNNN — short imperative statement of the decision"
status: proposed | accepted | superseded | withdrawn
revision: "1.0"
owner: railiance-platform
date: "YYYY-MM-DD"          # when decided
last_reviewed: "YYYY-MM-DD"
review_interval: 6m | 12m   # after which the page shows as stale
supersedes: ADR-NNNN        # optional
superseded_by: ADR-NNNN     # optional
---

last_reviewed and review_interval are the two fields the rest of the estate mostly lacks — of 69 ADRs across 19 repos on 2026-08-17, 2 carried any notion of a review date. A publication surface cannot compute staleness without them and must not invent them, so they are required here.

Numbering is ADR-NNNN, four digits, never reused. A superseded ADR keeps its number and its file; it gains superseded_by and its status changes. Nothing is deleted — the published URL must keep resolving.

Sections

Context · Decision · Consequences · Alternatives considered. Keep the decision statement to one paragraph a reader can quote.