activity-core/workplans/ACTIVITY-WP-0029-hub-port-alignment.md
custodian-sync 88f1776ca0 chore(consistency): renormalize lifecycle state [auto]
Updated by fix-consistency on 2026-08-18:
  - workplan status: ready → active
2026-08-18 10:28:56 +02:00

5.3 KiB
Raw Blame History

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
ACTIVITY-WP-0015
ACTIVITY-WP-0017
ACTIVITY-WP-0026
HUB-WP-0004
RMGR-WP-0001
STATE-WP-0079
CORE-WP-0010
SHR-ARCH-HUB-0001
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 postState 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"