diff --git a/workplans/HUB-WP-0004-runtime-and-extension-contract.md b/workplans/HUB-WP-0004-runtime-and-extension-contract.md index 817271f..1fa154d 100644 --- a/workplans/HUB-WP-0004-runtime-and-extension-contract.md +++ b/workplans/HUB-WP-0004-runtime-and-extension-contract.md @@ -8,7 +8,7 @@ status: proposed owner: codex topic_slug: infotech created: "2026-08-09" -updated: "2026-08-09" +updated: "2026-08-20" parent_project: prj-state-hub-retirement parent_workplan: SHR-WP-0001 related: @@ -28,7 +28,8 @@ and runtime**, shipping `helixforge.hub-extension` Tier 1 artefacts and a clear path to absorb core-hub production traffic. Coordinated by `prj-state-hub-retirement` (SHR-WP-0001). Architecture: -`architecture/hub-extension-architecture_v0.1.md`. +`prj-state-hub-retirement/architecture/hub-extension-architecture_v0.1.md` +(the path is project-relative; hub-core has no `architecture/` directory). ## Adopt project architecture freeze @@ -106,6 +107,51 @@ state_hub_task_id: "b35fff11-ac5a-4d70-9f54-416331baea87" With CORE-WP-0010, document route/module move order for `/api/v2`, dual-run, and cutover criteria. No big-bang. +## Readiness review (2026-08-20) + +Reviewed against current repo state at the request of `STATE-WP-0079`, which is +blocked on this plan. **Nothing structurally prevents `ready`** — the plan has +sat at `proposed` since it was drafted on 2026-08-09 without a review, rather +than because it is blocked. + +**Why this matters now.** Wave B of the State Hub cutover slice plan +(`state-hub/docs/retirement-cutover-slice-plan.md`) is **125 inventory items** +across catalogs, messaging, telemetry, projections and hub UI, and none of it +can start until this plan leaves `proposed`. It is currently the single largest +gate in the retirement program. + +**Referenced artefacts all exist** in `prj-state-hub-retirement/architecture/`: + +| Artefact | ID | +| --- | --- | +| `information-model_v0.1.md` | SHR-ARCH-IA-0001 | +| `hub-extension-architecture_v0.1.md` | SHR-ARCH-HUB-0001 | +| `hub-extension-contract_v0.1.yaml` | — (T02 input) | +| `retirement-gates_v0.1.md` | gate definitions | + +**Current hub-core surface**, relevant to T04's minimal vertical: + +| Requested port | Plausible existing basis | +| --- | --- | +| `port.registry` | `routers/repos.py`, `routers/domains.py`, `routers/capabilities.py` | +| `port.messaging` | `routers/messages.py` | +| `port.events.progress` | `routers/progress.py` | +| `port.events.interaction` | none obvious | +| `port.projection.query` | none obvious | + +Mapping needs owner confirmation — `port.*` appears nowhere in hub-core outside +this workplan, so the vocabulary has not landed yet. That is T01's job, and T01 +is a review task with its inputs already available, so it can start immediately. + +**Suggested sequencing:** T01 (inputs ready) → T03 (packaging decision, unblocks +T04's shape) → T02 and T04 in parallel → T05 → T06 with CORE-WP-0010. + +Two of the five ports have no existing basis, so T04's "minimal vertical" is +partly greenfield; worth sizing before committing to it. + +*Review by Claude Code from the state-hub session; status left at `proposed` for +the owner to flip.* + ## Acceptance - [ ] Architecture freeze acknowledged in INTENT/SCOPE