Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0055
ADR-0055: volk_registry lives in the agents layer; L0 protocols never name concretes
| field | value |
|---|---|
| Status | Accepted — Accepted (executed under Mohamed's direction) |
| Date | 2026-09-21 |
| Register | factory (docs/adr, 4-digit ids) |
| Source | docs/adr/0055-volk-registry-agents-layer.md — permalink at 8ceb2e5a4 (unchanged on master since that commit) |
| Wiki register entry | ADR-0055 (wiki status: Accepted) |
The record
Date: 2026-09-21 · Status: Accepted (executed under Mohamed's direction)
Context
kernel/volk_registry.py (L4) is the volk/agent registry — an agent-domain
concept — but its L4 home forced L3 consumers (agents/runtime.py) and even
the L0 protocol module core/protocols/volk_health.py into upward imports.
The review's migration map placed it in orchestrata.kernel; the migration
plan's root-cause analysis placed it in orchestrata.agents. The documents
contradicted each other.
Decision
- Relocate
kernel/volk_registry.py→agents/volk_registry.py(K3, merged). The registry is an agent-domain concern; kernel still wires the concrete at the composition root behindVolkRegistryProtocol(target-architecture wiring table amended accordingly). - L0 purity rule: protocol modules must not import concretes, even under
TYPE_CHECKING.core/protocols/volk_health.pyno longer references the concreteVolkRegistry/VolkHealthat all — it uses the existingVolkRegistryProtocol/VolkHealthProbestructural protocols incore/protocols/decoupling.py. Structural conformance of the concrete is asserted by a smoke test.
Consequences
- The map-vs-plan contradiction is resolved in the plan's favor; the map is now the single authoritative target list (reconciled 2026-09-21).
- agents/runtime.py's two upward edges became intra-package (L3) imports.
- Sets the precedent for Cycle-2 (K6):
coremust import nothing from cxp/postman/orchestrator/kernel — vocabulary, not concretes.
Related ADRs
No other ADR is named in this record.
Rulings cited
None.
Specs cited
None (or no spec page exists for the ones named).