# V392 — Hurdle Stretch body-authority correction

## Root cause found

V391 did **not** add a new IK solver. The regression came from authority selection during baking: the historical `warmup_hurdle_stretch_right_pose_v50_ik_v1` profile, which exists to develop the heel/lower-leg grip, was accidentally allowed to author the whole body.

That V50 development profile contains old test geometry that is valid only as grip-development history, including:

- inward neutral toe vectors,
- asymmetric head/body targets,
- historical free-arm targets/palm frames.

This is why the V391 animation could differ from the normal hurdle-stretch keyposes even though the generic grip itself was correct.

## V392 ownership

- **Body/keypose authority:** `warmup_hurdle_stretch_ik_v1`.
- **Grip authority:** established V50 + generic V338/V339 grip chain, restricted to the active gripping arm/leg/contact branch.
- **Neutral feet:** canonical hurdle targets; Foot→ToeBase vectors are parallel forward (`x=0`, `z=+0.12 m`) on both sides.
- **Free arm/support side:** canonical hurdle keypose branch, not V50 grip-test geometry.
- **Head:** positional IK remains unchanged; only visible Head-bone world orientation is stabilized to the canonical hurdle ready orientation during the bake. No solver/runtime change.
- **Timing:** 4.75 s neutral-to-neutral source window with explicit phase knots (`0 s → phase 0`, `4.75 s → phase 1`).
- **Production playback:** 720 baked frames, zero live solver calls.

## Grip status

Both authored grip peaks still pass the established generic grip gate:

- Left: `PALM_PLUS_FOUR_FINGERS_READY_FOR_VISUAL_QA`
- Right: `PALM_PLUS_FOUR_FINGERS_READY_FOR_VISUAL_QA`

No new exercise-specific grip solver was added.

## QA

- Build/integration gate: PASS.
- Neutral toe-direction gate: PASS.
- Resolved registry/player wiring: PASS.
- Maximum baked frame-to-frame bone rotation after correction: **1.256076°** (`L_Calf`).
- Actual Nex FBX CPU skinned-mesh temporal QA: PASS, two loops / 9.5 s / 8 fps / 196,998 visible skinned vertices per frame.
- Human visual acceptance: PENDING.
- Chromium/WebGL visual parity: not claimed in this ordinary-chat environment.

## Key files

- Resolved asset: `assets/nexprod/resolved/hurdle-stretch-v392-body-authority-fix.resolved.json`
- Player: `assets/nexprod/nexprod01-resolved-player-v392.html`
- Playback module: `assets/nexprod/nexprod01-resolved-playback-v392.mjs`
- Source film: `assets/media/exercises/hurdle-stretch/source/NEXT11_dynamic_warmup_ijj7TD0DA6Q_hurdle-stretch.mov`
- QA film: `diagnostics/v392/V392_HURDLE_STRETCH_BODY_AUTHORITY_FIX_CPU_SKINNED_MESH_TWO_LOOP_QA.mp4`
- Build report: `diagnostics/v392/V392_HURDLE_STRETCH_BODY_AUTHORITY_FIX_BUILD_REPORT.json`
- Integration check: `diagnostics/v392/V392_HURDLE_STRETCH_BODY_AUTHORITY_FIX_INTEGRATION_CHECK.json`
