Skip to content

docs: record ADR rejecting a structural-key registry#39

Merged
lesnik512 merged 1 commit into
mainfrom
docs/reject-structural-key-registry
Jul 12, 2026
Merged

docs: record ADR rejecting a structural-key registry#39
lesnik512 merged 1 commit into
mainfrom
docs/reject-structural-key-registry

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Records the outcome of architecture-review candidate 3 ("close the split-brain key registry") as an ADR. No code change.

Conclusion: the split is essential. The 20 structural keys span six distinct emit shapes (slot-occupiers, project_dir flag-producers, healthcheck, graph keys, pod-level aggregated, document-scoped) and share no interface — so a uniform structural registry would be a false seam that scatters cohesive logic (depends_on↔graph, dns↔pod, secrets↔stores, deploy↔resources) behind Any-typed callbacks. STRUCTURAL_KEYS holds no behavior (deletion test); the only duplication is the key-name list, already guarded by the snapshot/disjoint tests.

The narrow name single-sourcing (deriving the gate's accept-list from per-module declared key sets) was also weighed and declined for now — it distributes six small sets + import edges to remove a minor, test-guarded duplication. The ADR names it as the designated revisit path should a trigger fire (a third reader of the key set, or a cluster of new keys sharing one new shape), so future reviews reach for single-sourcing, never the registry.

planning/decisions/2026-07-12-reject-structural-key-registry.md

Architecture-review candidate 3 proposed folding the 20 structural keys into
a uniform registry. The structural keys span six distinct emit shapes and
share no interface, so such a registry is a false seam that would scatter
cohesive logic (depends_on/graph, dns/pod, secrets/stores) behind Any-typed
callbacks. STRUCTURAL_KEYS holds no behavior -- the only duplication is the
key-name list, which the snapshot/disjoint tests already guard. The narrow
name single-sourcing was also weighed and declined for now; the ADR names it
as the designated move should a revisit trigger fire.
@lesnik512 lesnik512 merged commit 097bb4f into main Jul 12, 2026
6 checks passed
@lesnik512 lesnik512 deleted the docs/reject-structural-key-registry branch July 12, 2026 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant