docs: accept repository classification boundary
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a0230c-b06c-7641-808a-e191b6d1da49
This commit is contained in:
parent
f51a5819d5
commit
6288ba3d7d
6 changed files with 201 additions and 12 deletions
51
docs/adr/ADR-0002-repository-classification-projections.md
Normal file
51
docs/adr/ADR-0002-repository-classification-projections.md
Normal 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue