Context

ada-core needs a structured IPC protocol so ada-api can invoke orchestration functions (run.init, run.next, bank.retrieve) without spawning CLI processes for every call.

Decision

JSON-RPC 2.0 over Unix domain socket (.claude/ada-core.sock) with NDJSON framing and per-frame HMAC-SHA256 authentication. Handshake: hello + semver. TCP loopback 127.0.0.1:3099 as server-mode fallback.

Consequences

Typed, versioned, authenticated IPC. Eliminates spawn-per-call overhead. Requires socket lifecycle management.

← ADR-015ADR-017