specificClass.js: 716 → 244 lines.
Measurement extends BaseDomain. Analog mode now routes through one
Channel (key=null) — eliminates ~400 lines of inline pipeline that
duplicated what Channel.update() already did.
Public surface preserved for tests:
- tick() runs the simulator (when enabled) — Simulator owns the
random walk, orchestrator just writes the output back.
- inputValue setter routes through analogChannel.update.
- calibrate() / evaluateRepeatability() delegate to Calibrator.
- toggleSimulation / toggleOutlierDetection unchanged.
- 'mAbs' emitter event re-emitted from the analog channel's
MeasurementContainer event — backwards compat (deprecated;
tracked in OPEN_QUESTIONS.md for removal in Phase 7/8.5).
nodeClass.js: 230 → 42 lines.
Extends BaseNodeAdapter. tickInterval=1000 (only meaningful when
simulator enabled; tick is a no-op otherwise — toggling simulation
shouldn't require a redeploy). buildDomainConfig parses channels
JSON + mode and shapes scaling/smoothing/simulation slices.
96 / 96 tests pass (basic 77 + integration 17 + edge 2).
Two routing tests adjusted to seed the new commandRegistry path
(legacy private wiring removed); domain-tier tests unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Measurement Test Suite Layout
This folder follows EVOLV standard node test structure.
Required folders
basic/integration/edge/helpers/
Baseline files
basic/specific-constructor.basic.test.jsbasic/scaling-and-output.basic.test.jsbasic/nodeclass-routing.basic.test.jsintegration/examples-flows.integration.test.jsintegration/measurement-event.integration.test.jsedge/invalid-payload.edge.test.jsedge/outlier-toggle.edge.test.js
Authoritative mapping for coverage intent lives in:
.agents/function-anchors/measurement/EVIDENCE-measurement-tests.md