# ADR 0002: NODEDC MISSION CORE monorepo - Status: accepted - Date: 2026-07-16 ## Context The repository began as a focused XGRIDS/LixelKity K1 connector and then gained a vendor-neutral control-station shell, local control plane, replay runtime, and embedded spatial viewer. The K1 vertical is proven on real hardware, but its names and implementation are still coupled to the host. ## Decision The product, repository, and local root are named NODEDC MISSION CORE. The canonical Git path is `SILVER/NODEDC_MISSION_CORE`, and the local checkout is `NODEDC_MISSION_CORE`. Mission Core remains one monorepo while the first plugin contract stabilizes: ```text apps/control-station/ browser operator application packages/plugin-sdk/ shared plugin contracts and host interfaces plugins/xgrids-k1/ XGRIDS/LixelKity K1 device plugin src/k1link/ transitional compatibility implementation docs/ architecture, runbooks, ADRs, and redacted evidence ``` An independent plugin does not require an independent Git repository at this stage. The XGRIDS plugin must have an explicit package/runtime boundary, manifest, capabilities, tests, and no ownership of Mission Core navigation. It can be split into another repository later without changing host contracts. The Rerun integration is a replaceable presentation adapter. It is not the Mission Core data bus, session database, or device protocol. ## Compatibility boundary The rename does not alter these proven interfaces: - Python import namespace and CLI `k1link`; - native `.k1mqtt` framing and `K1MQTT` magic; - provisioning profile `xgrids-k1-fw3-wifi-v1`; - K1 MQTT topics and firmware-scoped protobuf/LZ4 codecs; - current `k1_ip`, `K1Metrics`, and `useK1Console` compatibility fields; - schema v1 `$id`, which remains an immutable legacy identifier. Those names move or change only during the plugin-extraction milestone with explicit migration and regression tests. ## Consequences - Product branding, repository metadata, frontend application path, API title, and Rerun recording identity use Mission Core naming now. - The existing K1 implementation remains operational while contracts are extracted incrementally. - Core must eventually boot without the XGRIDS plugin. - Plugin failure must not terminate the Mission Core host or raw evidence plane. - A future repository split remains possible after Plugin SDK v1 is stable.