# RideForm

Native iOS torso-motion experiment. Read `docs/requirements/ios-v0-brief.txt` and the unified plan under `docs/plans/`. Parent instructions apply. App code lives in `App/`; portable code and deterministic tests in `Packages/RideFormCore/`; iOS integration/UI tests in `Tests/`.

## Verification

Use `/Applications/Xcode-beta.app/Contents/Developer` as `DEVELOPER_DIR` on this machine. Never claim simulator motion as hardware evidence. Physical mounting/sign checks, matched raw/fused trials, and roughly 50 garage transitions remain human verification gates.

Core: `./scripts/test-core.sh` (selects installed Xcode when the system selection is CommandLineTools, which cannot resolve XCTest here). App commands and evidence are recorded in `docs/validation/` as tooling becomes available. Main coordinator owns authoritative runs and commits; workers own only assigned files and never commit.

## Durable execution state

`docs/execution-state.md` records units, evidence, decisions, and next actions. Do not mutate the plan to track progress. Completed masters are immutable; no session deletion UI. Preserve raw data, timestamps, explicit unavailable values, and analysis configuration.

## Algorithm Notes

Analysis version `rideform-analysis-2` uses fixed neutral rider coordinates. Units are radians, rad/s, rad/s², rad/s³, seconds and acceleration g. Actual-time derivatives and integration split at gaps; optional local polynomial filtering defaults to a 0.12-second window and never fills missing acquisition rows. Onset is max(5°/s, stationary median+6MAD) sustained0.10seconds; settling requires2°/s,1° angle range and0.40seconds. Neutral threshold3°. Corrections require0.05seconds and max(1°,6 angleMAD); intentional return is separate. Spectral metrics interpolate only an eligible continuous segment to50Hz, use a Hann window and5Hz cutoff, and report unavailable when effective source bandwidth is insufficient. Duration excludes confirmed dwell; sample variance needs at least two transitions. These are experimental candidate metrics, with no composite rider-quality score. Exact formulas/configuration and caveats: `docs/analysis-metrics.md`; verification: `./scripts/test-core.sh`.
