Add generic watch-tracked Cardio exercise and starter split

A single "Cardio" library entry (running-in-place figure, duration-logged)
plus a matching Cardio starter split tagged .cardio (HealthKit .mixedCardio),
so the Apple Watch records the real aerobic workout while the phone logs the
time — no per-machine cardio entries or schema changes.

Claude-Session: https://claude.ai/code/session_012qw2itfzKyEJ1HpsFt8Ex4
This commit is contained in:
2026-07-09 18:20:05 -04:00
parent e12fe31152
commit ae3aa15019
10 changed files with 235 additions and 7 deletions
+8 -2
View File
@@ -74,8 +74,14 @@ entries) a user logging by that station's name will find.
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, cardio equipment** — out; not
strength stations found in most gyms (cardio is out of the app's scope).
- **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,
+41
View File
@@ -0,0 +1,41 @@
# Cardio
A steady aerobic session — run in place, ride, row, or use the machine of your
choice and just keep moving. It's logged as a single timed block; your Apple
Watch records the real effort — heart rate, calories, and duration — as a
cardio workout.
- **Category:** Cardio
- **Type:** Aerobic / conditioning
- **Targets:** Heart, lungs, endurance
- **Prescription:** 1530 minutes at a conversational-to-brisk pace
- **Defaults:** 1 × 1200 s
## Setup
Pick your mode — treadmill, bike, rower, or simply running in place — and let
your watch start the session so the effort is tracked on your wrist.
## Execution
1. Ease in for the first minute or two, letting your heart rate climb.
2. Settle into a steady pace you can hold for the whole block.
3. Keep your breathing rhythmic and your shoulders relaxed.
4. Cool down with an easy minute before you stop.
## Cues
- Aim for a pace where you could speak in short sentences, not full paragraphs.
- Stay tall and loose — don't grip the rails or hunch over the machine.
- Let the watch handle the numbers; just hold your effort steady.
## Common Mistakes
- Starting too hard and fading long before the time is up.
- Leaning on the handrails, which quietly drops the real workload.
- Skipping the warm-up and cool-down minutes at either end.
## Progression
Add minutes, lift the pace, or fold in short faster intervals to raise the
challenge over time.
+52
View File
@@ -0,0 +1,52 @@
{
"name": "Cardio",
"primary": 1,
"camera": {"zoom": 0.7},
"working": ["leg_r", "leg_l"],
"frames": [
{
"hold": 0.1, "tween": 0.3,
"root": {"pos": [160, 62], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": -28, "elbow_r": 82,
"shoulder_l": 34, "elbow_l": 78,
"hip_r": 68, "knee_r": 88, "ankle_r": -8,
"hip_l": 2, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_l": [162, 150]}
},
{
"hold": 0.08, "tween": 0.26,
"root": {"pos": [160, 64], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 3, "elbow_r": 64,
"shoulder_l": 3, "elbow_l": 64,
"hip_r": 4, "knee_r": 4, "ankle_r": 0,
"hip_l": 4, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150]}
},
{
"hold": 0.1, "tween": 0.3,
"root": {"pos": [160, 62], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 34, "elbow_r": 78,
"shoulder_l": -28, "elbow_l": 82,
"hip_r": 2, "knee_r": 4, "ankle_r": 0,
"hip_l": 68, "knee_l": 88, "ankle_l": -8,
"pins": {"foot_r": [158, 148]}
},
{
"hold": 0.08, "tween": 0.26,
"root": {"pos": [160, 64], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 3, "elbow_r": 64,
"shoulder_l": 3, "elbow_l": 64,
"hip_r": 4, "knee_r": 4, "ankle_r": 0,
"hip_l": 4, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150]}
}
]
}