5.3 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | parent_project | parent_workplan | stream | related | state_hub_workstream_id | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ACTIVITY-WP-0029 | workplan | Hub port and schedule alignment for State Hub retirement | infotech | activity-core | active | grok | infotech | 2026-08-09 | 2026-08-18 | prj-state-hub-retirement | SHR-WP-0001 | S5 |
|
1b18849c-db3a-40a0-8f22-7af7fd4dbcfc |
Hub port and schedule alignment for State Hub retirement
Goal
Align activity-core schedules, sinks, and the execution-queue boundary with the post–State Hub owners so this repo stays the Event Bridge (when / what / where) and does not absorb work that now has a clearer home.
Reviewed 2026-08-18 against prj-state-hub-retirement (SHR-ARCH-HUB-0001,
SHR-INV-0001, child-workplan map S5), repo-manager INTENT,
info-tech-canon (Task / Organization / Governance / Repository Layout),
and policy-nexus INTENT.
Responsibility map
activity-core owns schedule fire, rule/instruction evaluation, bounded declared side-effects, spawn/run evidence, and the ops_run claim queue (ACTIVITY-WP-0026). It does not own the things it currently calls.
| Concern | Owner | activity-core role |
|---|---|---|
| Cron / event / one-shot fire | activity-core | Authority |
| Ops-run claim / lease | activity-core | Authority (not a task database) |
| Work-item semantics (Task, Commitment, TaskState) | info-tech-canon | Consume vocabulary; do not redefine |
| Who is responsible / accountable | info-tech-canon Organization Model | Do not invent org roles here |
| Policy content (canon, ADRs) | Owning repo | Local files stay source of truth |
| Policy publication | policy-nexus | Do not publish or host policy |
| Regulatory interpretation | risk-nexus | Out of scope |
| Repo registry, file↔index consistency, work-record index | repo-manager | Schedule the sweep; do not own C-rules |
| Messages, progress projections, hub ports | hub-core (surviving runtime) | Sink / consume after HUB-WP-0004 |
core-hub /api/v2 |
CORE-WP-0010 → absorbed into hub-core | Temporary dual-run only |
| Issue projection | issue-core | Optional ISSUE_SINK_TYPE=rest |
| State Hub routes used today | STATE-WP-0079 strangler | Compatibility until cutover |
Naming: hub-core is the surviving framework and runtime (SHR-ARCH-HUB-0001). core-hub is the current production host to be archived. Do not treat them as interchangeable, and do not add permanent authorities on State Hub.
Inventory split that T02 must honour (job:consistency-sweep-remote-all):
activity-core stays the executor; the reconciliation engine moves to
repo-manager (route:POST:/consistency/sweep/remote-all, disposition move).
T04 is a replace of State Hub /execution/* onto activity-core. That is
schedule / launch / ops_run ownership, not workplan file authority (repos)
and not task lifecycle (issue-core / work records / ITC Task Model).
Out of this workplan: SBOM catch-up (CUST-WP-0062 / ACTIVITY-WP-0030, parked).
Map current State Hub / hub-core callers
id: ACTIVITY-WP-0029-T01
status: todo
priority: high
state_hub_task_id: "03021be2-5d60-455b-9c9c-b8681d65911c"
Inventory schedules, sinks, and context resolvers that call State Hub or
core-hub APIs. For each caller record: current URL, SHR-INV item if any,
target owner (table above), and target port when HUB-WP-0004 has named it
(port.schedule is ours to consume, not to invent in hub-core).
Do not retarget a caller to activity-core just because we schedule it.
Retarget consistency sweep
id: ACTIVITY-WP-0029-T02
status: todo
priority: high
state_hub_task_id: "f8107e2b-ab1f-4a3b-9348-8d5dcfb647b4"
Keep the activity-core schedule. Point the remote sweep at repo-manager (or the existing State Hub dual-run adapter until RMGR cutover) without losing C-rule coverage. RMGR-WP-0001 is finished; do not re-implement consistency inside this repo.
Align ops evidence sink
id: ACTIVITY-WP-0029-T03
status: wait
priority: medium
state_hub_task_id: "3fbadbfe-9107-4869-b53f-3b9b46e0555a"
Wait on HUB-WP-0004 (ports still proposed) and the CORE-WP-0010
absorption path. Interaction-event / progress evidence follows the
hub-core runtime, not a permanent core-hub or State Hub host. Update
smokes when the port exists. Until then, keep the State Hub beachhead
(ACTIVITY-WP-0015) as the compatibility sink.
Execution queue boundary
id: ACTIVITY-WP-0029-T04
status: todo
priority: medium
state_hub_task_id: "a34b42c3-8a08-482b-936f-14675ee254ca"
Document the contract first, then replace State Hub /execution/* callers
with activity-core (ops_run / launch), matching SHR-INV
workplan-execution-queue. Explicit non-goals: repo-manager work-record
index, issue-core lifecycle, ITC Task Model types, policy-nexus publication.
Acceptance
- Caller map lists owner + current URL for every State Hub / core-hub call
- Sweep still fires from activity-core and hits repo-manager (or dual-run)
- Evidence sink plan names hub-core as the permanent host; T03 stays wait until that port exists
- Execution boundary is written so
/execution/*cannot be read as "activity-core owns tasks"