The committed calibration service (model.py/calibrate.py/infer.py) had no
automated test — only ad-hoc verification. Adds a CPU-only, no-real-checkpoint
test that exercises the CLI end-to-end on synthetic data: build base ->
calibrate.py fits adapter -> infer.py runs base+adapter, asserting adapter
size (<200KB), keypoint shape [N,17,2], finiteness, [0,1] range, and that the
adapter actually changes the output. Passes on Windows CPU (torch 2.11).
Co-Authored-By: claude-flow <ruv@ruv.net>
Operationalizes the campaign's central finding (ADR-150 §3.3-3.6): a frozen
shared base + a ~11KB per-room LoRA adapter from ~100-200 labeled samples
recovers SOTA-level pose in any new room/person. Verified end-to-end:
source-only base zero-shot 3.09% on unseen room -> 74.29% after 200-sample
calibration. Files: model.py (PoseNet+LoRA), calibrate.py, infer.py, README
with measured calibration budget.
Co-Authored-By: claude-flow <ruv@ruv.net>