Ship the 47-exercise library in-app: export, fixtures, tests, docs

render.py --export bundles the 25 new motion rigs and info pages;
figure-fixtures.json regenerated for all 47 (the Swift solver reproduces
every new motion, including negative-y pins and the new prop uses). The
fixture count assertion moves to 47, and the no-bundled-motion test now
uses Treadmill - a permanent COVERAGE.md exclusion - since Bench Press
exists. 48 tests green; watch target builds. Coverage handoff complete -
TODO-coverage.md retired.

Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
This commit is contained in:
2026-07-07 12:18:07 -04:00
parent b545ad05c9
commit 7c241ec44c
56 changed files with 1858 additions and 141 deletions
@@ -0,0 +1,37 @@
# Goblet Squat
The dumbbell squat — hold one dumbbell vertically at the chest and squat
between the heels. The friendliest way to load a squat.
- **Category:** Main circuit
- **Type:** Free-weight squat (dumbbell)
- **Targets:** Quadriceps, glutes, trunk
- **Prescription:** 3 × 1012
## Setup
Hold a dumbbell vertically against your chest, both palms cupping the top
end, elbows pointing down. Feet shoulder-width, toes slightly out.
## Execution
1. Squat down between the heels, keeping the dumbbell glued to the chest.
2. Reach full depth — elbows travel inside the knees.
3. Stand back up tall without letting the weight tip you forward.
## Cues
- The counterweight in front lets the torso stay very upright — use it.
- Elbows brush the inside of the knees at the bottom.
- Whole foot planted; drive through the heels.
## Common Mistakes
- Letting the dumbbell drift away from the chest.
- Cutting depth short.
- Collapsing the upper back as the weight gets heavy.
## Progression
Heavier dumbbells until they're awkward to hold — then move to the
Barbell Squat.