--- id: HUB-WP-0006 type: workplan title: "Repository classification aggregation and navigation" domain: infotech repo: hub-core status: active owner: codex topic_slug: custodian created: "2026-08-22" updated: "2026-08-22" parent_project: prj-state-hub-retirement parent_workplan: STATE-WP-0079 related: - HUB-WP-0004 - HUB-WP-0005 - RMGR-WP-0008 - RMGR-CONTRACT-CLASSIFICATION-0001 state_hub_workstream_id: "c5abf6a3-0ea9-43b8-8757-179829dd8a9c" --- # Repository classification aggregation and navigation ## Goal Consume Repo Manager's validated repository-classification projections and provide rebuildable cross-domain aggregation/navigation without creating a second classification authority. Supply the hub-core receiving surface needed for State Hub retirement slices A5 and the repository-facing part of A4/B5. ## Accept the classification projection boundary ```task id: HUB-WP-0006-T01 status: done priority: high state_hub_task_id: "b1e2fe24-8a38-4672-a7a7-4a45f90355fb" ``` Review `RMGR-CONTRACT-CLASSIFICATION-0001` version 1.0 and record the hub-core authority, validation, versioning, provenance, failure, and A5 routing boundary. Completed 2026-08-22. `docs/adr/ADR-0002-repository-classification-projections.md` accepts the contract without a schema gap. Repository files remain authority; Repo Manager validates and publishes; hub-core derives navigation only; and STATE-WP-0079 retains the consumer-route switch and rollback flag. ## Freeze the hub-side projection contract ```task id: HUB-WP-0006-T02 status: todo priority: high state_hub_task_id: "47d7d168-217f-45c6-b4d7-ab9cf4dd5329" ``` Define the input envelope, supported contract versions, stable repository identity, cursor/snapshot semantics, provenance, diagnostics, and the derived domain/category/tag/stake/mechanic views. Define legacy topic aliases as temporary compatibility metadata, not mutable topic authority. ## Implement Repo Manager ingestion and rebuild ```task id: HUB-WP-0006-T03 status: todo priority: high state_hub_task_id: "2884eb0f-046f-4122-a422-8a06c7c32298" ``` Add an injected `port.repo` client, deterministic full rebuild plus incremental upsert/delete behavior, durable PostgreSQL projection tables, content hashes, and dependency-aware readiness. Reject invalid or unsupported projection versions without coercion. ## Expose projection query and MCP navigation ```task id: HUB-WP-0006-T04 status: todo priority: high state_hub_task_id: "a1d85610-c3ea-4718-b394-ba4abcecf177" ``` Expose cross-repository query routes and MCP tools for domain, secondary domain, category, capability tag, business stake, and business mechanic. Responses carry source revision and rebuild provenance. No endpoint writes classification authority. ## Prove conformance and failure behavior ```task id: HUB-WP-0006-T05 status: todo priority: medium state_hub_task_id: "a3c0efba-9913-4617-b167-8853b34de36e" ``` Add contract fixtures and checks for full rebuild, incremental changes, deletion, duplicate delivery, unsupported versions, Repo Manager outage, stable ordering/cursors, provenance, and absence of classification writes or foreign database access. ## Hand A5/A4 navigation to State Hub retirement ```task id: HUB-WP-0006-T06 status: wait priority: high state_hub_task_id: "5c6f3006-b1c7-422b-ad38-8727ae4dc7c2" ``` With `STATE-WP-0079`, compare legacy topic/navigation consumers with the new projection, retain explicit aliases where required, run owned consumer smokes, switch A5 through `RM_SLICE_TOPICSPINE`, and record rollback plus residual expiry. Wait on T02-T05 and the State Hub cutover window. ## Acceptance - [x] Repo Manager v1.0 authority and projection contract accepted - [ ] Hub-side projection and compatibility alias contract versioned - [ ] Rebuildable durable ingestion passes provenance and failure checks - [ ] HTTP/MCP navigation reads only the derived projection - [ ] A5/A4 consumer comparison and rollback evidence recorded