docs: accept repository classification boundary
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 2s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0230c-b06c-7641-808a-e191b6d1da49
This commit is contained in:
tegwick 2026-08-22 00:12:03 +02:00
parent f51a5819d5
commit 6288ba3d7d
6 changed files with 201 additions and 12 deletions

View file

@ -0,0 +1,51 @@
# 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.