fix(workplans): adopt ADR-007 derived identifiers for unregistered records

These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
This commit is contained in:
codex 2026-08-25 20:21:52 +02:00
parent fdd896b203
commit c3f4ece7ea
8 changed files with 58 additions and 58 deletions

View file

@ -9,7 +9,7 @@ owner: codex
topic_slug: repo-manager
created: "2026-08-09"
updated: "2026-08-09"
state_hub_workstream_id: "e32a9d49-a38f-4117-8e37-1c66afe1dad1"
state_hub_workstream_id: "5409d164-36da-54c8-8d79-6577a23268ce"
parent_project: prj-state-hub-retirement
parent_workplan: SHR-WP-0001
stream: S1
@ -35,7 +35,7 @@ vertical slice, coordinated by the State Hub retirement project
id: RMGR-WP-0001-T01
status: done
priority: high
state_hub_task_id: "43468b5c-f49f-43c3-bf30-922fadc1f8c0"
state_hub_task_id: "64adbb6b-7f15-52c0-bd2c-f946e1b7b904"
```
Specify stable repository identity, locations, revisions, classifications,
@ -53,7 +53,7 @@ records; signals; agent roles; State Hub `managed_repos` column map for T03.
id: RMGR-WP-0001-T02
status: done
priority: high
state_hub_task_id: "2453316f-33f4-41d0-bcb5-c7552db88d68"
state_hub_task_id: "641dc63f-a0a2-5dcc-b325-b8d9172fc53c"
```
Define normalized repository facts, governed commands, authorization context,
@ -71,7 +71,7 @@ Runtime OpenAPI deferred to T04/T05.
id: RMGR-WP-0001-T03
status: done
priority: high
state_hub_task_id: "deee10be-25e1-4ee7-b47e-93dc816916c9"
state_hub_task_id: "11e32753-5c32-5e92-98c2-5d9bbc28b059"
```
Map relevant State Hub repository registration, host-path, workplan parsing,
@ -88,7 +88,7 @@ inbox C-rules retired from RM; phases P0P5; compat suites T-PARSE…T-DUAL-RU
id: RMGR-WP-0001-T04
status: done
priority: medium
state_hub_task_id: "0a041f4e-09fc-4f69-8a48-ac396186bc8f"
state_hub_task_id: "cfd36624-6f47-5fe0-90de-6bf1fa9d4006"
```
Choose the runtime, persistence, package, migration, test, and deployment shape
@ -106,7 +106,7 @@ skeleton. Package scaffold + version test landed (no business logic yet).
id: RMGR-WP-0001-T05
status: done
priority: high
state_hub_task_id: "5036a248-1c47-423f-be8d-4fd232896c31"
state_hub_task_id: "1144b02a-5d3f-544e-9c02-d14f1df10140"
```
Register and represent one independently valid repository, index its declared

View file

@ -18,7 +18,7 @@ related:
- ACTIVITY-WP-0029
- specs/ArchitectureBlueprint.md
- history/2026-08-09-state-hub-repo-tooling-research.md
state_hub_workstream_id: "bcb0e20a-ebb4-4f14-b8ee-4fd93436f68e"
state_hub_workstream_id: "195ae0e8-79b0-5593-a491-b5a159ab64b7"
---
# Retirement dual-run: SH adapter for writeback and reconcile
@ -47,7 +47,7 @@ See `specs/ArchitectureBlueprint.md` §4§9. This WP is Stage B.
id: RMGR-WP-0002-T01
status: done
priority: high
state_hub_task_id: "cb9c4457-69f0-45c0-8299-00a195ffdf69"
state_hub_task_id: "a7d18cdc-d316-506e-830c-22da0e79bd58"
```
Specify flags (e.g. `RM_WRITEBACK=1`, `RM_RECONCILE=1`) and a minimal meter:
@ -62,7 +62,7 @@ rollback (flag off → SH native path). No new product metrics frameworks.
id: RMGR-WP-0002-T02
status: done
priority: high
state_hub_task_id: "e4435174-237f-4e52-a891-3e0fd45c95eb"
state_hub_task_id: "ab7120f9-874f-5120-970f-e834143192dc"
```
Harden `repo.work.update_task_status` from the T05 slice for dual-run use:
@ -78,7 +78,7 @@ CMD-0001. Keep CLI; add thin HTTP only if SH adapter requires it.
id: RMGR-WP-0002-T03
status: done
priority: high
state_hub_task_id: "4a5df34d-1781-4a35-be51-0756b0e37e6c"
state_hub_task_id: "b14c0996-fa29-568c-8fa4-6278bd2e2c3f"
```
In **state-hub** (child change under this coordination): when flag on, MCP/REST
@ -95,7 +95,7 @@ C-15 path also dual-runs.
id: RMGR-WP-0002-T04
status: done
priority: high
state_hub_task_id: "0725adbf-13ca-48a5-8011-4c7593f39e8f"
state_hub_task_id: "1cb43273-94a3-50d7-9b9b-6243dc259704"
```
Port or wrap the **minimum** C-rules needed so `statehub fix-consistency --fix`
@ -112,7 +112,7 @@ full C-rule engine still SH until later extract (honest partial).
id: RMGR-WP-0002-T05
status: done
priority: high
state_hub_task_id: "49d56e5f-f805-4884-bb4e-684f8b3000bd"
state_hub_task_id: "bb32ae50-b056-5c37-a060-d92a1495f85d"
```
Enable flags for **one** agreed pilot repo (e.g. repo-manager itself or a
@ -129,7 +129,7 @@ operator rollback.
id: RMGR-WP-0002-T06
status: done
priority: medium
state_hub_task_id: "045338f7-03d4-4c6d-b267-3bcd0c42dbdd"
state_hub_task_id: "be12491c-67e0-572a-8b9b-68e41a670427"
```
Write cutover evidence under `docs/evidence/` and link from STATE-WP-0079 /

View file

@ -16,7 +16,7 @@ related:
- RMGR-WP-0002
- STATE-WP-0079
- specs/ArchitectureBlueprint.md
state_hub_workstream_id: "f914d79d-8e6f-4cb1-9c5f-fad4eac253c0"
state_hub_workstream_id: "17aebf4d-c36c-5202-9af3-6a2a0d6ff7d1"
---
# Production pilot dual-run: config, bulk path, push-seal
@ -36,7 +36,7 @@ host_paths SoR, dashboards.
id: RMGR-WP-0003-T01
status: done
priority: high
state_hub_task_id: "e843f4b1-5ed9-4e38-adc0-8ea711359c1a"
state_hub_task_id: "6fd628e8-9879-566c-a0d3-4ae271b3738c"
```
Load dual-run settings from `~/.repo-manager/dual-run.yaml` (and optional
@ -51,7 +51,7 @@ reconcile, pilot_repos, writeback_push, meter_path. Document and unit-test.
id: RMGR-WP-0003-T02
status: done
priority: high
state_hub_task_id: "8bc99a17-8332-4e56-9e78-a63cd3bbc416"
state_hub_task_id: "cd10dfad-578e-55d7-9ef5-0c8ec9cd58b2"
```
When dual-run writeback is on for the task's repo, `POST /tasks/bulk-status-sync`
@ -66,7 +66,7 @@ SH. Failures log and fall back to native DB-only (file via later C-15).
id: RMGR-WP-0003-T03
status: done
priority: high
state_hub_task_id: "fa01c87e-06d7-4048-821d-97e4fc0baafe"
state_hub_task_id: "c9c2e240-f194-5508-a7b4-d07e4e91b840"
```
When `writeback_push: true` (or `RM_WRITEBACK_PUSH=1`), RM writeback path pushes
@ -82,7 +82,7 @@ only; do not force).
id: RMGR-WP-0003-T04
status: done
priority: medium
state_hub_task_id: "0dbf65fd-d996-4f49-9951-f9b7df7053ea"
state_hub_task_id: "9fbde0f7-9230-5187-8005-c437572d4eee"
```
Ship example config for pilot `repo-manager`, update `docs/dual-run.md`, capture

View file

@ -16,7 +16,7 @@ related:
- STATE-WP-0079
- RMGR-WP-0001
- CFED-WP-0001
state_hub_workstream_id: "b8b3f1e0-b8df-4405-849e-11ec51f80ae5"
state_hub_workstream_id: "4d6b9717-7475-5d2d-a0f2-9708d31d4a66"
---
# Repository standards conformance and governed scaffolding
@ -56,7 +56,7 @@ claims "repository registration, identity, classification, and lifecycle" and
id: RMGR-WP-0004-T01
status: done
priority: high
state_hub_task_id: "dd2db30f-c48f-404d-a1b4-bd75b41d42f4"
state_hub_task_id: "86e07fae-f76f-5775-ba41-6a11dbe234eb"
```
Give Repo Manager a first-class representation of the standards a repository is
@ -88,7 +88,7 @@ anti-patterns (`INTENT.md`+`GOAL.md`, `PRJ-WP-`). Index:
id: RMGR-WP-0004-T02
status: done
priority: high
state_hub_task_id: "2c9b0cb1-f0f0-40f7-83ef-1828298338d3"
state_hub_task_id: "5807215b-9365-5135-9b96-7fa6882b16b4"
```
Check a repository against its flavor's standard and report violations with
@ -120,7 +120,7 @@ projects its findings without copying flavor rules into the retiring hub.
id: RMGR-WP-0004-T03
status: done
priority: high
state_hub_task_id: "8e6fa8d7-f169-44f5-bdc9-29376bb2ef64"
state_hub_task_id: "5375e128-b046-5584-bb32-b744c14a10aa"
```
Take ownership of creating conformant repository files, replacing the templating
@ -156,7 +156,7 @@ Durable flavors get `INTENT.md` and an optional foundation workplan.
id: RMGR-WP-0004-T04
status: done
priority: medium
state_hub_task_id: "8cd3ba11-b16b-4910-8bf6-651a24d47b8c"
state_hub_task_id: "a93bc06a-0d2c-5145-9e3c-633ed4a21886"
```
`make update-agent-instructions` regenerates `AGENTS.md`, `CLAUDE.md`,
@ -182,7 +182,7 @@ Repo Manager conformance is now the regeneration guard via C-35.
id: RMGR-WP-0004-T05
status: done
priority: medium
state_hub_task_id: "8402b8b6-2a1e-4236-b27d-d50b6161a176"
state_hub_task_id: "72c87313-ddbc-5672-b391-14e1030a3bd7"
```
Coordinate the transfer with `STATE-WP-0080`, which is retargeted to a thin
@ -214,7 +214,7 @@ deletes it. Inventory `caller:custodian-cli` is already `move` →
id: RMGR-WP-0004-T06
status: done
priority: medium
state_hub_task_id: "faaeb016-3ba8-493a-bbdf-9227de24f720"
state_hub_task_id: "4614bdcd-4636-553d-9b43-b9e149c2acc3"
```
Per `SCOPE.md` § Initial extraction source, extraction must preserve behaviour
@ -239,7 +239,7 @@ would make the retired implementation authoritative.
id: RMGR-WP-0004-T08
status: done
priority: high
state_hub_task_id: "fc7395b0-e86d-4231-baac-ea7fa5dc2174"
state_hub_task_id: "f79c7ca8-052e-5c8e-9b8e-a124bdeacaaa"
```
Implement `ADR-007` decision 1 as a repository standard: `PREFIX-WP-NNNN` names
@ -305,7 +305,7 @@ ADR-007 § Migration.
id: RMGR-WP-0004-T09
status: done
priority: high
state_hub_task_id: "3a6ba954-4e35-4b2d-8dff-d3db84ed832c"
state_hub_task_id: "2dbd470a-8483-5282-8fd5-856fd721c963"
```
Three prefixes are shared across seven repositories, each a single number line
@ -483,7 +483,7 @@ any of those prefixes.
id: RMGR-WP-0004-T07
status: done
priority: low
state_hub_task_id: "7fdd54fe-fba7-4713-9814-d4534ff19706"
state_hub_task_id: "c960c191-edc6-53c4-b4c7-ae2d52f8ca4f"
```
Repo Manager implements repository standards; it does not author them. Confirm

View file

@ -12,7 +12,7 @@ updated: "2026-08-18"
parent_project: prj-state-hub-retirement
related:
- RMGR-WP-0004
state_hub_workstream_id: "0d6d2ebf-4b74-4908-995c-17b8987ede05"
state_hub_workstream_id: "b177cdd5-6169-5888-8160-fa4b5e38bd68"
---
# Railiance managed-app wrapper setup
@ -37,7 +37,7 @@ Practice and remaining work are structured in
id: RMGR-WP-0006-T01
status: done
priority: high
state_hub_task_id: "cb1e2e4e-9aef-4669-89f6-86ea8512b7d2"
state_hub_task_id: "8df39852-ceaf-5e00-a845-2626c7add3b7"
```
Survey live rails (`rail-kubernetes`, `rail-knative`), reefs
@ -56,7 +56,7 @@ work breakdown for later scaffolder phases.
id: RMGR-WP-0006-T02
status: done
priority: high
state_hub_task_id: "f0e53954-403a-4e2c-b39f-0bab00eed3cc"
state_hub_task_id: "04c17e28-604e-5e20-976c-88783cdccff2"
```
Fill `rapp-user-engine` with the bootstrap baseline and a schema-valid
@ -78,7 +78,7 @@ validation: `4 declaration(s) ok`.
id: RMGR-WP-0006-T03
status: done
priority: high
state_hub_task_id: "3ba6828e-7514-4f4d-a1d3-54134e039f55"
state_hub_task_id: "fd7a8425-0661-5d38-b078-da61b7eda3c3"
```
Absorb `net-kingdom/sso-mfa/k8s/user-engine/` into
@ -102,7 +102,7 @@ separate target so completed Jobs are not reapplied.
id: RMGR-WP-0006-T04
status: done
priority: medium
state_hub_task_id: "0c2846d9-5db2-4b97-becd-0367b5737188"
state_hub_task_id: "0b889136-195a-53ca-8409-24dd2215a67d"
```
Draft the `rapp-postgres` consumer and secret-reference list for
@ -120,7 +120,7 @@ references. No postgres consumer file is added.
id: RMGR-WP-0006-T05
status: done
priority: high
state_hub_task_id: "6cf89776-ff31-4dd1-aa9a-39474fc387aa"
state_hub_task_id: "3ee67dd8-7a39-55be-80aa-e50fa5cc1b99"
```
Turn P1P4 from the guide into Repo Manager commands (`rapp init`,

View file

@ -13,7 +13,7 @@ parent_project: prj-state-hub-retirement
related:
- RMGR-WP-0004
- RMGR-WP-0006
state_hub_workstream_id: "b24d47cd-25d6-4473-b057-6a6f8387ab30"
state_hub_workstream_id: "f1987ed9-a148-55c2-8e76-fcbe2f81cc80"
---
# Greenfield rapp wrap efficiency
@ -54,7 +54,7 @@ after the user-engine rollout.
id: RMGR-WP-0007-T01
status: done
priority: high
state_hub_task_id: "dcf0b76c-05e8-44b4-b31a-33f0bc7273ce"
state_hub_task_id: "149f1fda-1cb6-5be6-b0de-62435efe0dac"
```
Update `docs/RailianceAppDeploymentGuide.md` so a new wrap does not
@ -83,7 +83,7 @@ commands.
id: RMGR-WP-0007-T02
status: done
priority: high
state_hub_task_id: "2c2c8306-b5b0-467a-a1a5-20c0f979e13d"
state_hub_task_id: "42531c77-2f01-5988-b769-ee649fdfeda6"
```
Add `rmgr rapp skeleton --path <rapp> --from-app <app>`.
@ -113,7 +113,7 @@ emits a hardened Deployment set.
id: RMGR-WP-0007-T03
status: done
priority: high
state_hub_task_id: "ec2d8fbb-2945-4144-b75e-beddf54a8b87"
state_hub_task_id: "8a345703-c6c1-56ba-807f-d2c57d66343f"
```
As part of wrap/skeleton, copy the fleet
@ -130,7 +130,7 @@ workflow when missing and leaves an existing file alone.
id: RMGR-WP-0007-T04
status: done
priority: medium
state_hub_task_id: "0fe3018a-b245-43b9-a0e2-e0ecb7f6d206"
state_hub_task_id: "d92dffd6-bb84-5728-8442-058e567efd1a"
```
Emit `rapp-postgres/consumers/<app>.yaml` as a **draft file** (or a
@ -151,7 +151,7 @@ points at an existing `rapp-postgres/consumers/<app>.yaml`.
id: RMGR-WP-0007-T05
status: done
priority: high
state_hub_task_id: "001e7b30-2a86-41f2-b731-415125e3b3e6"
state_hub_task_id: "65c7c442-fcc2-5048-81b5-9d440e3a4d44"
```
Add `rmgr rapp wrap --app <app> --ownership-repo <app> --from-app
@ -171,7 +171,7 @@ declaration (same rules as `init`).
id: RMGR-WP-0007-T06
status: done
priority: medium
state_hub_task_id: "076a64c5-cd83-4f7c-ba51-f3c61e5464e8"
state_hub_task_id: "96a9af80-e24b-52ca-bd61-e3d5637134ce"
```
Add `rmgr rapp place --path <rapp> --reef reef-railiance` that sets
@ -187,7 +187,7 @@ refuses `reef-storage`.
id: RMGR-WP-0007-T07
status: done
priority: high
state_hub_task_id: "e3845311-b560-4fc2-ad76-5939145350a7"
state_hub_task_id: "2d2350a4-6a31-5b01-89eb-185bdd117703"
```
Run the wrap path against `tenant-engine` / `rapp-tenant-engine`.

View file

@ -17,7 +17,7 @@ related:
- RMGR-WP-0003
- RMGR-WP-0004
- HUB-WP-0004
state_hub_workstream_id: "f45cebf3-7d49-471d-a903-d711e19f7653"
state_hub_workstream_id: "d40393b5-c644-5f64-bec3-8bfeb9c52fb0"
---
# Receiving surface for work records and repository registers
@ -72,7 +72,7 @@ surfaces index and govern them, they do not become a second source of truth.
id: RMGR-WP-0008-T01
status: done
priority: high
state_hub_task_id: "5ef517b4-94a6-48d4-b200-827460f79e92"
state_hub_task_id: "a7d841b7-2de8-5a4c-b5c5-5beab7a49903"
```
Extend the work-record write path beyond task status to workplan create, update,
@ -99,7 +99,7 @@ adapter's focused compatibility tests pass.
id: RMGR-WP-0008-T02
status: done
priority: medium
state_hub_task_id: "017f3b29-7100-4771-98c0-59fe91895a5f"
state_hub_task_id: "ac9f7666-95bf-5bdc-a30f-32e63579db4b"
```
Add an intake parser and index entry kind, plus the write path for create,
@ -119,7 +119,7 @@ idempotent when keyed, reindexed, and metered.
id: RMGR-WP-0008-T03
status: done
priority: medium
state_hub_task_id: "392ac64d-15b6-4f4e-9e18-96dd7d299208"
state_hub_task_id: "e7c6a794-0a27-531a-9998-3d4b2672eadc"
```
Add a decision parser, index entry kind, and write path including resolve.
@ -141,7 +141,7 @@ preserving the safety guarantee of the former hub operation.
id: RMGR-WP-0008-T04
status: done
priority: low
state_hub_task_id: "216a03e6-a0ee-4e30-ae96-fa11e77a22ac"
state_hub_task_id: "d374b050-f1ee-5c9f-b9b5-22e9ce71b24f"
```
Workplan dependency edges and human-intervention flags. Smallest of the
@ -160,7 +160,7 @@ the replaceable index. Their authority remains the workplan file.
id: RMGR-WP-0008-T05
status: done
priority: high
state_hub_task_id: "902c71da-1ba5-4e76-bf20-0d9f697edf7a"
state_hub_task_id: "e7ee5c1b-0c0f-5897-9d7e-c185263d2771"
```
The largest gap. Six registers with no counterpart in repo-manager at all:
@ -210,7 +210,7 @@ owner in their JSON. Evidence:
id: RMGR-WP-0008-T06
status: done
priority: medium
state_hub_task_id: "ef7934de-a1e2-4541-8068-e75876446b60"
state_hub_task_id: "dab00853-199e-5702-8705-e462c51020ee"
```
`observe`/`load_classification` read `.repo-classification.yaml` today. Slice
@ -234,7 +234,7 @@ route switching remains in the existing `STATE-WP-0079` retirement workplan.
id: RMGR-WP-0008-T07
status: done
priority: low
state_hub_task_id: "24ee329d-85dd-4e11-9c87-2f20b8f86e81"
state_hub_task_id: "c9593f06-e9e5-5ab1-b4fb-25026ede0dfe"
```
Slice **A4** (22 items, `replace`) assumes an owner-side dashboard.

View file

@ -15,7 +15,7 @@ related:
- RMGR-WP-0005
- ADR-007
- ADR-010
state_hub_workstream_id: "0516ce7b-c0fe-4555-bc31-eb7943c163ef"
state_hub_workstream_id: "4a3c130e-efe2-582a-8ea2-03f2ff2493c1"
---
# Coding-assistant commit provenance trailers
@ -75,7 +75,7 @@ different mechanism and a different decision.
id: RMGR-WP-0009-T01
status: done
priority: high
state_hub_task_id: "39ac4f86-a936-4726-8ad2-d6219f24b1df"
state_hub_task_id: "583d19a8-37b6-5476-bfb5-fe39c885fff8"
```
Publish the trailer set as a repository standard in
@ -120,7 +120,7 @@ conventions are deprecated.
id: RMGR-WP-0009-T02
status: done
priority: high
state_hub_task_id: "7aaccdde-b79f-43ca-b1cd-81c7c3153229"
state_hub_task_id: "7f39c242-ec47-5e90-aade-b1edb5159e85"
```
A `prepare-commit-msg` hook that appends the trailers from environment, wired
@ -156,7 +156,7 @@ exact-token idempotency, and non-blocking behavior. Tool-neutral overrides are
id: RMGR-WP-0009-T03
status: done
priority: high
state_hub_task_id: "f7a29cca-d76c-4205-a33b-3a2276459fce"
state_hub_task_id: "9f06a2d3-c1aa-5b27-98de-825d83b7af06"
```
Environment is already sufficient, verified 2026-08-21:
@ -188,7 +188,7 @@ Claude instructions, so no external prompt edit was needed.
id: RMGR-WP-0009-T04
status: done
priority: high
state_hub_task_id: "180e50ff-6d43-46f3-84d2-b5337ff73900"
state_hub_task_id: "c05552f7-12ca-5252-85b8-0a607fc3822f"
```
Discover what the Codex CLI exports — no `CODEX_*` variables were present in the
@ -214,7 +214,7 @@ best-effort compatibility input rather than the contract.
id: RMGR-WP-0009-T05
status: done
priority: medium
state_hub_task_id: "b8451fe8-233f-4862-a238-5ee84901e7fb"
state_hub_task_id: "0d7518a2-eb5f-5f5f-8076-dddfe1a238c9"
```
Same discovery for Grok. Lowest priority of the three only because it appears
@ -231,7 +231,7 @@ its next real commit remains the operational proof rather than inferred history.
id: RMGR-WP-0009-T06
status: done
priority: medium
state_hub_task_id: "a28d9287-b488-4946-bf46-6cad1a392778"
state_hub_task_id: "c9aadb92-b0f9-50b5-b34b-c62ff30acbfe"
```
The trailers are the input; this is the payoff. An `rmgr` report over
@ -256,7 +256,7 @@ from Git history only. Regression coverage includes an A→B→A interleave.
id: RMGR-WP-0009-T07
status: done
priority: low
state_hub_task_id: "e4ff1ab5-3507-4dff-bb0d-3fed3e0be80f"
state_hub_task_id: "6184c71a-0494-5a99-a99e-b0960e26827c"
```
History is not rewritten — the same reasoning as `ADR-007` § Migration option 2.