diff --git a/workplans/RMGR-WP-0004-repository-standards-conformance.md b/workplans/RMGR-WP-0004-repository-standards-conformance.md index bd5cf4c..31b5e7e 100644 --- a/workplans/RMGR-WP-0004-repository-standards-conformance.md +++ b/workplans/RMGR-WP-0004-repository-standards-conformance.md @@ -401,6 +401,58 @@ rewrite those repos. `railiance-platform` persists by design under option 2. Note it in the registry so citations are forced to name the repository. +### Live-collision remediation (assigned 2026-08-21) + +`ADR-007` was amended to derive C2 identifiers for **live records only**, so the +blocking surface is the 11 live files below, not the 48 in the full scan. +`RMGR-WP-0005-T03` is gated on these. Per `ADR-007` decision 4, execution +belongs to a worker in each repository — this task assigns, it does not rename. + +Three distinct root causes, not one: + +**1. Incomplete T09 prefix migration — 5 files.** `railiance-apps` and +`railiance-platform` still carry live `RAILIANCE-WP-` plans although T09 retired +that prefix and assigned `RAPPS-WP-` and `RPF-WP-`. `railiance-platform` has +already begun using `RPF-WP-` (0018–0020 exist), so these are stragglers. Fix is +the assigned migration, not a fresh number: + +```text +railiance-apps RAILIANCE-WP-0015-cnpg-backup-scheduledbackup-coverage.md -> RAPPS-WP- + RAILIANCE-WP-0016-railiance01-activity-core-backup-automation.md -> RAPPS-WP- +railiance-platform RAILIANCE-WP-0015-platform-rapp-consistency.md -> RPF-WP- + RAILIANCE-WP-0016-apps-pg-resource-evidence.md -> RPF-WP- + RAILIANCE-WP-0016-architecture-cleanup-backlog.md -> RPF-WP- +``` + +Numbers are reallocated above each repo's current maximum, not preserved — +`railiance-platform` holds two live files at `0016`, so preservation is +impossible for that pair. + +**2. `WHYNOT-WP-` prefix never assigned — 4 files.** T09 assigned `CUST-WP-`, +`RAIL-BS-WP-` and `RAILIANCE-WP-`; the 2026-08-21 scan shows **five** shared +prefixes. `WHYNOT-WP-` is shared by `whynot-control` and `whynot-design` with +both `0001` and `0002` colliding. + +Note the cause of `WHYNOT-WP-0001`: both files are +`WHYNOT-WP-0001-statehub-bootstrap.md` — the generic bootstrap workplan that +`statehub register` wrote unconditionally. That is the defect `STATE-WP-0080` +contained; these two files are its residue, and the same pattern will exist +wherever else that path ran before the guard landed. + +Assign `WHYNOT-WP-` to one repo and a new prefix to the other, then renumber. + +**3. Same-repo number reuse — 2 files.** `kontextual-engine` has two live +`KONT-WP-0013` files (`blob-storage-content-streaming`, +`cmis-browser-binding-tck-compatibility`). Straight forward-only renumber of one +to the next free `KONT-WP-` number. + +### Also unassigned (not blocking T03) + +`OPS-WP-` (`ops-bridge`, `ops-hub`) and `REPO-WP-` (`core-hub`, +`disaster-control`, `repo-seed`) are shared prefixes with no live collisions — +every clash is against an archived file. Assign them before either repo +allocates its next number, or they become live collisions. + ## Confirm the canon boundary ```task diff --git a/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md b/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md index e2f18fd..f305afb 100644 --- a/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md +++ b/workplans/RMGR-WP-0005-registrar-consolidation-deterministic-ids.md @@ -101,7 +101,7 @@ before then. ```task id: RMGR-WP-0005-T03 -status: wait +status: todo priority: high state_hub_task_id: "28067729-498d-4f47-89bd-5b9718e999c7" ``` @@ -120,6 +120,26 @@ Replace minted UUIDs with UUIDv5 derived from the globally unique manufactures collisions: two repositories sharing `PRJ-WP-` would compute the same UUID for different workplans. Uniqueness must be enforced first. +**Unblocked 2026-08-21.** `RMGR-WP-0004-T08` closed 2026-08-18 (prefix registry +plus `rmgr prefix-uniqueness`), and `ADR-007` was amended the same day with the +derivation scope this task needs: + +- **Derive for live records only**; archived records keep frozen minted + identifiers. This is what reconciles `ADR-007` § Migration option 2 with the + uniqueness derivation requires. +- Derivation input is `(namespace, identifier)` per `ADR-011` decision 7. + **Namespace is the fleet branch, not the repository** — the ecosystem is at + `N1`, one implied namespace, so the pair does not disambiguate intra-namespace + collisions and must not be read as if it did. +- Derivation is **not retroactive**: existing live records keep minted UUIDs + until deliberately re-derived. +- **Un-archiving is a collision hazard** — a record returning to live must be + checked against the live namespace and renumbered if it clashes. Build this + check alongside derivation, not after. + +Remaining prerequisite is the live-collision remediation below, tracked on +`RMGR-WP-0004-T09`. 11 files, 5 identifiers. + ## Migrate the fleet ```task