diff --git a/docs/decisions/ADR-0181-audio-compiler-delta-crdt.md b/docs/decisions/ADR-0181-audio-compiler-delta-crdt.md index 85eccf3c..efcbf8f6 100644 --- a/docs/decisions/ADR-0181-audio-compiler-delta-crdt.md +++ b/docs/decisions/ADR-0181-audio-compiler-delta-crdt.md @@ -1,7 +1,8 @@ # ADR-0181: CORE-native Audio Compiler over the Delta-CRDT Substrate -**Status:** Proposed +**Status:** Accepted — implementation landed **Date:** 2026-05-29 +**Implementation:** `sensorium/audio/` + `evals/audio_sensorium/`. Proof obligations are covered by `tests/test_audio_compiler.py`, `tests/test_audio_crdt_merge.py`, `tests/test_audio_eval_gates.py`, `tests/test_audio_pack_manifest.py`, and `tests/test_audio_sensorium_mount.py`. **Authors:** Joshua M. Shay, Core R&D Engine **Domains:** `sensorium/audio/`, `sensorium/adapters/audio.py`, `packs/audio/`, `core-rs/src/vault.rs` (read-only contract), `evals/audio_sensorium/` **Depends on:** ADR-0013 (Sensorium Multimodal Protocol), ADR-0180 (Delta-CRDT Sharded Substrate) diff --git a/docs/decisions/ADR-0197-vision-compiler-delta-crdt.md b/docs/decisions/ADR-0197-vision-compiler-delta-crdt.md index 7111c1d2..9d5e95be 100644 --- a/docs/decisions/ADR-0197-vision-compiler-delta-crdt.md +++ b/docs/decisions/ADR-0197-vision-compiler-delta-crdt.md @@ -1,7 +1,8 @@ # ADR-0197: CORE-native Vision Compiler over the Delta-CRDT Substrate -**Status:** Proposed +**Status:** Accepted — implementation landed **Date:** 2026-05-31 +**Implementation:** `sensorium/vision/` + `sensorium/adapters/vision.py`, `packs/vision/vision_core_v1/` (PR #537). Proof obligations are covered by `tests/test_vision_compiler.py`, `tests/test_vision_crdt_merge.py`, `tests/test_vision_sensorium_mount.py`, and `tests/test_vision_eval_gates.py`. **Authors:** Joshua M. Shay, Core R&D Engine **Domains:** `sensorium/vision/`, `sensorium/adapters/vision.py`, `packs/vision/`, `core-rs/src/vault.rs` (read-only contract), `evals/vision_sensorium/` **Depends on:** ADR-0013 (Sensorium Multimodal Protocol), ADR-0180 (Delta-CRDT Sharded Substrate), ADR-0181 (Audio Compiler — structural precedent) diff --git a/docs/decisions/ADR-0198-motor-efferent-decoder-spike.md b/docs/decisions/ADR-0198-motor-efferent-decoder-spike.md index 50537ce5..c960ec98 100644 --- a/docs/decisions/ADR-0198-motor-efferent-decoder-spike.md +++ b/docs/decisions/ADR-0198-motor-efferent-decoder-spike.md @@ -1,6 +1,6 @@ # ADR-0198: Motor as Efferent Modality — Protocol Gap & Governance (Design Spike) -**Status:** Proposed (design spike — no implementation) +**Status:** Accepted (design spike) — Gap A protocol change + a baseline efferent gate have landed; the §3 verdict-lowering and the motor compiler/decoder remain deferred. See **Implementation Status** below. **Date:** 2026-05-31 **Authors:** Joshua M. Shay, Core R&D Engine **Domains:** `sensorium/protocol.py`, `sensorium/registry.py`, `packs/motor/` *(future)*, governance packs (ADR-0029/0033/0036/0037) @@ -9,6 +9,16 @@ --- +## Implementation Status (reconciled 2026-06-04) + +**Gap A has landed.** `ModalityRegistry.decode(pack_id, mv, *, authority)` with a required, never-optional `AuthorityToken`, plus a baseline `DefaultEfferentGate` (`sensorium/efferent.py`, PR #541). The §1.2 Gap B ordering is **proven**: `tests/test_efferent_gate.py::test_registry_uses_default_efferent_gate_before_decoder` asserts `decoder.calls == 0` on refusal — the gate refuses *in the manifold*, before any command is formed. Traces are hash-only (no `mv`, no ndarray/bytes). + +**Deferred — blocking obligations before any motor decoder mounts:** + +1. **§3 verdict-lowering is NOT implemented.** `DefaultEfferentGate` admits on capability-token + `(32,)` vector-shape only; it does **not** lower the decoded motor versor into the safety/ethics pack verdicts of ADR-0029/0033/0036/0037. A valid capability token alone currently passes the gate. This is admissible **only because no real motor decoder exists** — the sole `SurfaceDecoder` in the tree is a test fixture that returns the string `"decoded"`. The §1.2 Gap B guarantee ("passes safety/ethics verdicts before it leaves the boundary") is therefore *partially* realized. Before any pack mounts a decoder that actuates, the gate MUST be extended to the verdict-lowering path; this obligation is load-bearing and must not be silently skipped. +2. **The motor compiler/decoder itself remains out of scope** (per §5). +3. **A dedicated motor governance ADR** ratifying the §3 lowering against ADR-0029/0033/0036/0037 remains a prerequisite (per §5). + ## 1. Why motor is not "just another modality" Every modality landed so far is **afferent**: signal comes *in*, crosses the `ProjectionHead` boundary, becomes a `(32,)` versor. Motor is **efferent**: meaning leaves the manifold and becomes action in the world. The protocol already anticipates this asymmetry — `sensorium/protocol.py` defines: diff --git a/docs/decisions/ADR-0208-environmental-sensorium-loop.md b/docs/decisions/ADR-0208-environmental-sensorium-loop.md index 51d288cb..8e1d1139 100644 --- a/docs/decisions/ADR-0208-environmental-sensorium-loop.md +++ b/docs/decisions/ADR-0208-environmental-sensorium-loop.md @@ -1,7 +1,8 @@ # ADR-0208: Environmental Sensorium Loop -**Status:** Proposed +**Status:** Accepted — implementation landed (afferent scope) **Date:** 2026-06-04 +**Implementation:** `sensorium/environment/frame.py` (PR #540) + `sensorium/environment/harness.py` (PR #541). Proof obligations are covered by falsifiable tests in `tests/test_observation_frame_contract.py` (order-invariant frame trace hash, `merge_key` dedup, `TypeError` on raw-payload units, `ValueError` on efferent units) and `tests/test_observation_frame_harness.py`. Disjoint from the GSM8K serving path (no import of `generate.derivation` / `core.reliability_gate`). **Domains:** `sensorium/environment/`, `sensorium/compiler/`, `sensorium/*`, future sensorimotor compilers **Depends on:** ADR-0013, ADR-0180, ADR-0181, ADR-0197, ADR-0198 diff --git a/docs/decisions/ADR-0209-sensorimotor-feedback-contract.md b/docs/decisions/ADR-0209-sensorimotor-feedback-contract.md index b7d83124..8ff797e0 100644 --- a/docs/decisions/ADR-0209-sensorimotor-feedback-contract.md +++ b/docs/decisions/ADR-0209-sensorimotor-feedback-contract.md @@ -1,7 +1,8 @@ # ADR-0209: Sensorimotor Feedback Is Afferent -**Status:** Proposed +**Status:** Accepted — implementation landed (afferent scope) **Date:** 2026-06-04 +**Implementation:** `sensorium/sensorimotor/` (PR #540) + `sensorium/adapters/sensorimotor.py`, `packs/sensorimotor/sensorimotor_core_v1/` (PR #541). Proof obligations are covered by falsifiable tests in `tests/test_sensorimotor_contract.py` (deterministic unit + merge key, IR replay, idempotent delta merge, **no `decode`/`decode_batch` path**, hash-only trace with no command/trajectory payload) and `tests/test_sensorimotor_pack_manifest.py`. **Domains:** `sensorium/sensorimotor/`, `sensorium/protocol.py`, future robotics integrations **Depends on:** ADR-0013, ADR-0198, ADR-0208