Implements the 4-phase documentation reorganization master plan. - Consolidation: Merged brief/, handoff/, planning/, and decisions/ into briefs/, handoffs/, plans/, and adr/ respectively (101 ADRs relocated) - Root Cleanup: Relocated HANDOFF-gpt55-*.md and key top-level docs (runtime_contracts.md, etc.) to canonical folders. Added superseded alerts. - Indices & Navigation: Created docs/README.md navigation document, docs/sessions/README.md index, docs/adr/README.md index - Note: Also includes prior commit adding ADR-0200+ corpus hygiene governance (ADR-0225, dependency map, backfilled cross-references)
3.2 KiB
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.
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:
ProprioceptiveSignal
pose_q
velocity_q
force_torque_q
contact_q
actuator_state_q
source_sha256
canonical_sha256
The compiler emits:
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.
Governance Cross-Reference (ADR-0225)
This late-corpus ADR is governed by ADR-0225:
- Safety boundaries: changes must preserve ADR-0027/0028/0029 identity and safety-pack boundaries; no identity, safety, or policy mutation is implied unless explicitly reviewed.
- Versor closure: runtime field paths must preserve
versor_condition(F) < 1e-6; this ADR does not authorize hidden normalization or hot-path drift repair. - Reconstruction-over-storage: evidence must remain reconstructive and content-addressed rather than duplicating opaque state.
- Replay-equivalence: serving, teaching, promotion, or checkpoint changes require a named deterministic replay / byte-equivalence gate.
- Mutation standing: any durable corpus, pack, policy, or epistemic-status mutation remains reviewed, proposal-only until accepted, or proof-carrying as applicable.