The UX redesign's first landing (spec in UX-REDESIGN.md): ContentView becomes a Today / Progress / Settings TabView, "Routine" replaces "Split" in every user-facing string and view name (code-level types keep their names), and workout starting moves to shared WorkoutStarter / StartedWorkoutNavigator plumbing. - New Progress tab: weekly goal streaks, workout trends, per-exercise weight progression, achievements, and the full history list (WorkoutLogsView -> WorkoutHistoryView). - Goals: stable categories workouts roll up to, managed from Settings. - New Meditation exercise + starter routine; timed sits record to Apple Health as Mind & Body sessions. Claude-Session: https://claude.ai/code/session_012qw2itfzKyEJ1HpsFt8Ex4
6.3 KiB
Library Coverage Model
The picker lists exactly the bundled library names and has no free-text fallback — the library is the app's closed catalog, so a missing movement pattern or gym station is a hard wall for logging, not a cosmetic gap. This file is the standing test for the catalog: a typical gym-goer — machine circuit, free-weight lifter, or home/bodyweight — must be able to build their whole program from the picker. Judge every future addition (or removal) against both tables; the target list is their union.
- Function — the movement-pattern × modality matrix below. A cell needs an exercise only if real programs train that pattern that way.
- Equipment — the gym-floor census below. Users log by station name, not by pattern: Chest Press covering "horizontal push" does not cover the flat bench. Inclusion test: found in most commercial gyms (Planet Fitness / Gold's tier), not "exists somewhere."
Pattern × modality matrix
"—" means real programs don't commonly train that pattern in that modality; it is a considered exclusion, not a gap.
| Pattern | Machine / cable | Free weight | Bodyweight / floor |
|---|---|---|---|
| Squat | Leg Press | Barbell Squat, Goblet Squat | Bodyweight Squat |
| Hinge | Back Extension | Deadlift, Romanian Deadlift, Hip Thrust | Glute Bridge |
| Lunge | — | Lunge (dumbbells optional) | Lunge |
| Horizontal push | Chest Press, Pec Deck | Bench Press, Incline Bench Press, Dumbbell Bench Press, Dumbbell Fly | Push-Up |
| Vertical push | Shoulder Press | Dumbbell Shoulder Press | — |
| Horizontal pull | Seated Row, Face Pull | Dumbbell Row | — |
| Vertical pull | Lat Pull Down | — | Pull-Up |
| Elbow flexion | Arm Curl | Dumbbell Curl | — |
| Elbow extension | Tricep Press, Triceps Pushdown | — | Dip |
| Shoulder raise (lateral/rear) | Rear Delt Fly | Lateral Raise | — |
| Hip abduction / adduction | Abductor, Adductor | — | — |
| Calf | Calfs | — | Standing Calf Raise |
| Core anti-extension | — | — | Plank, Dead Bug, Hollow Body Hold |
| Core rotation / anti-rotation | Rotary | — | Bird Dog |
| Core lateral | — | — | Side Plank |
| Core flexion | Abdominal | — | Crunch, Reverse Crunch, Leg Raises |
| Mobility / warm-up | — | — | Cat-Cow, March in Place, Leg Swings, Neck Rolls, Arm Circles, Torso Twist, Standing Side Bend, Hip Circles |
| Static stretch | — | — | Standing Forward Fold, Standing Quad Stretch, Standing Calf Stretch, Chest Opener, Overhead Triceps Stretch, Kneeling Hip Flexor Stretch, Butterfly Stretch, Cobra Stretch, Child's Pose |
| Mindfulness / breath | — | — | Meditation |
Gym-floor census
Every station found in most commercial gyms, and the library entry (or entries) a user logging by that station's name will find.
| Station | Library entries |
|---|---|
| Selectorized circuit (14 machines) | Abdominal, Abductor, Adductor, Arm Curl, Calfs, Chest Press, Lat Pull Down, Leg Curl, Leg Extension, Leg Press, Rotary, Seated Row, Shoulder Press, Tricep Press |
| Flat bench + barbell | Bench Press |
| Incline bench | Incline Bench Press |
| Squat / power rack | Barbell Squat, Deadlift, Romanian Deadlift, Hip Thrust |
| Pec deck / rear-delt fly | Pec Deck, Rear Delt Fly |
| Cable station | Triceps Pushdown, Face Pull |
| Back extension (roman chair) | Back Extension |
| Pull-up / dip station (incl. assisted machine) | Pull-Up, Dip |
| Dumbbell rack | Dumbbell Bench Press, Dumbbell Fly, Dumbbell Row, Dumbbell Shoulder Press, Dumbbell Curl, Lateral Raise, Goblet Squat, Lunge |
| Floor / mat | Bodyweight Squat, Push-Up, Crunch, Glute Bridge, Plank, Side Plank, Bird Dog, Dead Bug, Hollow Body Hold, Leg Raises, Reverse Crunch, Cat-Cow |
| Open floor (warm-up / mobility) | March in Place, Leg Swings, Neck Rolls, Arm Circles, Torso Twist, Standing Side Bend, Hip Circles, Standing Calf Raise |
| Stretching mat (cool-down) | Standing Forward Fold, Standing Quad Stretch, Standing Calf Stretch, Chest Opener, Overhead Triceps Stretch, Kneeling Hip Flexor Stretch, Butterfly Stretch, Cobra Stretch, Child's Pose |
| Quiet corner (mindfulness) | Meditation |
Considered exclusions (the "most gyms" line)
- Smith machine — borderline; its uses are covered by the rack lifts and Leg Press. Revisit if users ask.
- Hack squat — not universal at the Planet Fitness tier; machine squat is covered by Leg Press.
- Cable curl / cable crossover — the cable station gets one entry per pattern not already covered elsewhere; these duplicate Arm Curl / Dumbbell Curl and Pec Deck / Dumbbell Fly.
- Assisted dip / assisted pull-up — folded into Dip and Pull-Up as the regression in their Progression sections, not separate picker entries.
- Dumbbell RDL, dumbbell lunge — folded into Romanian Deadlift and Lunge ("barbell or dumbbells" in their pages), not separate entries.
- Kettlebells, T-bar row, pullover machine — out; not strength stations found in most gyms.
- Specific cardio machines (treadmill, bike, elliptical, rower, …) — out as
individual picker entries. Cardio is covered instead by one generic Cardio
entry: a single duration-logged block whose split is tagged
.cardio(→ HealthKit.mixedCardio), so the Apple Watch records the real workout (heart rate, calories, duration) and the phone just logs the time. It reuses a running-in-place figure rather than a per-machine rig. - Morning wake-up mobility & stretching set — landed. Dynamic warm-up drills (March in Place, Leg Swings, Neck Rolls, Arm Circles, Torso Twist, Standing Side Bend, Hip Circles) now fill the mobility row alongside Cat-Cow, and a static-stretch group (Standing Forward Fold, Standing Quad/Calf Stretch, Chest Opener, Overhead Triceps Stretch, Kneeling Hip Flexor Stretch, Butterfly Stretch, Cobra Stretch, Child's Pose) covers the cool-down mat. Standing Calf Raise adds the bodyweight calf cell.
Standing exercises and camera.zoom
The rig is ~211 canvas units tall standing but the canvas has 152 units above
the ground line — the original 22 motions are all seated or on the floor.
Standing lifts (squats, hinges, curls, raises) author full-size anatomy and
fit the frame with the presentation-only "camera": {"zoom": …} transform
(see SYSTEM.md); typical values: ~0.7 standing tall, ~0.75–0.85 hanging or
seated-with-arms-overhead, 1 (omit) for lying, kneeling, seated, bent-over.