docs(identifiers): prepare markitect cutover batch

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:21:56 +02:00
parent b6ea4d655d
commit 1250fa87f7
4 changed files with 177 additions and 0 deletions

View file

@ -0,0 +1,47 @@
{
"schema": "repo-manager.identifier-migration-batch.v1",
"ok": true,
"ready_for_approval": true,
"apply_authorized": false,
"approval_required": true,
"namespace": "helixforge",
"source_plan_sha256": "ac97f6e4f0b35db63a0dc1b4a439f0a39738d13c1407f18419f706d780d4eea0",
"batch_policy": "repository-atomic, sequential, stop on first failure",
"rollback_order": "reverse files if written, then reverse central projection",
"generated_at": "2026-08-22T14:20:25.402175Z",
"totals": {
"repositories": 1,
"records": 2,
"replace": 2,
"assign": 0,
"unchanged": 0
},
"repositories": [
{
"repo": "markitect-main",
"path": "/home/worsch/markitect-main",
"planned_head_sha": "3a45d51bbad49512d2610950eccaa3c2782a8523",
"source_fingerprint": "a6c5a705f7d5e0dc5620f469e0382467b7908a71390afac915557d7e9c33df77",
"source_verified": true,
"git_preflight": {
"ok": true,
"head_sha": "3a45d51bbad49512d2610950eccaa3c2782a8523",
"expected_head_sha": "3a45d51bbad49512d2610950eccaa3c2782a8523",
"upstream": "origin/main",
"behind": 0,
"ahead": 0,
"origin": "forgejo-remote:coulomb/markitect-main.git",
"errors": []
},
"mapping_counts": {
"records": 2,
"replace": 2,
"assign": 0,
"unchanged": 0
},
"ready": true
}
],
"errors": [],
"batch_sha256": "494db8e101aeae7f8488082565dec3b4dd5c9c6ccb5f8812aaf233f813768f67"
}

View file

@ -0,0 +1,72 @@
# RMGR-WP-0005 batch 0003 readiness
**Observed at:** `2026-08-22T14:20:25Z`
**Scope:** `markitect-main` only
**Decision:** `RMGR-DEC-2026-002`
## Outcome
The next deterministic-identifier batch is sealed and ready for an explicit
approval decision. No database or repository identifier was changed.
Source plan:
`RMGR-WP-0005-helixforge-uuid-migration-plan-2026-08-22-v2.json`, SHA-256 seal
`ac97f6e4f0b35db63a0dc1b4a439f0a39738d13c1407f18419f706d780d4eea0`.
Batch manifest:
`RMGR-WP-0005-batch-0003-markitect-main.json`, SHA-256 seal
`494db8e101aeae7f8488082565dec3b4dd5c9c6ccb5f8812aaf233f813768f67`.
## Mappings
| Kind | Record | Current UUID | Derived UUID |
| --- | --- | --- | --- |
| Workplan | `MARKITECT-WP-0002` | `e203d487-01f1-494a-b14d-a436241a4c01` | `e03ef262-5284-5dd3-92d2-dbd85c6b6159` |
| Task | `MARKITECT-WP-0002-T01` | `88b3c206-4d45-4bb3-bbb3-47443cdf2123` | `1852eca1-92e2-518e-bb21-9dffbeb32a4f` |
The batch contains two replacements, no assignments, and no unchanged records.
`markitect-main` is clean, exactly synchronized with `origin/main`, and uses
the Forgejo lineage. The source plan pins HEAD
`3a45d51bbad49512d2610950eccaa3c2782a8523` and source fingerprint
`a6c5a705f7d5e0dc5620f469e0382467b7908a71390afac915557d7e9c33df77`.
## Projection preflight
Read-only checks against the workstation and production projections agree:
| Check | Workstation | Production |
| --- | ---: | ---: |
| Current workplan UUID lookup | 200 | 200 |
| Derived workplan UUID lookup | 404 | 404 |
| Current task UUID lookup | 200 | 200 |
| Derived task UUID lookup | 404 | 404 |
| Tasks linked to current workplan | 10 | 10 |
| Progress events linked to current workplan | 9 | 9 |
| Foreign-key references to current task | 0 | 0 |
The workplan and task targets are absent in both projections. Dynamic inspection
of every current foreign key into `workplans` and `tasks` found only the ten
task rows and nine progress events shown above; the existing cascade contract
covers them.
## Approved execution interface
If `RMGR-DEC-2026-002` is approved against the exact batch hash:
1. Re-run batch/source/Git and projection preflight; stop on any drift.
2. Retain fresh, verified workstation and production database restore points.
3. Apply the repository transaction to workstation and production projections.
4. Apply the sealed authoritative file transaction for `markitect-main`.
5. Commit and push only the mapped workplan file.
6. Run consistency twice against each projection and require old/new API
lookups of 404/200 for both records.
7. Require all ten tasks and nine progress events to remain linked to the
derived workplan and the mapped task's reference count to remain zero.
8. On failure after database apply, reverse written files if necessary, then
reverse production and workstation projection transactions through their
durable aliases.
The decision does not authorize another repository, an assignment-only batch,
or restoration of the disabled production sweep.