docs(identifiers): record whynot cutover

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
tegwick 2026-08-22 16:13:50 +02:00
parent bb915a64fe
commit e7f3eece34
2 changed files with 104 additions and 0 deletions

View file

@ -0,0 +1,89 @@
# RMGR-WP-0005 batch 0002 cutover
**Completed at:** `2026-08-22T14:12:19Z`
**Scope:** `whynot-design` only
**Decision:** `RMGR-DEC-2026-001` (`approved`)
## Outcome
The approved repository-atomic batch completed in both current State Hub
projections and the authoritative repository. No other identifier mapping was
applied.
| Record | Previous UUID | Derived UUID |
| --- | --- | --- |
| `WHYNOT-WP-0003` | `41fed928-f44a-48f4-9870-120310fbf071` | `d3a6ec16-ac40-5ffb-99e7-07f997e59a4a` |
The source plan seal was
`ac97f6e4f0b35db63a0dc1b4a439f0a39738d13c1407f18419f706d780d4eea0`.
The approved batch seal was
`4039224352c6590fdc6b41e739539f1f9c92d098b43ed6e30b3cd9a87b53da65`.
The no-drift gate was repeated after approval and passed against pinned source
HEAD `4b62cffc86496d587ac8d48a8e199624bc4a5c1f`.
## Restore points
Fresh PostgreSQL custom-format archives were retained before mutation and
successfully enumerated by `pg_restore --list`.
| Projection | Archive | Bytes | SHA-256 | Archive entries |
| --- | --- | ---: | --- | ---: |
| Workstation | `/tmp/state-hub-whynot-batch-0002-workstation-preapply.dump` | 4,640,237 | `19a24b573adbe9807970dcdd0d0c17e63247a0e3135c6dd32b297648f680cc2b` | 423 |
| Production | `/tmp/state-hub-whynot-batch-0002-production-preapply.dump` | 4,799,940 | `1435ef077d664a46bf989a9daad9fab2c010ea19e3198a867690233c4a77c926` | 425 |
The durable alias reverse executor remains available in each projection; the
restore archives are the database-level fallback.
## Projection transaction
The State Hub repository transaction ran first on the workstation projection
and then inside the production State Hub runtime. Both executions reported one
replacement, zero deferred assignments, direction `forward`, and the exact
source-plan seal above.
Final direct database and API checks agree:
| Check | Workstation | Production |
| --- | ---: | ---: |
| Previous UUID rows | 0 | 0 |
| Derived UUID rows | 1 | 1 |
| Tasks linked to derived UUID | 9 | 9 |
| Progress events linked to derived UUID | 11 | 11 |
| Decisions linked to derived UUID | 1 | 1 |
| Applied aliases for exact plan | 1 | 1 |
| Previous UUID API lookup | 404 | 404 |
| Derived UUID API lookup | 200 | 200 |
## Authoritative file transaction
`rmgr identifier migration-files` changed only
`workplans/WHYNOT-WP-0003-downstream-consumption.md`, replacing the one mapped
frontmatter value. The reviewed diff passed `git diff --check` and was pushed
as `whynot-design` commit
`9ffe187731bfd51869b487805ec6c937bdc653e7`.
Two consistency passes then ran against each projection. They produced the
standard generated-brief commits `e915d4c`, `5b38e07`, `3cfee73`, and
`a427356`; the checkout is clean and synchronized at
`a4273562b131cf41f3c8afdd385ea458bda62fa0`. The generated brief carries the
derived identity and no workplan identifier was changed after the file
transaction.
## Existing status-rule warning
The consistency passes exposed a pre-existing disagreement unrelated to the
identifier cutover: the authoritative workplan frontmatter says `active`, all
nine tasks are done, and the projection's completion rule therefore returns
the row to `finished` on the second pass. This produces alternating C-04/C-13
warnings but no identifier or reference drift. The UUID-only approval did not
authorize changing that status. Existing C-24 classification advisories and
C-27 cross-repository logical-id collisions also remain outside this batch.
## Rollback posture
Rollback was not invoked. If later required, reverse the authoritative file
transaction first, then reverse production and workstation projection
transactions through the durable aliases. Restore from the archives only after
an isolated restore rehearsal.

View file

@ -448,6 +448,21 @@ No mutation has run; approval, revision, or rejection of that exact package is
the remaining gate. Evidence:
`docs/evidence/RMGR-WP-0005-batch-0002-readiness-2026-08-22.md`.
**Batch 0002 completed (2026-08-22):** `RMGR-DEC-2026-001` approved the exact
sealed `whynot-design` package. Fresh workstation and production restore points
were created and verified before both projection transactions replaced
`WHYNOT-WP-0003` with derived UUID
`d3a6ec16-ac40-5ffb-99e7-07f997e59a4a`. The authoritative one-line file
transaction was pushed in `whynot-design` commit `9ffe187`; both projections
now return old/new API lookups 404/200, retain 9 tasks, 11 progress events, and
1 decision, and carry one applied alias for the exact plan. Two consistency
passes ran against each projection. They exposed an existing active-versus-all-
tasks-done status-rule oscillation but no identifier or reference drift. Full
restore hashes, commits, checks, and the bounded warning are in
`docs/evidence/RMGR-WP-0005-batch-0002-cutover-2026-08-22.md`. T04 remains in
progress because the remaining fleet repositories require separately sealed
and approved batches.
## Retire the interim rule
```task