chore: use RMASTER-WP prefix for master workplans

Rename RAILIANCE-WP-0017..0021 to RMASTER-WP-* so railiance-master
IDs no longer collide with railiance-platform's RAILIANCE-WP series.
Hub UUIDs are unchanged.
This commit is contained in:
codex 2026-08-14 14:29:18 +02:00
parent 3cc0dc31d6
commit 4864b7852d
15 changed files with 121 additions and 119 deletions

View file

@ -7,7 +7,7 @@
**Domain:** financials **Domain:** financials
**Repo slug:** railiance-master **Repo slug:** railiance-master
**Topic ID:** `ca369340-a64e-442e-98f1-a4fa7dc74a38` **Topic ID:** `ca369340-a64e-442e-98f1-a4fa7dc74a38`
**Workplan prefix:** `RAILIANCE-WP-` **Workplan prefix:** `RMASTER-WP-`
--- ---
@ -191,10 +191,10 @@ Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run wa
Work items originate as files in this repo — not in the hub. The hub is a Work items originate as files in this repo — not in the hub. The hub is a
read/cache/index layer that rebuilds from files. read/cache/index layer that rebuilds from files.
**File location:** `workplans/RAILIANCE-WP-NNNN-<slug>.md` **File location:** `workplans/RMASTER-WP-NNNN-<slug>.md`
**Archived location:** finished workplans may move to **Archived location:** finished workplans may move to
`workplans/archived/YYMMDD-RAILIANCE-WP-NNNN-<slug>.md`. The `YYMMDD` prefix is `workplans/archived/YYMMDD-RMASTER-WP-NNNN-<slug>.md`. The `YYMMDD` prefix is
the completion/archive date; the frontmatter `id` does not change. the completion/archive date; the frontmatter `id` does not change.
**Ad Hoc Tasks:** small opportunistic fixes discovered during a session use **Ad Hoc Tasks:** small opportunistic fixes discovered during a session use
@ -206,7 +206,7 @@ for anything needing analysis, design, approval, dependencies, or multiple phase
```yaml ```yaml
--- ---
id: RAILIANCE-WP-NNNN id: RMASTER-WP-NNNN
type: workplan type: workplan
title: "..." title: "..."
domain: financials domain: financials
@ -227,7 +227,7 @@ are derived health labels, not frontmatter statuses.
**Task block format** (one per `##` section): **Task block format** (one per `##` section):
```task ```task
id: RAILIANCE-WP-NNNN-T01 id: RMASTER-WP-NNNN-T01
status: wait | todo | progress | done | cancel status: wait | todo | progress | done | cancel
priority: high | medium | low priority: high | medium | low
state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
@ -241,6 +241,8 @@ blocked work and `cancel` for stopped work.
Use `railiance-master` workplans for framework changes that span multiple Use `railiance-master` workplans for framework changes that span multiple
Railiance repos, especially repository taxonomy changes, architecture boundary Railiance repos, especially repository taxonomy changes, architecture boundary
changes, and migrations introducing `rail-*`, `rapp-*`, or `reef-*` concepts. changes, and migrations introducing `rail-*`, `rapp-*`, or `reef-*` concepts.
IDs use `RMASTER-WP-` so they do not collide with `RAILIANCE-WP-` in
`railiance-platform` and other ownership repos.
Do not use this repo to track implementation work that belongs entirely inside Do not use this repo to track implementation work that belongs entirely inside
one concrete ownership repo such as `railiance-platform` or `railiance-apps`. one concrete ownership repo such as `railiance-platform` or `railiance-apps`.

View file

@ -9,49 +9,49 @@
| Kind | ID | Status | Lane | Source | | Kind | ID | Status | Lane | Source |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| workplan | ADHOC-2026-07-30 | finished | — | workplans/ADHOC-2026-07-30.md | | workplan | ADHOC-2026-07-30 | finished | — | workplans/ADHOC-2026-07-30.md |
| workplan | RAILIANCE-WP-0017 | finished | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | workplan | RMASTER-WP-0017 | finished | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| workplan | RAILIANCE-WP-0018 | finished | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | workplan | RMASTER-WP-0018 | finished | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| workplan | RAILIANCE-WP-0019 | finished | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | workplan | RMASTER-WP-0019 | finished | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| workplan | RAILIANCE-WP-0020 | backlog | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | workplan | RMASTER-WP-0020 | backlog | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| workplan | RAILIANCE-WP-0021 | finished | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | workplan | RMASTER-WP-0021 | finished | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | ADHOC-2026-07-30-T01 | done | — | workplans/ADHOC-2026-07-30.md | | task | ADHOC-2026-07-30-T01 | done | — | workplans/ADHOC-2026-07-30.md |
| task | RAILIANCE-WP-0017-T01 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T01 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0017-T02 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T02 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0017-T03 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T03 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0017-T04 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T04 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0017-T05 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T05 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0017-T06 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T06 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0017-T07 | done | — | workplans/RAILIANCE-WP-0017-rail-rapp-reef-repo-separation.md | | task | RMASTER-WP-0017-T07 | done | — | workplans/RMASTER-WP-0017-rail-rapp-reef-repo-separation.md |
| task | RAILIANCE-WP-0018-T01 | done | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | task | RMASTER-WP-0018-T01 | done | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| task | RAILIANCE-WP-0018-T02 | done | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | task | RMASTER-WP-0018-T02 | done | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| task | RAILIANCE-WP-0018-T03 | done | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | task | RMASTER-WP-0018-T03 | done | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| task | RAILIANCE-WP-0018-T04 | done | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | task | RMASTER-WP-0018-T04 | done | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| task | RAILIANCE-WP-0018-T05 | done | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | task | RMASTER-WP-0018-T05 | done | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| task | RAILIANCE-WP-0018-T06 | done | — | workplans/RAILIANCE-WP-0018-first-wave-repo-family-materialization.md | | task | RMASTER-WP-0018-T06 | done | — | workplans/RMASTER-WP-0018-first-wave-repo-family-materialization.md |
| task | RAILIANCE-WP-0019-T01 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T01 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T02 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T02 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T03 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T03 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T04 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T04 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T05 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T05 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T06 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T06 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T07 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T07 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T08 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T08 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T09 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T09 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0019-T10 | done | — | workplans/RAILIANCE-WP-0019-knative-qonto-runtime-on-reef-railiance.md | | task | RMASTER-WP-0019-T10 | done | — | workplans/RMASTER-WP-0019-knative-qonto-runtime-on-reef-railiance.md |
| task | RAILIANCE-WP-0020-T01 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T01 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T02 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T02 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T03 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T03 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T04 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T04 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T05 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T05 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T06 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T06 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T07 | done | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T07 | done | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0020-T08 | todo | — | workplans/RAILIANCE-WP-0020-openbao-migration-to-reef-railiance.md | | task | RMASTER-WP-0020-T08 | todo | — | workplans/RMASTER-WP-0020-openbao-migration-to-reef-railiance.md |
| task | RAILIANCE-WP-0021-T01 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T01 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T02 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T02 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T03 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T03 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T04 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T04 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T05 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T05 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T06 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T06 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T07 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T07 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T08 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T08 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |
| task | RAILIANCE-WP-0021-T09 | done | — | workplans/RAILIANCE-WP-0021-rapp-declaration-schema.md | | task | RMASTER-WP-0021-T09 | done | — | workplans/RMASTER-WP-0021-rapp-declaration-schema.md |

View file

@ -1,6 +1,6 @@
--- ---
id: "e274defb-28f2-571e-abcb-c17b57eab473" id: "e274defb-28f2-571e-abcb-c17b57eab473"
name: "RAILIANCE-WP-0020 OpenBao Retention Closeout" name: "RMASTER-WP-0020 OpenBao Retention Closeout"
type: activity-definition type: activity-definition
version: "1.0" version: "1.0"
enabled: true enabled: true
@ -14,7 +14,7 @@ trigger:
timezone: Europe/Berlin timezone: Europe/Berlin
--- ---
# RAILIANCE-WP-0020 OpenBao retention closeout # RMASTER-WP-0020 OpenBao retention closeout
One-shot reactivation after the shortened 14-day reversible-retirement window. One-shot reactivation after the shortened 14-day reversible-retirement window.
It emits a claimable Activity Core ops run for the remaining cleanup task; it It emits a claimable Activity Core ops run for the remaining cleanup task; it
@ -24,9 +24,9 @@ does not delete CoulombCore resources automatically.
id: reactivate-openbao-retention-closeout id: reactivate-openbao-retention-closeout
condition: "" condition: ""
action: action:
task_template: "Reactivate RAILIANCE-WP-0020 for OpenBao retention closeout" task_template: "Reactivate RMASTER-WP-0020 for OpenBao retention closeout"
description: "Move RAILIANCE-WP-0020 from backlog to active, run the railiance01 disaster-recovery drill, verify retained rollback requirements, and request fresh explicit approval before any destructive CoulombCore cleanup. Remaining task: RAILIANCE-WP-0020-T08." description: "Move RMASTER-WP-0020 from backlog to active, run the railiance01 disaster-recovery drill, verify retained rollback requirements, and request fresh explicit approval before any destructive CoulombCore cleanup. Remaining task: RMASTER-WP-0020-T08."
target_repo: railiance-master target_repo: railiance-master
priority: medium priority: medium
labels: ["railiance", "openbao", "retention", "reactivation", "RAILIANCE-WP-0020-T08"] labels: ["railiance", "openbao", "retention", "reactivation", "RMASTER-WP-0020-T08"]
``` ```

View file

@ -5,7 +5,7 @@ Status: Accepted
## Context ## Context
`RAILIANCE-WP-0017` through `RAILIANCE-WP-0019` established the four-axis `RMASTER-WP-0017` through `RMASTER-WP-0019` established the four-axis
model and materialized the first family repos. The model held up. Its model and materialized the first family repos. The model held up. Its
enforcement did not. enforcement did not.

View file

@ -1,7 +1,7 @@
# First-Wave `rapp-*` Candidates # First-Wave `rapp-*` Candidates
Date: 2026-07-25 Date: 2026-07-25
Updated: 2026-08-13 (RAILIANCE-WP-0021-T08) Updated: 2026-08-13 (RMASTER-WP-0021-T08)
## Purpose ## Purpose

View file

@ -10,7 +10,7 @@ authority where the two disagree.
| `rail-*` | `declarations/rail.yaml` | `rail.schema.json` | | `rail-*` | `declarations/rail.yaml` | `rail.schema.json` |
| `reef-*` | `declarations/reef.yaml` | `reef.schema.json` | | `reef-*` | `declarations/reef.yaml` | `reef.schema.json` |
Written under `RAILIANCE-WP-0021` from the drift survey routed by Written under `RMASTER-WP-0021` from the drift survey routed by
`railiance-platform` under its `RAILIANCE-WP-0015` (State Hub messages `railiance-platform` under its `RAILIANCE-WP-0015` (State Hub messages
`04c776c4`, `f88f938d`). `04c776c4`, `f88f938d`).
@ -180,6 +180,6 @@ with a `deployables` list of `{name, namespace?, kind?}` (or bare name
strings). Live names that no rapp claims are reported as wave-2 worklist strings). Live names that no rapp claims are reported as wave-2 worklist
items, not suppressed. items, not suppressed.
The validator is `tools/validate-family-declarations.py` (RAILIANCE-WP-0021-T05). The validator is `tools/validate-family-declarations.py` (RMASTER-WP-0021-T05).
It is runnable standalone now. Calling it from `fix-consistency` waits on It is runnable standalone now. Calling it from `fix-consistency` waits on
`the-custodian` admitting the family prefixes; that sequencing is not ours. `the-custodian` admitting the family prefixes; that sequencing is not ours.

View file

@ -2,7 +2,7 @@
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://railiance.dev/schemas/rail.schema.json", "$id": "https://railiance.dev/schemas/rail.schema.json",
"title": "Railiance rail declaration", "title": "Railiance rail declaration",
"description": "Normative shape for declarations/rail.yaml in every rail-* repo. Authored by railiance-master under RAILIANCE-WP-0021-T04 from the two live rails and docs/rail-composition-contract.md. Codifies current practice; it does not tighten the rail family beyond what both live declarations already carry.", "description": "Normative shape for declarations/rail.yaml in every rail-* repo. Authored by railiance-master under RMASTER-WP-0021-T04 from the two live rails and docs/rail-composition-contract.md. Codifies current practice; it does not tighten the rail family beyond what both live declarations already carry.",
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [

View file

@ -2,7 +2,7 @@
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://railiance.dev/schemas/rapp.schema.json", "$id": "https://railiance.dev/schemas/rapp.schema.json",
"title": "Railiance rapp declaration", "title": "Railiance rapp declaration",
"description": "Normative shape for declarations/rapp.yaml in every rapp-* repo. Authored by railiance-master under RAILIANCE-WP-0021 from the drift survey routed by railiance-platform (RAILIANCE-WP-0015). This schema is normative; docs/repo-family-bootstrap-contract.md cites it rather than restating it.", "description": "Normative shape for declarations/rapp.yaml in every rapp-* repo. Authored by railiance-master under RMASTER-WP-0021 from the drift survey routed by railiance-platform (RAILIANCE-WP-0015). This schema is normative; docs/repo-family-bootstrap-contract.md cites it rather than restating it.",
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
@ -78,7 +78,7 @@
"type": "array", "type": "array",
"uniqueItems": true, "uniqueItems": true,
"items": { "$ref": "#/$defs/reefSlug" }, "items": { "$ref": "#/$defs/reefSlug" },
"description": "Reefs this package is bound to. Added by RAILIANCE-WP-0021-T04 as the source of reef.yaml bound_rapps. Required so the derivation is always defined: an empty list means the package is declared but not yet placed. The validator inverts this field to produce each reef's bound_rapps." "description": "Reefs this package is bound to. Added by RMASTER-WP-0021-T04 as the source of reef.yaml bound_rapps. Required so the derivation is always defined: an empty list means the package is declared but not yet placed. The validator inverts this field to produce each reef's bound_rapps."
}, },
"runtime_dependencies": { "runtime_dependencies": {
"type": "array", "type": "array",

View file

@ -2,7 +2,7 @@
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://railiance.dev/schemas/reef.schema.json", "$id": "https://railiance.dev/schemas/reef.schema.json",
"title": "Railiance reef declaration", "title": "Railiance reef declaration",
"description": "Normative shape for declarations/reef.yaml in every reef-* repo. Authored by railiance-master under RAILIANCE-WP-0021-T04 from the live reef-railiance declaration and docs/reef-substrate-model.md. bound_rapps is a derived projection of rapp.bound_reefs, not a hand-maintained registry.", "description": "Normative shape for declarations/reef.yaml in every reef-* repo. Authored by railiance-master under RMASTER-WP-0021-T04 from the live reef-railiance declaration and docs/reef-substrate-model.md. bound_rapps is a derived projection of rapp.bound_reefs, not a hand-maintained registry.",
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
"""Validate rail.yaml, rapp.yaml, and reef.yaml family declarations. """Validate rail.yaml, rapp.yaml, and reef.yaml family declarations.
RAILIANCE-WP-0021-T05. RMASTER-WP-0021-T05.
Discovers rail-*, rapp-*, and reef-* repos under a root (default: the Discovers rail-*, rapp-*, and reef-* repos under a root (default: the
parent of this repository), loads each declarations/<family>.yaml, and parent of this repository), loads each declarations/<family>.yaml, and
@ -15,7 +15,7 @@ checks, in this order:
6. if --inventory is given, every live deployable belongs to exactly one rapp 6. if --inventory is given, every live deployable belongs to exactly one rapp
This repo does not query a cluster. Live coverage consumes an inventory This repo does not query a cluster. Live coverage consumes an inventory
file produced by an implementation repo (RAILIANCE-WP-0021-T06). file produced by an implementation repo (RMASTER-WP-0021-T06).
Usage: Usage:
tools/validate-family-declarations.py tools/validate-family-declarations.py

View file

@ -1,5 +1,5 @@
--- ---
id: RAILIANCE-WP-0017 id: RMASTER-WP-0017
type: workplan type: workplan
title: "Rail, Rapp, and Reef Repo Separation" title: "Rail, Rapp, and Reef Repo Separation"
domain: financials domain: financials
@ -23,7 +23,7 @@ related_repos:
state_hub_workstream_id: "dd794e38-6da0-4acd-8ad8-e00bd2aa62bc" state_hub_workstream_id: "dd794e38-6da0-4acd-8ad8-e00bd2aa62bc"
--- ---
# RAILIANCE-WP-0017 - Rail, Rapp, and Reef Repo Separation # RMASTER-WP-0017 - Rail, Rapp, and Reef Repo Separation
## Goal ## Goal
@ -94,7 +94,7 @@ repo-local follow-up workplans or commits in those repos.
## T01 - Record the framework repo-family baseline in railiance-master ## T01 - Record the framework repo-family baseline in railiance-master
```task ```task
id: RAILIANCE-WP-0017-T01 id: RMASTER-WP-0017-T01
status: done status: done
priority: high priority: high
state_hub_task_id: "7cb6769a-5557-46e5-8e20-c492e5049604" state_hub_task_id: "7cb6769a-5557-46e5-8e20-c492e5049604"
@ -115,7 +115,7 @@ Acceptance:
## T02 - Prepare railiance-master as the cross-repo workplan home ## T02 - Prepare railiance-master as the cross-repo workplan home
```task ```task
id: RAILIANCE-WP-0017-T02 id: RMASTER-WP-0017-T02
status: done status: done
priority: high priority: high
state_hub_task_id: "17be5faa-cba2-4838-97af-dc3b79e0511b" state_hub_task_id: "17be5faa-cba2-4838-97af-dc3b79e0511b"
@ -133,7 +133,7 @@ Acceptance:
## T03 - Define the `rail-kubernetes` extraction boundary ## T03 - Define the `rail-kubernetes` extraction boundary
```task ```task
id: RAILIANCE-WP-0017-T03 id: RMASTER-WP-0017-T03
status: done status: done
priority: high priority: high
state_hub_task_id: "e25ea023-e2fe-44b9-96c1-cca19c65053f" state_hub_task_id: "e25ea023-e2fe-44b9-96c1-cca19c65053f"
@ -172,7 +172,7 @@ sequence.
## T04 - Identify and sequence the first `rapp-*` candidates ## T04 - Identify and sequence the first `rapp-*` candidates
```task ```task
id: RAILIANCE-WP-0017-T04 id: RMASTER-WP-0017-T04
status: done status: done
priority: high priority: high
state_hub_task_id: "674b1a4f-2c5b-499c-b26f-9ed4f9f0861c" state_hub_task_id: "674b1a4f-2c5b-499c-b26f-9ed4f9f0861c"
@ -208,7 +208,7 @@ enough to avoid immediate wrapper churn.
## T05 - Decide the first `reef-*` rollout for current substrates ## T05 - Decide the first `reef-*` rollout for current substrates
```task ```task
id: RAILIANCE-WP-0017-T05 id: RMASTER-WP-0017-T05
status: done status: done
priority: medium priority: medium
state_hub_task_id: "53c63266-fbcb-4644-86f4-042e7b80744e" state_hub_task_id: "53c63266-fbcb-4644-86f4-042e7b80744e"
@ -246,7 +246,7 @@ substrate nicknames intentionally left provisional.
## T06 - Define `railiance-fabric` and State Hub adaptation for the new repo families ## T06 - Define `railiance-fabric` and State Hub adaptation for the new repo families
```task ```task
id: RAILIANCE-WP-0017-T06 id: RMASTER-WP-0017-T06
status: done status: done
priority: medium priority: medium
state_hub_task_id: "4f47d000-6495-4163-8673-f339dd7ef41f" state_hub_task_id: "4f47d000-6495-4163-8673-f339dd7ef41f"
@ -270,7 +270,7 @@ declaration surface future `rail-*`, `rapp-*`, and `reef-*` repos must expose.
## T07 - Launch the first migration wave into concrete repo-local follow-up work ## T07 - Launch the first migration wave into concrete repo-local follow-up work
```task ```task
id: RAILIANCE-WP-0017-T07 id: RMASTER-WP-0017-T07
status: done status: done
priority: high priority: high
state_hub_task_id: "e762c05a-c6f1-439e-98e2-bf4d7b312a74" state_hub_task_id: "e762c05a-c6f1-439e-98e2-bf4d7b312a74"

View file

@ -1,5 +1,5 @@
--- ---
id: RAILIANCE-WP-0018 id: RMASTER-WP-0018
type: workplan type: workplan
title: "First-Wave Repo Family Materialization" title: "First-Wave Repo Family Materialization"
domain: financials domain: financials
@ -20,7 +20,7 @@ related_repos:
state_hub_workstream_id: "054a494c-e430-4164-b2c3-e32e759cc3e0" state_hub_workstream_id: "054a494c-e430-4164-b2c3-e32e759cc3e0"
--- ---
# RAILIANCE-WP-0018 - First-Wave Repo Family Materialization # RMASTER-WP-0018 - First-Wave Repo Family Materialization
## Goal ## Goal
@ -33,7 +33,7 @@ the sequencing still spans multiple ownership repos and Fabric integration.
## Why This Exists ## Why This Exists
`RAILIANCE-WP-0017` completed the architecture baseline and launched the first `RMASTER-WP-0017` completed the architecture baseline and launched the first
repo-local follow-up workplans. repo-local follow-up workplans.
What is still missing is the shared control plane for: What is still missing is the shared control plane for:
@ -98,7 +98,7 @@ It must not weaken the existing ownership boundaries:
## T01 - Publish the first-wave repo bootstrap contract ## T01 - Publish the first-wave repo bootstrap contract
```task ```task
id: RAILIANCE-WP-0018-T01 id: RMASTER-WP-0018-T01
status: done status: done
priority: high priority: high
state_hub_task_id: "d6ba9286-222d-49d2-83e9-fd251c534dde" state_hub_task_id: "d6ba9286-222d-49d2-83e9-fd251c534dde"
@ -119,7 +119,7 @@ Acceptance:
## T02 - Launch the first `rail-kubernetes` repo materialization ## T02 - Launch the first `rail-kubernetes` repo materialization
```task ```task
id: RAILIANCE-WP-0018-T02 id: RMASTER-WP-0018-T02
status: done status: done
priority: high priority: high
state_hub_task_id: "726a0c5c-2fa5-4bb9-a730-3200abc40ac8" state_hub_task_id: "726a0c5c-2fa5-4bb9-a730-3200abc40ac8"
@ -177,7 +177,7 @@ and live Fabric ingestion are all in place for `rail-kubernetes`.
## T03 - Launch the first `rapp-openbao` repo materialization ## T03 - Launch the first `rapp-openbao` repo materialization
```task ```task
id: RAILIANCE-WP-0018-T03 id: RMASTER-WP-0018-T03
status: done status: done
priority: high priority: high
state_hub_task_id: "3e46e1bd-c730-4e41-a00a-6aa7a4645023" state_hub_task_id: "3e46e1bd-c730-4e41-a00a-6aa7a4645023"
@ -206,7 +206,7 @@ registry onboarding remains open as repo-local follow-up work.
## T04 - Launch the first `reef-railiance` repo materialization ## T04 - Launch the first `reef-railiance` repo materialization
```task ```task
id: RAILIANCE-WP-0018-T04 id: RMASTER-WP-0018-T04
status: done status: done
priority: medium priority: medium
state_hub_task_id: "f6f2ea73-0ff3-4cfa-b7a7-7b71db3afb4a" state_hub_task_id: "f6f2ea73-0ff3-4cfa-b7a7-7b71db3afb4a"
@ -236,7 +236,7 @@ and `substrate_kind: server-group`.
## T05 - Add relation projection for rails, `rapp`s, and reefs in Fabric ## T05 - Add relation projection for rails, `rapp`s, and reefs in Fabric
```task ```task
id: RAILIANCE-WP-0018-T05 id: RMASTER-WP-0018-T05
status: done status: done
priority: medium priority: medium
state_hub_task_id: "ef999db5-e75e-467a-a72a-d45fda2b6fa7" state_hub_task_id: "ef999db5-e75e-467a-a72a-d45fda2b6fa7"
@ -264,7 +264,7 @@ nodes. Focused Fabric tests passed after the projection update.
## T06 - Verify first-wave registration and coordination end to end ## T06 - Verify first-wave registration and coordination end to end
```task ```task
id: RAILIANCE-WP-0018-T06 id: RMASTER-WP-0018-T06
status: done status: done
priority: medium priority: medium
state_hub_task_id: "5834f122-b9e9-41c1-93e9-d5525cd720bf" state_hub_task_id: "5834f122-b9e9-41c1-93e9-d5525cd720bf"

View file

@ -1,5 +1,5 @@
--- ---
id: RAILIANCE-WP-0019 id: RMASTER-WP-0019
type: workplan type: workplan
title: "Knative Qonto Runtime on reef-railiance" title: "Knative Qonto Runtime on reef-railiance"
domain: financials domain: financials
@ -22,7 +22,7 @@ related_repos:
state_hub_workstream_id: "d2b082db-ecc3-4322-8be3-22aa00a2af5c" state_hub_workstream_id: "d2b082db-ecc3-4322-8be3-22aa00a2af5c"
--- ---
# RAILIANCE-WP-0019 - Knative Qonto Runtime on reef-railiance # RMASTER-WP-0019 - Knative Qonto Runtime on reef-railiance
## Goal ## Goal
@ -44,7 +44,7 @@ evidence collection or routine reconciliation.
## Why This Exists ## Why This Exists
`RAILIANCE-WP-0018` finished the first wave: `RMASTER-WP-0018` finished the first wave:
- `rail-kubernetes` exists as the default base rail - `rail-kubernetes` exists as the default base rail
- `reef-railiance` exists as the grouped home reef for the Railiance servers - `reef-railiance` exists as the grouped home reef for the Railiance servers
@ -114,7 +114,7 @@ are reviewed and accepted.
## T01 - Define the `rail-knative` boundary against `rail-kubernetes` ## T01 - Define the `rail-knative` boundary against `rail-kubernetes`
```task ```task
id: RAILIANCE-WP-0019-T01 id: RMASTER-WP-0019-T01
status: done status: done
priority: high priority: high
state_hub_task_id: "336cb298-9107-4519-ad64-5b23853c84fa" state_hub_task_id: "336cb298-9107-4519-ad64-5b23853c84fa"
@ -147,7 +147,7 @@ workload/binding model.
## T02 - Define the `rapp-qonto` extraction boundary from `qonto-assistant` ## T02 - Define the `rapp-qonto` extraction boundary from `qonto-assistant`
```task ```task
id: RAILIANCE-WP-0019-T02 id: RMASTER-WP-0019-T02
status: done status: done
priority: high priority: high
state_hub_task_id: "54fcea7d-3c4e-444f-b184-f18f3c4b3a7c" state_hub_task_id: "54fcea7d-3c4e-444f-b184-f18f3c4b3a7c"
@ -183,7 +183,7 @@ secret references, and workload-specific rollout evidence.
## T03 - Define the `reef-railiance` hosting model for the qonto runtime ## T03 - Define the `reef-railiance` hosting model for the qonto runtime
```task ```task
id: RAILIANCE-WP-0019-T03 id: RMASTER-WP-0019-T03
status: done status: done
priority: high priority: high
state_hub_task_id: "b0233f06-3dee-4cac-bae4-d8add5ac29c8" state_hub_task_id: "b0233f06-3dee-4cac-bae4-d8add5ac29c8"
@ -216,7 +216,7 @@ single-server/shared-control-plane risk evidence.
## T04 - Align identity and secret custody to the future runtime path ## T04 - Align identity and secret custody to the future runtime path
```task ```task
id: RAILIANCE-WP-0019-T04 id: RMASTER-WP-0019-T04
status: done status: done
priority: high priority: high
state_hub_task_id: "0086eb68-a852-4fe7-834c-4a19dd763b77" state_hub_task_id: "0086eb68-a852-4fe7-834c-4a19dd763b77"
@ -243,7 +243,7 @@ metadata may enter workplans, Git, chat, or State Hub.
## T05 - Define second-wave bootstrap and Fabric registration sequence ## T05 - Define second-wave bootstrap and Fabric registration sequence
```task ```task
id: RAILIANCE-WP-0019-T05 id: RMASTER-WP-0019-T05
status: done status: done
priority: medium priority: medium
state_hub_task_id: "8905d447-dee9-460d-bbfe-3f0c8e42c7c6" state_hub_task_id: "8905d447-dee9-460d-bbfe-3f0c8e42c7c6"
@ -251,7 +251,7 @@ state_hub_task_id: "8905d447-dee9-460d-bbfe-3f0c8e42c7c6"
Define the repo-creation and registration sequence for `rail-knative` and Define the repo-creation and registration sequence for `rail-knative` and
`rapp-qonto`, using the first-wave bootstrap contract already proven by `rapp-qonto`, using the first-wave bootstrap contract already proven by
`RAILIANCE-WP-0018`. `RMASTER-WP-0018`.
Acceptance: Acceptance:
@ -280,7 +280,7 @@ treated as implementation completion.
## T06 - Open the repo-local follow-up workplans for implementation ## T06 - Open the repo-local follow-up workplans for implementation
```task ```task
id: RAILIANCE-WP-0019-T06 id: RMASTER-WP-0019-T06
status: done status: done
priority: medium priority: medium
state_hub_task_id: "18fe6f04-f8c5-451b-8e3f-38c19f05f682" state_hub_task_id: "18fe6f04-f8c5-451b-8e3f-38c19f05f682"
@ -315,7 +315,7 @@ reconciled with their existing Forgejo bootstrap commits and pushed.
## T07 - Version the rail-neutral workload and compatibility contract ## T07 - Version the rail-neutral workload and compatibility contract
```task ```task
id: RAILIANCE-WP-0019-T07 id: RMASTER-WP-0019-T07
status: done status: done
priority: high priority: high
state_hub_task_id: "5b5f2d41-2860-44ee-a8b6-8b9e1d32854f" state_hub_task_id: "5b5f2d41-2860-44ee-a8b6-8b9e1d32854f"
@ -339,7 +339,7 @@ and an offline validator. `rail-knative` and `rapp-qonto` pass that validator.
## T08 - Establish reef admission evidence and mixed-rail split triggers ## T08 - Establish reef admission evidence and mixed-rail split triggers
```task ```task
id: RAILIANCE-WP-0019-T08 id: RMASTER-WP-0019-T08
status: done status: done
priority: high priority: high
state_hub_task_id: "663a319e-2a05-4a35-90a2-4f6b7b5afa22" state_hub_task_id: "663a319e-2a05-4a35-90a2-4f6b7b5afa22"
@ -368,7 +368,7 @@ single-node split triggers.
## T09 - Establish Qonto SLO, threat, rollback, and fallback evidence ## T09 - Establish Qonto SLO, threat, rollback, and fallback evidence
```task ```task
id: RAILIANCE-WP-0019-T09 id: RMASTER-WP-0019-T09
status: done status: done
priority: high priority: high
state_hub_task_id: "6cc2d3a7-33b6-47a7-b59d-04be9318c861" state_hub_task_id: "6cc2d3a7-33b6-47a7-b59d-04be9318c861"
@ -408,7 +408,7 @@ domain-level audit, idempotency, authorization, and redaction evidence.
## T10 - Automate routing, conformance, reconciliation, and evidence ## T10 - Automate routing, conformance, reconciliation, and evidence
```task ```task
id: RAILIANCE-WP-0019-T10 id: RMASTER-WP-0019-T10
status: done status: done
priority: high priority: high
state_hub_task_id: "1b75308f-f968-4443-aefe-af37550545a1" state_hub_task_id: "1b75308f-f968-4443-aefe-af37550545a1"

View file

@ -1,5 +1,5 @@
--- ---
id: RAILIANCE-WP-0020 id: RMASTER-WP-0020
type: workplan type: workplan
title: "Migrate authoritative OpenBao from CoulombCore to reef-railiance" title: "Migrate authoritative OpenBao from CoulombCore to reef-railiance"
domain: financials domain: financials
@ -14,7 +14,7 @@ depends_on:
state_hub_workstream_id: "0616a297-18c5-4c4e-a4fc-69135b3f9a15" state_hub_workstream_id: "0616a297-18c5-4c4e-a4fc-69135b3f9a15"
--- ---
# RAILIANCE-WP-0020 - OpenBao migration to reef-railiance # RMASTER-WP-0020 - OpenBao migration to reef-railiance
Move the authoritative OpenBao runtime from CoulombCore to the default Move the authoritative OpenBao runtime from CoulombCore to the default
`rail-kubernetes` platform path on `reef-railiance`, preserving every secret, `rail-kubernetes` platform path on `reef-railiance`, preserving every secret,
@ -41,7 +41,7 @@ run on scale-to-zero Knative.
## T01 - Inventory authoritative state and consumer contracts ## T01 - Inventory authoritative state and consumer contracts
```task ```task
id: RAILIANCE-WP-0020-T01 id: RMASTER-WP-0020-T01
status: done status: done
priority: high priority: high
state_hub_task_id: "0d40e879-ae4e-45de-aa31-81bf110924dc" state_hub_task_id: "0d40e879-ae4e-45de-aa31-81bf110924dc"
@ -65,7 +65,7 @@ version topology, and rollback ownership without secret values.
## T02 - Ratify migration, seal, and custody design ## T02 - Ratify migration, seal, and custody design
```task ```task
id: RAILIANCE-WP-0020-T02 id: RMASTER-WP-0020-T02
status: done status: done
priority: high priority: high
state_hub_task_id: "c266dce7-7d89-454a-a299-48fc169efea1" state_hub_task_id: "c266dce7-7d89-454a-a299-48fc169efea1"
@ -89,7 +89,7 @@ was aligned to OpenBao 2.5.4, matching the source.
## T03 - Prove backup and isolated restore before cutover ## T03 - Prove backup and isolated restore before cutover
```task ```task
id: RAILIANCE-WP-0020-T03 id: RMASTER-WP-0020-T03
status: done status: done
priority: high priority: high
state_hub_task_id: "88671108-cf8c-4de6-b1ce-06e99b1c3d70" state_hub_task_id: "88671108-cf8c-4de6-b1ce-06e99b1c3d70"
@ -122,7 +122,7 @@ output was non-empty. Machine-readable evidence is in
## T04 - Restore authoritative state on railiance01 ## T04 - Restore authoritative state on railiance01
```task ```task
id: RAILIANCE-WP-0020-T04 id: RMASTER-WP-0020-T04
status: done status: done
priority: high priority: high
state_hub_task_id: "d04d7fdd-bd00-407a-8954-101b680ed327" state_hub_task_id: "d04d7fdd-bd00-407a-8954-101b680ed327"
@ -150,7 +150,7 @@ live and no public DNS changed.
## T05 - Migrate consumers to local workload identity ## T05 - Migrate consumers to local workload identity
```task ```task
id: RAILIANCE-WP-0020-T05 id: RMASTER-WP-0020-T05
status: done status: done
priority: high priority: high
state_hub_task_id: "f0a82e4e-8074-4a22-b1e9-f01ec0ff76a1" state_hub_task_id: "f0a82e4e-8074-4a22-b1e9-f01ec0ff76a1"
@ -181,7 +181,7 @@ same-cluster Kubernetes identity conversion remains post-cutover hardening.
## T06 - Cut over public OpenBao DNS and operator access ## T06 - Cut over public OpenBao DNS and operator access
```task ```task
id: RAILIANCE-WP-0020-T06 id: RMASTER-WP-0020-T06
status: done status: done
priority: high priority: high
state_hub_task_id: "f458d110-5fdd-465a-8a23-4ada1051fb12" state_hub_task_id: "f458d110-5fdd-465a-8a23-4ada1051fb12"
@ -212,7 +212,7 @@ found.
## T07 - Retire CoulombCore OpenBao reversibly ## T07 - Retire CoulombCore OpenBao reversibly
```task ```task
id: RAILIANCE-WP-0020-T07 id: RMASTER-WP-0020-T07
status: done status: done
priority: high priority: high
state_hub_task_id: "db2443e6-bad7-4a71-b45f-d4b81099df15" state_hub_task_id: "db2443e6-bad7-4a71-b45f-d4b81099df15"
@ -236,7 +236,7 @@ post-retirement public probe returned HTTP 200 from railiance01 with valid TLS.
## T08 - Final cleanup and closure ## T08 - Final cleanup and closure
```task ```task
id: RAILIANCE-WP-0020-T08 id: RMASTER-WP-0020-T08
status: todo status: todo
priority: medium priority: medium
state_hub_task_id: "1dc50d98-64e8-4755-a52e-2b94b765019e" state_hub_task_id: "1dc50d98-64e8-4755-a52e-2b94b765019e"

View file

@ -1,5 +1,5 @@
--- ---
id: RAILIANCE-WP-0021 id: RMASTER-WP-0021
type: workplan type: workplan
title: "Rapp Declaration Schema and Family Declaration Validator" title: "Rapp Declaration Schema and Family Declaration Validator"
domain: financials domain: financials
@ -24,7 +24,7 @@ related_repos:
state_hub_workstream_id: "37667c23-1fa9-430e-8d80-d67d98f90e38" state_hub_workstream_id: "37667c23-1fa9-430e-8d80-d67d98f90e38"
--- ---
# RAILIANCE-WP-0021 - Rapp Declaration Schema and Family Declaration Validator # RMASTER-WP-0021 - Rapp Declaration Schema and Family Declaration Validator
## Goal ## Goal
@ -39,7 +39,7 @@ what failed. The deliverable is a schema plus a check that runs.
## Why This Exists ## Why This Exists
`RAILIANCE-WP-0017` through `RAILIANCE-WP-0019` established the four-axis model `RMASTER-WP-0017` through `RMASTER-WP-0019` established the four-axis model
and materialized the first concrete family repos. The model held up. Its and materialized the first concrete family repos. The model held up. Its
enforcement did not. enforcement did not.
@ -128,7 +128,7 @@ independent dimension from rapp grouping and needs its own work record.
## T01 - Accept the routed proposal and record the ownership decision ## T01 - Accept the routed proposal and record the ownership decision
```task ```task
id: RAILIANCE-WP-0021-T01 id: RMASTER-WP-0021-T01
status: done status: done
priority: high priority: high
state_hub_task_id: "af45d82d-c1e3-47b3-81ae-2974bc65cc5d" state_hub_task_id: "af45d82d-c1e3-47b3-81ae-2974bc65cc5d"
@ -161,7 +161,7 @@ acquire a cluster dependency.
## T02 - Author schemas/rapp.schema.json ## T02 - Author schemas/rapp.schema.json
```task ```task
id: RAILIANCE-WP-0021-T02 id: RMASTER-WP-0021-T02
status: done status: done
priority: high priority: high
state_hub_task_id: "87ae4551-1fac-4613-b258-28c8b22bbb82" state_hub_task_id: "87ae4551-1fac-4613-b258-28c8b22bbb82"
@ -244,7 +244,7 @@ declarations.
## T03 - Define the composition block and its cardinality rules ## T03 - Define the composition block and its cardinality rules
```task ```task
id: RAILIANCE-WP-0021-T03 id: RMASTER-WP-0021-T03
status: done status: done
priority: high priority: high
state_hub_task_id: "8b130ff8-0601-40bb-8539-d6f5847c2f41" state_hub_task_id: "8b130ff8-0601-40bb-8539-d6f5847c2f41"
@ -302,7 +302,7 @@ whose members carry their own package types.
## T04 - Schematize rail.yaml and reef.yaml, and derive bound_rapps ## T04 - Schematize rail.yaml and reef.yaml, and derive bound_rapps
```task ```task
id: RAILIANCE-WP-0021-T04 id: RMASTER-WP-0021-T04
status: done status: done
priority: medium priority: medium
state_hub_task_id: "50ffbff9-f8f0-4085-975a-6c5123d9c2f0" state_hub_task_id: "50ffbff9-f8f0-4085-975a-6c5123d9c2f0"
@ -339,7 +339,7 @@ fail-closed until that handoff lands.
## T05 - Build the family declaration validator ## T05 - Build the family declaration validator
```task ```task
id: RAILIANCE-WP-0021-T05 id: RMASTER-WP-0021-T05
status: done status: done
priority: high priority: high
state_hub_task_id: "0a212d33-2169-4472-80d0-69ec4edba5cb" state_hub_task_id: "0a212d33-2169-4472-80d0-69ec4edba5cb"
@ -375,7 +375,7 @@ make loud.
## T06 - Add the deployable coverage check ## T06 - Add the deployable coverage check
```task ```task
id: RAILIANCE-WP-0021-T06 id: RMASTER-WP-0021-T06
status: done status: done
priority: medium priority: medium
state_hub_task_id: "519c2838-c4af-46e9-81fa-612fb09e91e3" state_hub_task_id: "519c2838-c4af-46e9-81fa-612fb09e91e3"
@ -411,7 +411,7 @@ covered by `--self-test`.
## T07 - Update the bootstrap contract to point at the schemas ## T07 - Update the bootstrap contract to point at the schemas
```task ```task
id: RAILIANCE-WP-0021-T07 id: RMASTER-WP-0021-T07
status: done status: done
priority: medium priority: medium
state_hub_task_id: "aa71bc2f-7d9e-4351-8130-8b6e23b8ee36" state_hub_task_id: "aa71bc2f-7d9e-4351-8130-8b6e23b8ee36"
@ -435,7 +435,7 @@ decision.
## T08 - Refresh rapp-first-wave-candidates.md ## T08 - Refresh rapp-first-wave-candidates.md
```task ```task
id: RAILIANCE-WP-0021-T08 id: RMASTER-WP-0021-T08
status: done status: done
priority: medium priority: medium
state_hub_task_id: "28e4ef82-62ea-41d2-a059-05c047292240" state_hub_task_id: "28e4ef82-62ea-41d2-a059-05c047292240"
@ -464,7 +464,7 @@ again as separate rapps. `rapp-forgejo` placement cites `d151d817`.
## T09 - Release the schema to downstream repos ## T09 - Release the schema to downstream repos
```task ```task
id: RAILIANCE-WP-0021-T09 id: RMASTER-WP-0021-T09
status: done status: done
priority: high priority: high
state_hub_task_id: "b8dc2452-8ec0-4301-98b7-4ec96411f428" state_hub_task_id: "b8dc2452-8ec0-4301-98b7-4ec96411f428"