RPF-WP-0018 T01-T06: publish S3 posture, placement policy, quotas, ADR surface
T01 docs/tenancy-posture.md - vector set per service rather than one repo vector, with the provider-versus-consumer finding routed to net-kingdom. T02/T03/T06 docs/placement-policy.md - accepts placement ownership scoped to rule-here/number-there, records a placement owner per workload, reports the latency-critical + batch co-residency on platform-pg, marks the connection-ceiling trigger unmonitored pending railiance-telemetry, and answers the retention floor/ceiling question. T04 s3-consumer-interfaces 1.1.0 - quota disclosure per SS10.2. Surfaces that apps-pg has no backup, no resource limits and no tuned parameters. T05 docs/adr/ created with a mandatory-frontmatter convention and the first three ADRs. This repo previously held none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
b83194741d
commit
e7e4e33bb8
9 changed files with 809 additions and 12 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Align S3 with the estate policy surface (Tenancy Posture + policy-nexus)"
|
||||
domain: financials
|
||||
repo: railiance-platform
|
||||
status: proposed
|
||||
status: active
|
||||
owner: codex
|
||||
topic_slug: railiance
|
||||
created: "2026-08-17"
|
||||
|
|
@ -15,6 +15,7 @@ related:
|
|||
- RAPP-POSTGRES-WP-0002
|
||||
origin: routed
|
||||
origin_ref: "net-kingdom/canon/standards/tenancy-posture_v0.1.md §19.2, §20"
|
||||
state_hub_workstream_id: "d40827cb-bb48-4cdd-9b41-8dfae116d705"
|
||||
---
|
||||
|
||||
# RPF-WP-0018 — policy surface alignment
|
||||
|
|
@ -65,7 +66,7 @@ monitoring we do not have is the exact overclaim §6 prohibits, so T03
|
|||
records each trigger with a named monitor or an explicit `unmonitored`
|
||||
marker, and the marker is the honest answer until telemetry lands.
|
||||
|
||||
**Does not fit, and the policy should change.** Three findings, T07.
|
||||
**Does not fit, and the policy should change.** Five findings, T07.
|
||||
|
||||
## Findings against the policy (recommendations, not yet routed)
|
||||
|
||||
|
|
@ -131,6 +132,38 @@ has custody of — plus a statement of which it owns versus operates. T01
|
|||
does that and routes the finding back to `net-kingdom` as the framework's
|
||||
first real correction from review rather than from research.
|
||||
|
||||
Refined while writing T01: the sharper form of F4 is that **the five
|
||||
ladders describe a consumer of storage, not a provider of it.** Every S3
|
||||
service scores at or near zero on I, A and E for the same structural
|
||||
reason — a storage or credential platform has no tenant dimension of its
|
||||
own. The `openbao` E line is the demonstration: `E: 0` is literally correct
|
||||
and actively misleading, because the mechanism in place is
|
||||
credential-scoped structural separation, the machinery E4 describes,
|
||||
pointed at a consumer boundary rather than a tenant one. Proposed remedy is
|
||||
a **provider declaration** beside the consumer vector, stating per axis the
|
||||
maximum level the platform makes reachable and what the consumer must do to
|
||||
reach it. Offered as an addition, not a renumbering.
|
||||
|
||||
**F5 — `policy-nexus` T02/T05 cannot be built against the corpus as it
|
||||
stands.** Measured across the workstation on 2026-08-17: **69 ADRs in 19
|
||||
repos** — closely matching that workplan's "roughly 68 across 18" — of
|
||||
which **21 carry YAML frontmatter**, **41 carry any status field**, and
|
||||
**2 carry any notion of a review date**. T02 specifies a front-matter-driven
|
||||
renderer taking title, status, revision and review date from the source; T05
|
||||
requires every page to show status, revision and last-reviewed, with a
|
||||
staleness marker once a review interval is exceeded. Against this corpus
|
||||
that renderer has nothing to read for 48 of 69 documents, and the currency
|
||||
half of the repo's purpose has data for 2.
|
||||
|
||||
*Recommend:* T03 of that workplan should treat frontmatter as an **ingestion
|
||||
precondition**, not a rendering input — a document without the required
|
||||
fields is reported as non-conformant and left unpublished, rather than
|
||||
rendered with blanks or with dates the site inferred. Inferring them is the
|
||||
failure mode that workplan already names as its top risk: the publication
|
||||
becomes a second source of truth. The corollary is that policy-nexus needs
|
||||
a conformance report aimed at source repos before it needs a site, and this
|
||||
repo's `docs/adr/README.md` is one repo's answer to it.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- No workload moves placement level in this workplan. Declaring where
|
||||
|
|
@ -146,8 +179,9 @@ first real correction from review rather than from research.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "ff392a23-e72a-4442-843f-929f218404ae"
|
||||
```
|
||||
**Publish the S3 posture vector set.** Write `docs/tenancy-posture.md`:
|
||||
one vector per service under S3 custody (`openbao`, `apps-pg`, and the
|
||||
|
|
@ -158,8 +192,9 @@ Route F4 to `net-kingdom` with the vector set as the evidence.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "962fc494-bb9b-4f67-8e5b-2ed88a670945"
|
||||
```
|
||||
**Accept placement ownership, scoped.** Write `docs/placement-policy.md`:
|
||||
adopt the P0–P4 ladder by reference (do not restate it — the canon copy is
|
||||
|
|
@ -171,8 +206,9 @@ either way.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "f6f30233-3f6e-44a0-a644-7268f9d88f3c"
|
||||
```
|
||||
**Make triggers monitorable or honestly unmonitored.** For each of the five
|
||||
§8 triggers, record in `docs/placement-policy.md` what signal would fire it,
|
||||
|
|
@ -184,8 +220,9 @@ report which service classes are co-resident. Today that is
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "8a3ce90b-8af2-4dcd-9a35-77025d2123f2"
|
||||
```
|
||||
**Disclose quotas to consumers (§10.2).** Extend
|
||||
`docs/s3-consumer-interfaces.md` to `1.1.0` — additive under its own
|
||||
|
|
@ -196,8 +233,9 @@ these is announced to bound consumers, not discovered by them.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "a6da631d-fa4e-4c2b-acc3-d3cf53cfb57f"
|
||||
```
|
||||
**Create the ADR surface (F2).** Create `docs/adr/` with an ADR template
|
||||
carrying the frontmatter `policy-nexus` T02/T05 consume: title, status,
|
||||
|
|
@ -210,8 +248,9 @@ only home for a decision.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T06
|
||||
status: todo
|
||||
status: done
|
||||
priority: low
|
||||
state_hub_task_id: "99f2a4d8-b20c-4c43-8c94-0bc469bfcc46"
|
||||
```
|
||||
**Answer §19.9 — retention floor and ceiling.** Decide whether
|
||||
`backupRetentionDays` gets a platform minimum (so a consumer asking for one
|
||||
|
|
@ -223,8 +262,9 @@ maximum declared across co-residents, so a shorter horizon is a P2 trigger.
|
|||
|
||||
```task
|
||||
id: RPF-WP-0018-T07
|
||||
status: todo
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "b021fda3-23bd-4843-8d1b-983b6ec582b5"
|
||||
```
|
||||
**Route the findings.** Reply to `rapp-postgres` and `tenant-engine` with
|
||||
T01/T02 outcomes and F3/F4. Reply to `policy-nexus` with F1 (substrate
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue