docs(identifier): seal helixforge cutover plan

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
tegwick 2026-08-22 00:33:04 +02:00
parent 1d5b60346d
commit e52ce3e678
2 changed files with 2770 additions and 0 deletions

View file

@ -0,0 +1,68 @@
# RMGR-WP-0005 HelixForge cutover readiness — 2026-08-22
## Outcome
The deterministic identifier cutover is implemented and rehearsed on both
sides of the repository/projection boundary. No live UUID migration has run.
## Sealed fleet plan
- File: `RMGR-WP-0005-helixforge-uuid-migration-plan-2026-08-22.json`
- Namespace: `helixforge`
- Plan SHA-256: `5a2e0d1d4e6e121780a0e66a83e07a718f3050e8f1c6b94328b86b92de290a0c`
- Repositories: 43/43 eligible; 0 skipped
- Live mappings: 245 total; 212 replacements; 33 assignments
- Collision preflight: zero live collisions
- Apply policy: all-or-nothing per repository
The prior 2026-08-21 plan correctly became invalid after authoritative
workplan content changed. Regeneration after Repo Manager commit `1d5b603`
produced this seal. A dry-run for repository `repo-manager` passed and prepared
one file containing six replacements without changing it.
## Central projection gate
State Hub commit `cb1b028` provides:
- Alembic revision `b8d4f0a2c6e1`;
- `ON UPDATE CASCADE` for all 20 foreign keys into workplan/task primary keys,
retaining each existing delete policy;
- durable old-to-new alias provenance;
- sealed-plan, namespace, derivation, membership, source, target and alias
checks;
- repository-atomic forward migration and task-first/workplan-second reverse.
Isolated PostgreSQL upgrade created 20/20 cascade constraints and the alias
table. Downgrade restored 20/20 prior update policies and removed the alias
table. Service evidence covers task parentage, progress events, token events,
dependency edges, durable alias state, reverse, and transaction abort. Full
State Hub regression: 622 passed.
## Authoritative file gate
Repo Manager commit `1d5b603` provides `rmgr identifier migration-files`:
- dry-run by default;
- exact `--confirm-plan-sha256` required;
- explicit `--execute` required to write;
- all mappings and all resulting bytes prepared before replacement begins;
- atomic per-file replacement with restoration of already-written originals if
a later write fails;
- reverse restores replaced values and removes newly assigned fields.
Full Repo Manager regression: 70 passed. Ruff: clean.
## Remaining production gate
Run one operator-approved repository pilot. Required order:
1. Re-verify the sealed repository source and central projection preconditions.
2. Apply the State Hub repository transaction.
3. Execute the Repo Manager file transaction using the same plan seal.
4. Commit the authoritative workplan file changes.
5. Run `statehub fix-consistency` and verify zero identifier divergence.
6. If steps 35 fail, reverse the file transaction if needed, then reverse the
State Hub transaction using the durable aliases.
Do not expand beyond the pilot until old/new lookup evidence, progress/task
references, and a second consistency pass are clean.

File diff suppressed because it is too large Load diff