hub-core/workplans/HUB-WP-0006-repository-classification-navigation.md
tegwick 6288ba3d7d
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 2s
docs: accept repository classification boundary
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0230c-b06c-7641-808a-e191b6d1da49
2026-08-22 00:12:03 +02:00

118 lines
3.5 KiB
Markdown

---
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
---
# 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
```
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
```
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
```
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
```
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
```
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
```
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