# ADR-0209: Sensorimotor Feedback Is Afferent

**Status:** Accepted (ratified 2026-06-03) — 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

## Decision

CORE will treat proprioception, tactile/contact state, actuator state feedback,
and action result evidence as **afferent sensorimotor input**. Motor commands
remain **efferent** and are governed separately by `EfferentGate`.

```text
proprioception / contact / actuator feedback
  -> sensorimotor compiler
  -> SensorimotorCompilationUnit
  -> ObservationFrame

field action intent
  -> EfferentGate + AuthorityToken
  -> governed decode / refusal
  -> environment effect
  -> result feedback re-enters as sensorimotor input
```

## Contract

The v1 afferent signal is quantized and replayable:

```text
ProprioceptiveSignal
  pose_q
  velocity_q
  force_torque_q
  contact_q
  actuator_state_q
  source_sha256
  canonical_sha256
```

The compiler emits:

```text
SensorimotorIR
SensorimotorCompilationUnit
ContentAddressedDelta
```

No decoder, trajectory executor, actuator driver, robot interface, tool call, or
skill invocation is introduced by this contract.

## Consequences

This reserves the correct robotics shape without making unsafe action emission
look like ordinary perception. A robot can later close the loop through
environment orchestration, but the two halves remain type-separated:

- sensorimotor feedback is evidence;
- motor command is authorized action;
- action results become new evidence only after they re-enter through an
  afferent compiler.

## Proof Obligations

- Same canonical proprioceptive signal produces identical unit and merge key.
- IR replay reproduces the projection.
- Sensorimotor deltas merge idempotently.
- Sensorimotor compiler exposes no decode path.
- Trace records contain no command or trajectory payload.
