docs: unblock RMGR-WP-0005-T03, assign live-collision remediation

ADR-007 amended 2026-08-21 to derive C2 identifiers for live records only,
so T03's uniqueness prerequisite now has a bounded surface: 11 live files
across 5 identifiers, not 48. T03 moves wait -> todo with the derivation
rules recorded, including that namespace is the fleet branch and not the
repository, that derivation is not retroactive, and that un-archiving is a
collision hazard needing its own check.

T09 gains the remediation assignment, split by root cause: 5 files are
stragglers from its own incomplete RAILIANCE-WP retirement, 4 are the
never-assigned WHYNOT-WP prefix, and 2 are same-repo reuse in
kontextual-engine. Execution stays with workers in each repo per ADR-007
decision 4.

Notes that both WHYNOT-WP-0001 files are statehub-bootstrap workplans -- the
generic bootstrap defect STATE-WP-0080 contained -- so the same residue is
likely wherever that path ran before the guard.

Also records OPS-WP and REPO-WP as unassigned shared prefixes with no live
collisions yet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-21 06:36:44 +02:00
parent ebb1891b2d
commit c874ad75e0
2 changed files with 73 additions and 1 deletions

View file

@ -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-` (00180020 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

View file

@ -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