list_plans
Arguments
{
"limit": 20,
"end_date": "2026-07-30",
"start_date": "2026-07-24"
}Response
{
"content": [
{
"text": "{\"start_date\":\"2026-07-24\",\"end_date\":\"2026-07-30\",\"plans\":[{\"plannedDate\":\"2026-07-24\",\"version\":1,\"kind\":\"recovery\",\"title\":\"Easy Aerobic Recovery + Mobility\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Easy aerobic work\\n- 40–60 minutes on the stationary bike, elliptical, or incline treadmill walk.\\n- Keep intensity at **RPE 2–3**, primarily Zone 1 to low Zone 2.\\n- This should feel distinctly easier than your normal endurance rides.\\n\\n### Mobility\\nComplete the listed movements after the aerobic work. Use smooth, pain-free ranges and avoid aggressive stretching.\\n\\n### Optional adjustment\\nTake complete rest instead if sleep, appetite, or general fatigue is noticeably worse than normal.\",\"exercises\":[{\"authoredName\":\"hip-flexor stretch\",\"canonicalName\":\"hip-flexor stretch\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"duration_seconds\":{\"min\":30,\"max\":45},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Keep the pelvis gently tucked.\"},{\"authoredName\":\"hamstring flosses\",\"canonicalName\":\"hamstring flosses\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Use a dynamic, gentle range rather than holding a strong stretch.\"},{\"authoredName\":\"Thoracic Rotations\",\"canonicalName\":\"Thoracic Rotations\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"reps\":{\"min\":6,\"max\":8},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Move through the upper back rather than forcing the shoulder.\"},{\"authoredName\":\"doorway chest stretch\",\"canonicalName\":\"doorway chest stretch\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"duration_seconds\":{\"min\":30,\"max\":45},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Keep this gentle if any shoulder soreness remains.\"}]},{\"plannedDate\":\"2026-07-25\",\"version\":1,\"kind\":\"strength\",\"title\":\"Full Body C — Upper Back + Light Legs\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Session goal\\nTrain the full body while keeping leg fatigue modest before Sunday's endurance ride. Use **clean, repeatable reps** and keep roughly **2 reps in reserve**.\\n\\n### Warm-up\\n- 8–10 minutes easy bike.\\n- Add 1–2 light ramp-up sets for leg press, incline press, row, and chin-ups.\\n\\n### Progression rule\\nHold most loads steady. The purpose is productive volume, especially for upper back and cycling posture, without creating soreness that changes your riding position tomorrow.\",\"exercises\":[{\"authoredName\":\"Leg Press\",\"canonicalName\":\"Leg Press\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":10},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":220,\"max\":230}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":120,\"max\":180}}},\"notes\":\"Use 220 lb by default; use 230 lb only if the legs feel fresh and the reps remain easy. Do not add a third set.\"},{\"authoredName\":\"Dumbbell Incline Press\",\"canonicalName\":\"Dumbbell Incline Press\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"per_hand\",\"target_lb_per_hand\":{\"min\":25,\"max\":25}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Aim for 3 × 10 without grinding.\"},{\"authoredName\":\"Chest-Supported Row\",\"canonicalName\":\"Chest-Supported Row\",\"prescription\":{\"sets\":{\"min\":4,\"max\":4},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":12},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":85,\"max\":85}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":90,\"max\":120}}},\"notes\":\"Pause briefly at the back and avoid shrugging.\"},{\"authoredName\":\"Assisted Chin-Up\",\"canonicalName\":\"Assisted Chin-Up\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"assistance\",\"target_assistance_lb\":{\"min\":80,\"max\":80}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Increase assistance to 85 lb if range of motion shortens or reps become jerky.\"},{\"authoredName\":\"Rear-deltoid machine\",\"canonicalName\":\"Rear-deltoid machine\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":12,\"max\":15},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":65,\"max\":70}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":60,\"max\":90}}},\"notes\":\"Lead with the elbows and keep the neck relaxed.\"},{\"authoredName\":\"Triceps Pressdown\",\"canonicalName\":\"Triceps Pressdown\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":12,\"max\":15},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":34,\"max\":34}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":60,\"max\":90}}},\"notes\":\"Keep elbows fixed near the torso.\"},{\"authoredName\":\"Cable External Rotation\",\"canonicalName\":\"Cable External Rotation\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"reps\":{\"min\":12,\"max\":15},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":7.5,\"max\":7.5}},\"rpe\":{\"min\":5,\"max\":6},\"rest_seconds\":{\"min\":45,\"max\":60}}},\"notes\":\"Small, controlled range with no torso rotation.\"},{\"authoredName\":\"Side Plank\",\"canonicalName\":\"Side Plank\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"duration_seconds\":{\"min\":45,\"max\":60},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":45,\"max\":75}}},\"notes\":\"Stop when the hips can no longer remain stacked.\"}]},{\"plannedDate\":\"2026-07-26\",\"version\":1,\"kind\":\"cardio\",\"title\":\"Long Zone 2 Endurance Ride\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Preferred outdoor ride\\n- **Duration:** 2–3 hours.\\n- **Intensity:** steady Zone 2, approximately **RPE 3–4**; full-sentence conversation should remain possible.\\n- Brief rises into Zone 3 are fine for terrain, but avoid sustained tempo riding.\\n\\n### Progression decision\\nMonday's 2.5-hour ride already produced some shoulder soreness, so do not increase duration automatically.\\n- Ride closer to **2 hours** if any shoulder soreness remains before starting.\\n- Extend toward **3 hours** only if shoulders, neck, hands, and saddle comfort remain good through the first 90 minutes.\\n\\n### Cycling-position practice\\n- Every **15–20 minutes**, soften the elbows, loosen the hands, drop the shoulders away from the ears, and lightly engage the upper back.\\n- Change hand position frequently and avoid holding a rigid posture.\\n- End the ride early if shoulder discomfort steadily increases despite posture resets.\\n\\n### Fueling and hydration\\n- Take in roughly **30–60 g carbohydrate per hour**.\\n- Drink regularly and include electrolytes when conditions are hot or you sweat heavily.\\n\\n### Indoor alternative\\nIf weather or air quality makes outdoor riding unsuitable, ride **90–120 minutes indoors** at easy Zone 2, optionally split into two blocks with a short off-bike break.\",\"exercises\":[]},{\"plannedDate\":\"2026-07-27\",\"version\":1,\"kind\":\"recovery\",\"title\":\"Post-Ride Recovery + Mobility\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Goal\\nAbsorb Sunday's endurance ride and begin the week feeling fresher, not more trained.\\n\\n### Easy cardio\\n- **30–50 minutes** on the indoor bike, elliptical, or treadmill walk.\\n- Keep it at **RPE 2–3**, primarily Zone 1 to low Zone 2.\\n- Full-sentence conversation should be effortless.\\n- Stop early if the session is not loosening the legs.\\n\\n### Adjustment\\nTake complete rest instead if Sunday's ride produces notable shoulder, saddle, or whole-body fatigue.\",\"exercises\":[{\"authoredName\":\"hip-flexor stretch\",\"canonicalName\":\"hip-flexor stretch\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"duration_seconds\":{\"min\":30,\"max\":45},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Keep the pelvis gently tucked.\"},{\"authoredName\":\"hamstring flosses\",\"canonicalName\":\"hamstring flosses\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Use a smooth dynamic range rather than a strong held stretch.\"},{\"authoredName\":\"Thoracic Rotations\",\"canonicalName\":\"Thoracic Rotations\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"reps\":{\"min\":6,\"max\":8},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":2,\"max\":4},\"rest_seconds\":{\"min\":15,\"max\":30}}},\"notes\":\"Rotate through the upper back without forcing the shoulder.\"},{\"authoredName\":\"scapular wall-slide\",\"canonicalName\":\"scapular wall-slide\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":false,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":3,\"max\":5},\"rest_seconds\":{\"min\":30,\"max\":45}}},\"notes\":\"Use only the range where ribs stay down; hands do not need to remain against the wall.\"},{\"authoredName\":\"Dead bugs\",\"canonicalName\":\"Dead bugs\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":4,\"max\":6},\"rest_seconds\":{\"min\":30,\"max\":45}}},\"notes\":\"Keep the trunk still as each limb extends.\"}]},{\"plannedDate\":\"2026-07-28\",\"version\":1,\"kind\":\"strength\",\"title\":\"Full Body A — Controlled Progression\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Session goal\\nProgress only the lifts that have clearly earned it while keeping the session at **RPE 7–8** and roughly **80–95 minutes**.\\n\\n### Warm-up\\n- 8–10 minutes easy cardio.\\n- Perform 1–2 lighter ramp-up sets before leg press, incline press, row, and chin-ups.\\n\\n### Progression priorities\\n- Incline press, row, and chin-up assistance may progress slightly if the first working set is clean.\\n- Hold leg-curl load at 100 lb and build reps because 105 lb previously reached RPE 9.\\n- Keep 1–2 reps in reserve on all compound lifts.\",\"exercises\":[{\"authoredName\":\"Leg Press\",\"canonicalName\":\"Leg Press\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":12},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":230,\"max\":230}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":180}}},\"notes\":\"Use controlled depth and full-foot pressure. Do not increase load yet.\"},{\"authoredName\":\"Dumbbell Incline Press\",\"canonicalName\":\"Dumbbell Incline Press\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"per_hand\",\"target_lb_per_hand\":{\"min\":25,\"max\":27.5}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Try 27.5 lb only if the warm-up and first reps feel stable; otherwise complete 3×10 at 25 lb.\"},{\"authoredName\":\"Chest-Supported Row\",\"canonicalName\":\"Chest-Supported Row\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":12},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":85,\"max\":90}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":90,\"max\":120}}},\"notes\":\"Use 90 lb only if you can pause briefly at the back without shrugging.\"},{\"authoredName\":\"Assisted Chin-Up\",\"canonicalName\":\"Assisted Chin-Up\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"assistance\",\"target_assistance_lb\":{\"min\":75,\"max\":80}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Try 75 lb assistance if full range remains smooth; return to 80 lb if reps shorten or become jerky.\"},{\"authoredName\":\"Seated Leg Curl\",\"canonicalName\":\"Seated Leg Curl\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":12},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":100,\"max\":100}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":90,\"max\":120}}},\"notes\":\"Build toward 3×12 before retrying 105 lb.\"},{\"authoredName\":\"Cable Face Pull\",\"canonicalName\":\"Cable Face Pull\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":15,\"max\":15},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":27.5,\"max\":30}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":60,\"max\":90}}},\"notes\":\"Increase only if elbows and shoulders remain comfortable and the neck stays relaxed.\"},{\"authoredName\":\"Pallof Press\",\"canonicalName\":\"Pallof Press\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":true,\"target\":{\"reps\":{\"min\":10,\"max\":12},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":24,\"max\":27.5}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":45,\"max\":75}}},\"notes\":\"Use the higher load only without leaning or torso rotation.\"},{\"authoredName\":\"Side Plank\",\"canonicalName\":\"Side Plank\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":true,\"target\":{\"duration_seconds\":{\"min\":60,\"max\":60},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":45,\"max\":75}}},\"notes\":\"Stop early if the hips can no longer remain stacked.\"}]},{\"plannedDate\":\"2026-07-29\",\"version\":1,\"kind\":\"cardio\",\"title\":\"Steady Zone 2 + Position Practice\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Session\\n- Ride **60–90 minutes** indoors or outdoors.\\n- Keep the effort at **RPE 3–4**, steady Zone 2.\\n- Avoid threshold work, hard climbs, and prolonged Zone 3; Thursday's 110-minute interval ride already supplies this cycle's hard aerobic stimulus.\\n\\n### Position practice\\nEvery **15–20 minutes**:\\n- Relax the grip and soften the elbows.\\n- Drop the shoulders away from the ears.\\n- Change hand position.\\n- Briefly sit taller and reset the upper back.\\n\\n### Execution\\nUse an even effort and finish with energy remaining. Shorten to 45–60 minutes if Tuesday's strength session leaves the legs unusually heavy.\\n\\n### Optional finish\\n5–10 minutes of gentle chest, hip-flexor, and thoracic mobility.\",\"exercises\":[]},{\"plannedDate\":\"2026-07-30\",\"version\":1,\"kind\":\"strength\",\"title\":\"Full Body B — Chest Press Progression\",\"status\":\"planned\",\"statusNote\":\"\",\"notes\":\"### Goal\\nProgress the movements that were comfortably completed on July 22 while holding the harder movements steady. Keep 1–2 repetitions in reserve and finish in about 80–90 minutes.\\n\\n### Warm-up\\nComplete 8–10 minutes of easy cardio, followed by bodyweight squats, unloaded hip hinges, and light ramp-up sets for chest press and lat pulldown.\\n\\n### Main progression\\n- Increase chest press slightly if the next machine setting is appropriate.\\n- Keep lat pulldown at 105 lb.\\n- Keep goblet squat at 40 lb.\\n- Increase Romanian deadlift only when technique remains consistent.\",\"exercises\":[{\"authoredName\":\"Goblet Squat\",\"canonicalName\":\"Goblet Squat\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":10},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":40,\"max\":40}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Keep the torso controlled and use full-foot pressure.\"},{\"authoredName\":\"Dumbbell Romanian Deadlift\",\"canonicalName\":\"Dumbbell Romanian Deadlift\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":10},\"weight\":{\"kind\":\"per_hand\",\"target_lb_per_hand\":{\"min\":12.5,\"max\":15}},\"rpe\":{\"min\":5,\"max\":6},\"rest_seconds\":{\"min\":90,\"max\":120}}},\"notes\":\"Use 15 lb only with consistent hip-hinge technique and controlled range.\"},{\"authoredName\":\"Chest Press Machine\",\"canonicalName\":\"Chest Press Machine\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":8,\"max\":10},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":75,\"max\":80}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Try 80 lb if available; otherwise complete controlled repetitions at 75 lb.\"},{\"authoredName\":\"Step-Up\",\"canonicalName\":\"Step-Up\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":true,\"target\":{\"reps\":{\"min\":9,\"max\":10},\"weight\":{\"kind\":\"per_hand\",\"target_lb_per_hand\":{\"min\":10,\"max\":10}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":75,\"max\":120}}},\"notes\":\"Progress repetitions before increasing weight.\"},{\"authoredName\":\"Lat Pulldown\",\"canonicalName\":\"Lat Pulldown\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":10,\"max\":10},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":105,\"max\":105}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":120,\"max\":150}}},\"notes\":\"Keep the shoulders down and use smooth repetitions.\"},{\"authoredName\":\"Lateral Raise Machine\",\"canonicalName\":\"Lateral Raise Machine\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"reps\":{\"min\":12,\"max\":15},\"weight\":{\"kind\":\"total\",\"target_lb\":{\"min\":40,\"max\":40}},\"rpe\":{\"min\":6,\"max\":7},\"rest_seconds\":{\"min\":60,\"max\":90}}},\"notes\":\"Use controlled repetitions without momentum.\"},{\"authoredName\":\"Farmer Carry\",\"canonicalName\":\"Farmer Carry\",\"prescription\":{\"sets\":{\"min\":3,\"max\":3},\"each_side\":false,\"target\":{\"duration_seconds\":{\"min\":45,\"max\":60},\"weight\":{\"kind\":\"per_hand\",\"target_lb_per_hand\":{\"min\":45,\"max\":50}},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":90,\"max\":120}}},\"notes\":\"Default to 45 lb for 60 seconds. Use 50 lb for 45 seconds only with stable posture.\"},{\"authoredName\":\"Front Plank\",\"canonicalName\":\"Front Plank\",\"prescription\":{\"sets\":{\"min\":2,\"max\":2},\"each_side\":false,\"target\":{\"duration_seconds\":{\"min\":75,\"max\":90},\"weight\":{\"kind\":\"no_weight\"},\"rpe\":{\"min\":7,\"max\":8},\"rest_seconds\":{\"min\":60,\"max\":90}}},\"notes\":\"Maintain a stable trunk throughout each set.\"}]}]}",
"type": "text"
}
],
"structuredContent": {
"plans": [
{
"kind": "recovery",
"notes": "### Easy aerobic work\n- 40–60 minutes on the stationary bike, elliptical, or incline treadmill walk.\n- Keep intensity at **RPE 2–3**, primarily Zone 1 to low Zone 2.\n- This should feel distinctly easier than your normal endurance rides.\n\n### Mobility\nComplete the listed movements after the aerobic work. Use smooth, pain-free ranges and avoid aggressive stretching.\n\n### Optional adjustment\nTake complete rest instead if sleep, appetite, or general fatigue is noticeably worse than normal.",
"title": "Easy Aerobic Recovery + Mobility",
"status": "planned",
"version": 1,
"exercises": [
{
"notes": "Keep the pelvis gently tucked.",
"authoredName": "hip-flexor stretch",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
},
"duration_seconds": {
"max": 45,
"min": 30
}
},
"each_side": true
},
"canonicalName": "hip-flexor stretch"
},
{
"notes": "Use a dynamic, gentle range rather than holding a strong stretch.",
"authoredName": "hamstring flosses",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
}
},
"each_side": true
},
"canonicalName": "hamstring flosses"
},
{
"notes": "Move through the upper back rather than forcing the shoulder.",
"authoredName": "Thoracic Rotations",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"reps": {
"max": 8,
"min": 6
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
}
},
"each_side": true
},
"canonicalName": "Thoracic Rotations"
},
{
"notes": "Keep this gentle if any shoulder soreness remains.",
"authoredName": "doorway chest stretch",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
},
"duration_seconds": {
"max": 45,
"min": 30
}
},
"each_side": true
},
"canonicalName": "doorway chest stretch"
}
],
"statusNote": "",
"plannedDate": "2026-07-24"
},
{
"kind": "strength",
"notes": "### Session goal\nTrain the full body while keeping leg fatigue modest before Sunday's endurance ride. Use **clean, repeatable reps** and keep roughly **2 reps in reserve**.\n\n### Warm-up\n- 8–10 minutes easy bike.\n- Add 1–2 light ramp-up sets for leg press, incline press, row, and chin-ups.\n\n### Progression rule\nHold most loads steady. The purpose is productive volume, especially for upper back and cycling posture, without creating soreness that changes your riding position tomorrow.",
"title": "Full Body C — Upper Back + Light Legs",
"status": "planned",
"version": 1,
"exercises": [
{
"notes": "Use 220 lb by default; use 230 lb only if the legs feel fresh and the reps remain easy. Do not add a third set.",
"authoredName": "Leg Press",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 10,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 230,
"min": 220
}
},
"rest_seconds": {
"max": 180,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Leg Press"
},
{
"notes": "Aim for 3 × 10 without grinding.",
"authoredName": "Dumbbell Incline Press",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "per_hand",
"target_lb_per_hand": {
"max": 25,
"min": 25
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Dumbbell Incline Press"
},
{
"notes": "Pause briefly at the back and avoid shrugging.",
"authoredName": "Chest-Supported Row",
"prescription": {
"sets": {
"max": 4,
"min": 4
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 12,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 85,
"min": 85
}
},
"rest_seconds": {
"max": 120,
"min": 90
}
},
"each_side": false
},
"canonicalName": "Chest-Supported Row"
},
{
"notes": "Increase assistance to 85 lb if range of motion shortens or reps become jerky.",
"authoredName": "Assisted Chin-Up",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "assistance",
"target_assistance_lb": {
"max": 80,
"min": 80
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Assisted Chin-Up"
},
{
"notes": "Lead with the elbows and keep the neck relaxed.",
"authoredName": "Rear-deltoid machine",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 15,
"min": 12
},
"weight": {
"kind": "total",
"target_lb": {
"max": 70,
"min": 65
}
},
"rest_seconds": {
"max": 90,
"min": 60
}
},
"each_side": false
},
"canonicalName": "Rear-deltoid machine"
},
{
"notes": "Keep elbows fixed near the torso.",
"authoredName": "Triceps Pressdown",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 15,
"min": 12
},
"weight": {
"kind": "total",
"target_lb": {
"max": 34,
"min": 34
}
},
"rest_seconds": {
"max": 90,
"min": 60
}
},
"each_side": false
},
"canonicalName": "Triceps Pressdown"
},
{
"notes": "Small, controlled range with no torso rotation.",
"authoredName": "Cable External Rotation",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 6,
"min": 5
},
"reps": {
"max": 15,
"min": 12
},
"weight": {
"kind": "total",
"target_lb": {
"max": 7.5,
"min": 7.5
}
},
"rest_seconds": {
"max": 60,
"min": 45
}
},
"each_side": true
},
"canonicalName": "Cable External Rotation"
},
{
"notes": "Stop when the hips can no longer remain stacked.",
"authoredName": "Side Plank",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 75,
"min": 45
},
"duration_seconds": {
"max": 60,
"min": 45
}
},
"each_side": true
},
"canonicalName": "Side Plank"
}
],
"statusNote": "",
"plannedDate": "2026-07-25"
},
{
"kind": "cardio",
"notes": "### Preferred outdoor ride\n- **Duration:** 2–3 hours.\n- **Intensity:** steady Zone 2, approximately **RPE 3–4**; full-sentence conversation should remain possible.\n- Brief rises into Zone 3 are fine for terrain, but avoid sustained tempo riding.\n\n### Progression decision\nMonday's 2.5-hour ride already produced some shoulder soreness, so do not increase duration automatically.\n- Ride closer to **2 hours** if any shoulder soreness remains before starting.\n- Extend toward **3 hours** only if shoulders, neck, hands, and saddle comfort remain good through the first 90 minutes.\n\n### Cycling-position practice\n- Every **15–20 minutes**, soften the elbows, loosen the hands, drop the shoulders away from the ears, and lightly engage the upper back.\n- Change hand position frequently and avoid holding a rigid posture.\n- End the ride early if shoulder discomfort steadily increases despite posture resets.\n\n### Fueling and hydration\n- Take in roughly **30–60 g carbohydrate per hour**.\n- Drink regularly and include electrolytes when conditions are hot or you sweat heavily.\n\n### Indoor alternative\nIf weather or air quality makes outdoor riding unsuitable, ride **90–120 minutes indoors** at easy Zone 2, optionally split into two blocks with a short off-bike break.",
"title": "Long Zone 2 Endurance Ride",
"status": "planned",
"version": 1,
"exercises": [],
"statusNote": "",
"plannedDate": "2026-07-26"
},
{
"kind": "recovery",
"notes": "### Goal\nAbsorb Sunday's endurance ride and begin the week feeling fresher, not more trained.\n\n### Easy cardio\n- **30–50 minutes** on the indoor bike, elliptical, or treadmill walk.\n- Keep it at **RPE 2–3**, primarily Zone 1 to low Zone 2.\n- Full-sentence conversation should be effortless.\n- Stop early if the session is not loosening the legs.\n\n### Adjustment\nTake complete rest instead if Sunday's ride produces notable shoulder, saddle, or whole-body fatigue.",
"title": "Post-Ride Recovery + Mobility",
"status": "planned",
"version": 1,
"exercises": [
{
"notes": "Keep the pelvis gently tucked.",
"authoredName": "hip-flexor stretch",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
},
"duration_seconds": {
"max": 45,
"min": 30
}
},
"each_side": true
},
"canonicalName": "hip-flexor stretch"
},
{
"notes": "Use a smooth dynamic range rather than a strong held stretch.",
"authoredName": "hamstring flosses",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
}
},
"each_side": true
},
"canonicalName": "hamstring flosses"
},
{
"notes": "Rotate through the upper back without forcing the shoulder.",
"authoredName": "Thoracic Rotations",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 4,
"min": 2
},
"reps": {
"max": 8,
"min": 6
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 30,
"min": 15
}
},
"each_side": true
},
"canonicalName": "Thoracic Rotations"
},
{
"notes": "Use only the range where ribs stay down; hands do not need to remain against the wall.",
"authoredName": "scapular wall-slide",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 5,
"min": 3
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 45,
"min": 30
}
},
"each_side": false
},
"canonicalName": "scapular wall-slide"
},
{
"notes": "Keep the trunk still as each limb extends.",
"authoredName": "Dead bugs",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 6,
"min": 4
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 45,
"min": 30
}
},
"each_side": true
},
"canonicalName": "Dead bugs"
}
],
"statusNote": "",
"plannedDate": "2026-07-27"
},
{
"kind": "strength",
"notes": "### Session goal\nProgress only the lifts that have clearly earned it while keeping the session at **RPE 7–8** and roughly **80–95 minutes**.\n\n### Warm-up\n- 8–10 minutes easy cardio.\n- Perform 1–2 lighter ramp-up sets before leg press, incline press, row, and chin-ups.\n\n### Progression priorities\n- Incline press, row, and chin-up assistance may progress slightly if the first working set is clean.\n- Hold leg-curl load at 100 lb and build reps because 105 lb previously reached RPE 9.\n- Keep 1–2 reps in reserve on all compound lifts.",
"title": "Full Body A — Controlled Progression",
"status": "planned",
"version": 1,
"exercises": [
{
"notes": "Use controlled depth and full-foot pressure. Do not increase load yet.",
"authoredName": "Leg Press",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 12,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 230,
"min": 230
}
},
"rest_seconds": {
"max": 180,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Leg Press"
},
{
"notes": "Try 27.5 lb only if the warm-up and first reps feel stable; otherwise complete 3×10 at 25 lb.",
"authoredName": "Dumbbell Incline Press",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "per_hand",
"target_lb_per_hand": {
"max": 27.5,
"min": 25
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Dumbbell Incline Press"
},
{
"notes": "Use 90 lb only if you can pause briefly at the back without shrugging.",
"authoredName": "Chest-Supported Row",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 12,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 90,
"min": 85
}
},
"rest_seconds": {
"max": 120,
"min": 90
}
},
"each_side": false
},
"canonicalName": "Chest-Supported Row"
},
{
"notes": "Try 75 lb assistance if full range remains smooth; return to 80 lb if reps shorten or become jerky.",
"authoredName": "Assisted Chin-Up",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "assistance",
"target_assistance_lb": {
"max": 80,
"min": 75
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Assisted Chin-Up"
},
{
"notes": "Build toward 3×12 before retrying 105 lb.",
"authoredName": "Seated Leg Curl",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 12,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 100,
"min": 100
}
},
"rest_seconds": {
"max": 120,
"min": 90
}
},
"each_side": false
},
"canonicalName": "Seated Leg Curl"
},
{
"notes": "Increase only if elbows and shoulders remain comfortable and the neck stays relaxed.",
"authoredName": "Cable Face Pull",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 15,
"min": 15
},
"weight": {
"kind": "total",
"target_lb": {
"max": 30,
"min": 27.5
}
},
"rest_seconds": {
"max": 90,
"min": 60
}
},
"each_side": false
},
"canonicalName": "Cable Face Pull"
},
{
"notes": "Use the higher load only without leaning or torso rotation.",
"authoredName": "Pallof Press",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 12,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 27.5,
"min": 24
}
},
"rest_seconds": {
"max": 75,
"min": 45
}
},
"each_side": true
},
"canonicalName": "Pallof Press"
},
{
"notes": "Stop early if the hips can no longer remain stacked.",
"authoredName": "Side Plank",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 75,
"min": 45
},
"duration_seconds": {
"max": 60,
"min": 60
}
},
"each_side": true
},
"canonicalName": "Side Plank"
}
],
"statusNote": "",
"plannedDate": "2026-07-28"
},
{
"kind": "cardio",
"notes": "### Session\n- Ride **60–90 minutes** indoors or outdoors.\n- Keep the effort at **RPE 3–4**, steady Zone 2.\n- Avoid threshold work, hard climbs, and prolonged Zone 3; Thursday's 110-minute interval ride already supplies this cycle's hard aerobic stimulus.\n\n### Position practice\nEvery **15–20 minutes**:\n- Relax the grip and soften the elbows.\n- Drop the shoulders away from the ears.\n- Change hand position.\n- Briefly sit taller and reset the upper back.\n\n### Execution\nUse an even effort and finish with energy remaining. Shorten to 45–60 minutes if Tuesday's strength session leaves the legs unusually heavy.\n\n### Optional finish\n5–10 minutes of gentle chest, hip-flexor, and thoracic mobility.",
"title": "Steady Zone 2 + Position Practice",
"status": "planned",
"version": 1,
"exercises": [],
"statusNote": "",
"plannedDate": "2026-07-29"
},
{
"kind": "strength",
"notes": "### Goal\nProgress the movements that were comfortably completed on July 22 while holding the harder movements steady. Keep 1–2 repetitions in reserve and finish in about 80–90 minutes.\n\n### Warm-up\nComplete 8–10 minutes of easy cardio, followed by bodyweight squats, unloaded hip hinges, and light ramp-up sets for chest press and lat pulldown.\n\n### Main progression\n- Increase chest press slightly if the next machine setting is appropriate.\n- Keep lat pulldown at 105 lb.\n- Keep goblet squat at 40 lb.\n- Increase Romanian deadlift only when technique remains consistent.",
"title": "Full Body B — Chest Press Progression",
"status": "planned",
"version": 1,
"exercises": [
{
"notes": "Keep the torso controlled and use full-foot pressure.",
"authoredName": "Goblet Squat",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 10,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 40,
"min": 40
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Goblet Squat"
},
{
"notes": "Use 15 lb only with consistent hip-hinge technique and controlled range.",
"authoredName": "Dumbbell Romanian Deadlift",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 6,
"min": 5
},
"reps": {
"max": 10,
"min": 10
},
"weight": {
"kind": "per_hand",
"target_lb_per_hand": {
"max": 15,
"min": 12.5
}
},
"rest_seconds": {
"max": 120,
"min": 90
}
},
"each_side": false
},
"canonicalName": "Dumbbell Romanian Deadlift"
},
{
"notes": "Try 80 lb if available; otherwise complete controlled repetitions at 75 lb.",
"authoredName": "Chest Press Machine",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 10,
"min": 8
},
"weight": {
"kind": "total",
"target_lb": {
"max": 80,
"min": 75
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Chest Press Machine"
},
{
"notes": "Progress repetitions before increasing weight.",
"authoredName": "Step-Up",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 10,
"min": 9
},
"weight": {
"kind": "per_hand",
"target_lb_per_hand": {
"max": 10,
"min": 10
}
},
"rest_seconds": {
"max": 120,
"min": 75
}
},
"each_side": true
},
"canonicalName": "Step-Up"
},
{
"notes": "Keep the shoulders down and use smooth repetitions.",
"authoredName": "Lat Pulldown",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"reps": {
"max": 10,
"min": 10
},
"weight": {
"kind": "total",
"target_lb": {
"max": 105,
"min": 105
}
},
"rest_seconds": {
"max": 150,
"min": 120
}
},
"each_side": false
},
"canonicalName": "Lat Pulldown"
},
{
"notes": "Use controlled repetitions without momentum.",
"authoredName": "Lateral Raise Machine",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 7,
"min": 6
},
"reps": {
"max": 15,
"min": 12
},
"weight": {
"kind": "total",
"target_lb": {
"max": 40,
"min": 40
}
},
"rest_seconds": {
"max": 90,
"min": 60
}
},
"each_side": false
},
"canonicalName": "Lateral Raise Machine"
},
{
"notes": "Default to 45 lb for 60 seconds. Use 50 lb for 45 seconds only with stable posture.",
"authoredName": "Farmer Carry",
"prescription": {
"sets": {
"max": 3,
"min": 3
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"weight": {
"kind": "per_hand",
"target_lb_per_hand": {
"max": 50,
"min": 45
}
},
"rest_seconds": {
"max": 120,
"min": 90
},
"duration_seconds": {
"max": 60,
"min": 45
}
},
"each_side": false
},
"canonicalName": "Farmer Carry"
},
{
"notes": "Maintain a stable trunk throughout each set.",
"authoredName": "Front Plank",
"prescription": {
"sets": {
"max": 2,
"min": 2
},
"target": {
"rpe": {
"max": 8,
"min": 7
},
"weight": {
"kind": "no_weight"
},
"rest_seconds": {
"max": 90,
"min": 60
},
"duration_seconds": {
"max": 90,
"min": 75
}
},
"each_side": false
},
"canonicalName": "Front Plank"
}
],
"statusNote": "",
"plannedDate": "2026-07-30"
}
],
"end_date": "2026-07-30",
"start_date": "2026-07-24"
}
}