Decisions
ADR-018: Read-only MCP build and transport boundary
Status: Accepted target; isolated MCP service not implemented by hello.
Decision
The eventual MCP executable may import only immutable snapshot DTOs and read-only transport clients, never transaction, installer, effect or secret-broker packages. Core will publish redacted snapshots on a distinct private socket/named pipe with peer-identity checks, bounded messages and an optional stdio bridge. No mutating methods are compiled into that listener. Slow tasks remain read-only diagnostics.
The existing MCP server remains a legacy compatibility surface. The prototype's local status command is not the isolated MCP service: it opens the core lock and therefore must not be exposed as the promised read-only socket implementation. MCP revision support must be based on published specifications and conformance fixtures; a future revision date in a roadmap is not proof of implementation.
Acceptance
Before migration, a build dependency test must reject any mutation-package import, including transitive imports; transport tests must reject unauthorized peers and mutation-shaped requests. Record model/context/diagnostic metadata only, never conversation text or credentials. ADR-012 remains unrelated to this trust boundary.