core/docs/decisions/ADR-0216-motor-verdict-lowering.md
2026-06-06 12:37:57 -07:00

1.5 KiB

ADR-0216: Motor Verdict Lowering Prerequisite

Status: Proposed Date: 2026-06-06 Domains: sensorium/efferent.py, sensorium/registry.py, future motor packs Depends on: ADR-0198, ADR-0211

Context

ADR-0198 added the ModalityRegistry.decode() efferent path and intentionally left real motor emission fail-closed. The current DefaultEfferentGate checks capability and vector shape only; it does not lower a motor versor into the safety, ethics, and tool-scope verdicts required for real action.

Decision

No physical motor decode is authorized until a dedicated implementation provides a verdict-enforcing gate:

(32,) motor versor
  -> MotorActionIntent
  -> authority + safety + ethics + tool-scope verdicts
  -> admit/refuse before SurfaceDecoder.decode()

MotorActionIntent is a semantic action predicate bundle, not an actuator command. A VerdictEnforcingEfferentGate must expose enforces_action_verdicts=True and fail closed on absent authority, absent verdict coverage, or any refusal.

Non-Goals

  • No actuator driver.
  • No robot interface.
  • No trajectory executor.
  • No sandbox opt-in on a physical path.
  • No ObservationFrame or CRDT write for emitted motor commands.

Required Proof

  • The gate refuses before decoder invocation on missing authority or failed verdicts.
  • Traces include hashes, authority hash, policy hash, and verdict only.
  • No decoded command payload, trajectory, ndarray, or bytes object enters traces.
  • Physical action remains disabled until a later motor decoder ADR and lab safety contract.