Hi @Alex, this may be related to the duration stuff you mentioned above, but I’m finding the CJ plan built from my LLM input does not match the duration I requested.
Here was the prompt I entered into Claude:
“I am a 34-year-old busy male looking for a 60-minute-per-week tabata cycling training plan to maximize my fitness gains. I’m using an indoor exercise bike (Bowflex C6). I want three, 20-minute tabata sessions per week (totaling 60 minutes per week) that maximizes fitness gains in 20 minute workout sessions, and I need an 8-week progressive plan with workout sessions on Tuesday, Wednesday, and Friday, with each workout being 20 minutes max for the entire workout (warmup, active workout, and cooldown included). My current cycling FTP is 245. Do it in the EXACT format of the attached json file and let me download it in json format.”
The problem is, when I put this into CJ, I was still getting workouts where the entire duration exceeded 20 minutes (workouts went as long as 30 minutes).
Here is the json file from Claude:
{
“blockType”: “build”,
“startHours”: 1,
“endHours”: 1,
“name”: “8-Week Tabata High-Intensity Plan”,
“description”: “Progressive 8-week Tabata protocol focusing on maximum fitness gains in 60 minutes per week across three 20-minute sessions”,
“workoutProgressions”: [
{
“title”: “Tabata Tuesday”,
“description”: “Classic Tabata intervals building from 4 to 8 rounds of 20sec max/10sec recovery”,
“progression”: [
“1 X (3m@50% + 20s@150% + 10s@30% + 20s@150% + 10s@30% + 20s@150% + 10s@30% + 20s@150% + 10s@30% + 14m@50%)”,
“1 X (3m@50% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 12m@50%)”,
“1 X (2m@50% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 11m@50%)”,
“1 X (2m@50% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 9m@50%)”,
“1 X (2m@50% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 7m@50%)”,
“1 X (2m@50% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 7m@50%)”,
“1 X (2m@50% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 9m@50%)”,
“1 X (3m@50% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 11m@50%)”
]
},
{
“title”: “Tabata Wednesday”,
“description”: “Modified Tabata with extended recovery building aerobic capacity between sprints”,
“progression”: [
“1 X (3m@50% + 20s@150% + 20s@30% + 20s@150% + 20s@30% + 20s@150% + 20s@30% + 20s@150% + 20s@30% + 12m@50%)”,
“1 X (3m@50% + 20s@155% + 20s@30% + 20s@155% + 20s@30% + 20s@155% + 20s@30% + 20s@155% + 20s@30% + 20s@155% + 20s@30% + 10m@50%)”,
“1 X (2m@50% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 8m@50%)”,
“1 X (2m@50% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 6m@50%)”,
“1 X (2m@50% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 4m@50%)”,
“1 X (2m@50% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 20s@170% + 20s@30% + 4m@50%)”,
“1 X (2m@50% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 20s@165% + 20s@30% + 6m@50%)”,
“1 X (3m@50% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 20s@160% + 20s@30% + 8m@50%)”
]
},
{
“title”: “Tabata Friday”,
“description”: “Power-focused Tabata intervals with progressive intensity and volume”,
“progression”: [
“1 X (3m@50% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 20s@155% + 10s@30% + 14m@50%)”,
“1 X (3m@50% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 20s@160% + 10s@30% + 12m@50%)”,
“1 X (2m@50% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 11m@50%)”,
“1 X (2m@50% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 9m@50%)”,
“1 X (2m@50% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 7m@50%)”,
“1 X (2m@50% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 20s@175% + 10s@30% + 7m@50%)”,
“1 X (2m@50% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 20s@170% + 10s@30% + 9m@50%)”,
“1 X (3m@50% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 20s@165% + 10s@30% + 11m@50%)”
]
}
],
“recoveryPattern”: “2/1”,
“trainingDays”: [
{“day”: “tue”, “type”: “indoor”},
{“day”: “wed”, “type”: “indoor”},
{“day”: “fri”, “type”: “indoor”}
],
“bestLongRideDay”: “tue”,
“secondaryStartingWorkIntensity”: 8
}