Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a0230c-b06c-7641-808a-e191b6d1da49
51 lines
2.4 KiB
Markdown
51 lines
2.4 KiB
Markdown
# ADR-0002: Consume repository classification as a projection
|
|
|
|
**Status:** Accepted
|
|
**Date:** 2026-08-22
|
|
**Workplan:** `HUB-WP-0006-T01`
|
|
**Upstream contract:** `RMGR-CONTRACT-CLASSIFICATION-0001` version 1.0
|
|
|
|
## Context
|
|
|
|
State Hub's legacy topic spine mixes mutable topic rows with repository
|
|
classification and navigation. State Hub retirement slice A5 replaces that
|
|
model. Repo Manager now validates each repository-authoritative
|
|
`.repo-classification.yaml` and publishes the validated classification in its
|
|
repository projection.
|
|
|
|
Hub-core owns cross-domain projection and navigation, but it must not turn the
|
|
projection into a second classification authority or recreate a mutable topic
|
|
table.
|
|
|
|
## Decision
|
|
|
|
1. Repo Manager's classification contract version 1.0 is accepted without a
|
|
schema gap. Repo Manager owns validation and publication; the repository
|
|
file remains authoritative.
|
|
2. Hub-core consumes only validated Repo Manager projections through a
|
|
versioned `port.repo` boundary. It does not read, validate, infer, coerce, or
|
|
write `.repo-classification.yaml` directly.
|
|
3. Hub-core may aggregate repositories by primary domain, secondary domain,
|
|
category, capability tag, business stake, and business mechanic for
|
|
navigation and hub composition. Every derived view carries Repo Manager
|
|
source identity, repository revision, contract version, and rebuild time.
|
|
4. A legacy State Hub topic identifier may be retained as a compatibility
|
|
alias during A5 cutover. It is not a new authority and must have an expiry
|
|
or residual owner.
|
|
5. Invalid or unsupported projection versions fail closed and remain visible
|
|
as diagnostics. Hub-core does not silently reinterpret them.
|
|
6. State Hub owns the A5 consumer-route switch and rollback flag under
|
|
`STATE-WP-0079`. Hub-core owns the receiving projection/query and navigation
|
|
surface; Repo Manager owns the input contract.
|
|
|
|
## Consequences
|
|
|
|
- Topic navigation becomes rebuildable from repository authority rather than
|
|
copied from the State Hub `topics` table.
|
|
- Repository classification changes continue through governed Repo Manager
|
|
mutation and repository review, never a hub-core write endpoint.
|
|
- Hub-core needs an explicit Repo Manager client, projection schema, query/MCP
|
|
surface, provenance checks, and unavailable/version-mismatch behavior before
|
|
A5 can switch.
|
|
- Contract evolution is negotiated by version; a canon vocabulary change is
|
|
not inferred from observed data.
|