ADR Index
Decision Record
These ADRs lock in the boundary and tooling decisions that the bootstrap rests on. Read them when you need to understand why the repo chose a particular path, not just what the current code does.
0001. Repo build structureWhy the umbrella repo is the baseline and where selective Erlang or native code belongs.0002. BEAM versus native boundaryThe separation between control/orchestration and timing-sensitive southbound work.0003. Canonical FAPI IRWhy the southbound layer is normalized around a shared IR instead of backend-specific flows.0004. ranctl as single action entrypointThe auditability and rollback rationale for forcing all mutations through one surface.0005. Skills, not MCPWhy repo-local skills wrap `ranctl` and stay outside hot paths.0006. Open5GS public surface compatibility baselineThe constraint line for the new Elixir core track under `subprojects/elixir_core/`.0007. RAN functions as agent-friendly CLI surfaceWhy replacement-track RAN actions should expose a stable `resource + action` CLI through `ranctl`.0008. OAI CU/DU function and standards baselineWhy replacement means owning target-profile CU/DU behavior with standards-correct external interfaces, not just orchestration parity.