LLM Plan Builder is finally live :)

Did you figure this out. I don’t know how it happens but I had this happen because some how I had 2 different cookies with different permissions. If you need help let me know.

I will look at this today.

Sorry some how this disappeared off the bottom of my radar. Looking now

Oh yes I see the problem. This is not a format we support but should. I will add this to my developers list of things to do. Adding LLM to CJ added some issues to CJ that we had to fix and now he will get on to improving the LLM logic.

1 Like

Sounds great, thanks Alex! Love all the new features being rolled out, and as always, love how you listen to user feedback so readily!

1 Like

Sorry I never got around to posting the JSON, limited time and now it’s gone.

But in playing around with it and just trying to build a CJ plan, I noticed a feature that seems to have disappeared…

There is now a drop down under each day with week 1 and week X with the ability to set duration. I miss the feature where you cold check a box that said, This is my long day. I have a non traditional work week with my weekends falling on Thursday/Friday.

Despite me putting in the constraints (no matter if direct in the CJ builder or doing an LLM), I just can’t get it right to fit my constraints.

My constraints are
Monday and Weds off (family stuff/kids)
Max 60-90 min workouts Tues/Sat/Sun
3-6 hours on Thurs/Fri depending on where I am in the program. Friday is the exclusive Zone 2 only long day and Thursdays are Zone 2 with the possibility of some HIIT/VO2Max/Threshold at the end depending again on where I am in the plan. Not really that different from a traditional week where Saturday and Sunday would be similar.

Maybe this doesn’t conform to CJ rules but its what I have go roll with right now.

Hi all the same functionality is still there. Just a different way of presenting it. Choose a long ride day by setting the daily hours longer. I am confused about what you are saying. Yes CJ rules dictate some things but in most cases just creating two plans that you send to your calendar that are for the same period gets around the rules. We will continue to allow more flexibility in llm builder but if you can share screenshots that might help me better understand.

Here’s what I told GPT…

I am a 49-year-old busy male looking for a cycling training plan to improve my endurance, 20 minute threshold power, and my 1 and 5 minute breakaway power. I currently ride 8 hours weekly at low to moderate intensity and want to max out at 15 hours per week, have access to both indoor trainer and outdoor roads, prefer 5 sessions per week including two longer weekend rides being 4-6 hours long, weekends being on thursday and friday, and need an 8-week progressive plan that accommodates my work schedule with most training on my weekdays being maximum of 90 minutes, with Mondays and Wednesdays being off days, and intervals being done near the end of the workouts. Do it in the EXACT format of the attached json file and let me download it in json format.

Here’s what it spit out, it looks good, but CJ isn’t following along. This is a screenshot after I already adjusted the duration for all the days. It had me doing 2:15 nearly everyday before I adjusted it.

{
“blockType”: “build”,
“startHours”: 8,
“endHours”: 15,
“name”: “8-Week Endurance & Power Build Plan (49M, End-Loaded Intervals)”,
“description”: “An 8-week progressive cycling build plan for a 49-year-old busy male focused on improving endurance, 20-minute threshold power, and 1\u20135-minute breakaway power. Includes 5 sessions per week with Mondays and Wednesdays off. Weekday sessions are 60\u201390 minutes with intervals placed near the end, and two 4\u20136-hour outdoor endurance rides on Thursday and Friday.”,
“workoutProgressions”: [
{
“title”: “Threshold Builder”,
“description”: “FTP-focused workouts with threshold intervals near the end to simulate fatigue performance.”,
“progression”: [
“1 X (60m@70% + 10m@95%)”,
“1 X (65m@70% + 15m@95%)”,
“1 X (70m@70% + 20m@97%)”,
“1 X (75m@70% + 25m@100%)”,
“1 X (75m@70% + 2 X (10m@100% + 5m@55%))”,
“1 X (80m@70% + 2 X (12m@102% + 5m@55%))”,
“1 X (85m@70% + 2 X (15m@102% + 5m@55%))”,
“1 X (90m@70% + 2 X (15m@103% + 5m@55%))”
]
},
{
“title”: “Breakaway Power Intervals”,
“description”: “High-intensity VO2 and anaerobic intervals performed after steady endurance riding.”,
“progression”: [
“1 X (60m@70% + 4 X (2m@120% + 3m@60%))”,
“1 X (65m@70% + 5 X (2m@125% + 3m@60%))”,
“1 X (70m@70% + 6 X (2m@125% + 3m@60%))”,
“1 X (75m@70% + 4 X (3m@130% + 3m@60%))”,
“1 X (80m@70% + 5 X (3m@130% + 3m@60%))”,
“1 X (85m@70% + 4 X (4m@135% + 4m@60%))”,
“1 X (90m@70% + 5 X (4m@135% + 4m@60%))”,
“1 X (90m@70% + 6 X (3m@140% + 3m@60%))”
]
},
{
“title”: “Endurance Development”,
“description”: “Long outdoor endurance rides with threshold intervals toward the end to improve fatigue resistance.”,
“progression”: [
“1 X (210m@70% + 2 X (5m@95% + 5m@60%))”,
“1 X (240m@70% + 2 X (6m@95% + 5m@60%))”,
“1 X (240m@72% + 2 X (8m@97% + 5m@60%))”,
“1 X (270m@72% + 2 X (10m@100% + 5m@60%))”,
“1 X (300m@73% + 3 X (6m@100% + 4m@60%))”,
“1 X (330m@73% + 3 X (8m@102% + 4m@60%))”,
“1 X (360m@74% + 3 X (10m@102% + 4m@60%))”,
“1 X (360m@75% + 3 X (10m@103% + 4m@60%))”
]
}
],
“recoveryPattern”: “3/1”,
“trainingDays”: [
{
“day”: “tue”,
“type”: “indoor”
},
{
“day”: “thu”,
“type”: “outdoor”
},
{
“day”: “fri”,
“type”: “outdoor”
},
{
“day”: “sat”,
“type”: “indoor”
},
{
“day”: “sun”,
“type”: “indoor”
}
],
“bestLongRideDay”: “fri”,
“secondaryStartingWorkIntensity”: 3
}

We are working on this. It’s some conflict between duration and intervals we are trying to figure it out but not sure why this one did not work yet.

Hi Alex

I tried to create a plan with instructions for each interval that will then run on screen from Training Peaks Virtual. ChatGPT said it can provide instructions that match the schema, but they don’t seem to appear in the Trainer Day Coach Jack plan or when synced to TP Workouts?

Option 1 - Separate Instruction lines
{
“blockType”: “build”,
“startHours”: 7,
“endHours”: 11,
“name”: “8-Week Build: Strength & Endurance Progression”,
“description”: “8-week progressive cycling program for a 50-year-old cyclist focusing on muscular strength, endurance, high-intensity intervals, and long aerobic development.”,
“workoutProgressions”: [
{
“title”: “Tuesday \u2013 Strength to Endurance Progression”,
“description”: “Weeks 1\u20134 develop muscular strength through low-cadence, high-torque work; Weeks 5\u20138 build muscular endurance with longer sub-threshold intervals.”,
“progression”: [
“3 X (6m@85% + 3m@60%)”,
“4 X (6m@88% + 3m@60%)”,
“5 X (5m@90% + 2m@60%)”,
“4 X (8m@88% + 2m@60%)”,
“3 X (10m@90% + 2m@60%)”,
“2 X (15m@92% + 5m@65%)”,
“3 X (12m@90% + 3m@65%)”,
“2 X (20m@88% + 5m@65%)”
],
“instructions”: [
“Keep cadence 60\u201370rpm, stay seated, drive through heels; recover easy spin 90rpm.”,
“Focus on smooth torque at 65rpm; maintain posture; recovery spin 90rpm, deep breathing.”,
“High torque 60rpm effort; control heart rate; recovery 90rpm, relax shoulders.”,
“Maintain 70rpm; feel muscular load; recovery 90rpm easy spin.”,
“Strong steady pressure 80\u201385% FTP, 75rpm; recovery smooth and light.”,
“Extended interval, low cadence 65rpm, focus on core stability; hydrate during recovery.”,
“Hold tempo power at 90% FTP, cadence 80rpm; recovery easy spin and breathing focus.”,
“Sustain 88% FTP steady; focus on pacing and endurance; recover spinning freely.”
]
},
{
“title”: “Thursday \u2013 High-Effort Interval Progression”,
“description”: “1-hour threshold and VO\u2082max interval session to build high-intensity fitness and fatigue resistance.”,
“progression”: [
“5 X (3m@110% + 3m@60%)”,
“6 X (3m@115% + 3m@60%)”,
“4 X (5m@105% + 3m@60%)”,
“5 X (4m@110% + 2m@65%)”,
“6 X (4m@110% + 2m@65%)”,
“5 X (5m@108% + 2m@65%)”,
“4 X (6m@105% + 2m@65%)”,
“6 X (4m@110% + 2m@65%)”
],
“instructions”: [
“Hit each 3-min at 110% FTP, focus on smooth breathing; recover 3-min easy spin.”,
“Push 115% FTP; control breathing and posture; recover light spin 3-min.”,
“Sustain 105% FTP; hold aero form; spin 90rpm during recovery.”,
“Strong 4-min at 110%; stay controlled; recovery spin, light cadence.”,
“Repeat intervals at consistent power; mental focus high; recovery steady breathing.”,
“Hold 108% FTP, rhythm steady; relax upper body; recovery spin 2-min.”,
“Threshold effort 105%, 6-min focus on rhythm and control; recovery upright and easy.”,
“Push 110% FTP, stay relaxed; hydrate between efforts; spin easy 2-min.”
]
},
{
“title”: “Friday & Sunday \u2013 Aerobic and Long Endurance Progression”,
“description”: “Friday: steady aerobic endurance (up to 90 min). Sunday: long ride up to 3 hours at endurance pace.”,
“progression”: [
“1 X (60m@70%)”,
“1 X (75m@72%)”,
“1 X (90m@72%)”,
“1 X (60m@70%)”,
“1 X (90m@73%)”,
“1 X (120m@70%)”,
“1 X (150m@70%)”,
“1 X (180m@68%)”
],
“instructions”: [
“Ride steady, 70% FTP, smooth cadence 85\u201390rpm; stay relaxed and focused.”,
“Maintain 72% FTP; monitor breathing; stay hydrated.”,
“Aerobic tempo 72%; hold conversation pace; spin smooth and controlled.”,
“Shorter aerobic reset ride; easy effort; prioritize form and technique.”,
“90-min aerobic focus; 73% FTP; include short cadence changes for variety.”,
“120-min steady endurance; fuel regularly every 30min; smooth effort.”,
“150-min endurance ride; stay fueled and hydrated; keep HR aerobic.”,
“180-min long endurance; manage nutrition, pacing, and posture; enjoy the ride.”
]
}
],
“recoveryPattern”: “3/1”,
“trainingDays”: [
{
“day”: “tue”,
“type”: “indoor”
},
{
“day”: “thu”,
“type”: “indoor”
},
{
“day”: “fri”,
“type”: “outdoor”
},
{
“day”: “sun”,
“type”: “outdoor”
}
],
“bestLongRideDay”: “sun”,
“secondaryStartingWorkIntensity”: 3
}

Option 2 - Embedded instructions
{
“blockType”: “build”,
“startHours”: 7,
“endHours”: 11,
“name”: “8-Week Build: Strength & Endurance Progression”,
“description”: “8-week progressive cycling program for a 50-year-old cyclist focusing on muscular strength, endurance, high-intensity intervals, and long aerobic development.”,
“workoutProgressions”: [
{
“title”: “Tuesday \u2013 Strength to Endurance Progression”,
“description”: “Weeks 1\u20134 develop muscular strength through low-cadence, high-torque work; Weeks 5\u20138 build muscular endurance with longer sub-threshold intervals.”,
“progression”: [
“3 X (6m@85% \u2013 Stay seated, 60\u201370rpm, focus on torque + 3m@60% \u2013 Spin easy 90rpm)”,
“4 X (6m@88% \u2013 Smooth pedal stroke, 65rpm + 3m@60% \u2013 Relax, deep breathing)”,
“5 X (5m@90% \u2013 High torque, 60rpm + 2m@60% \u2013 Spin down, upright position)”,
“4 X (8m@88% \u2013 Maintain 70rpm, feel muscle tension + 2m@60% \u2013 Light cadence recovery)”,
“3 X (10m@90% \u2013 Strong tempo, 75rpm + 2m@60% \u2013 Smooth spin)”,
“2 X (15m@92% \u2013 Hold power steady, 65rpm + 5m@65% \u2013 Hydrate and recover)”,
“3 X (12m@90% \u2013 Focus on endurance rhythm + 3m@65% \u2013 Easy pedal)”,
“2 X (20m@88% \u2013 Long steady effort, stay controlled + 5m@65% \u2013 Free spin recover)”
]
},
{
“title”: “Thursday \u2013 High-Effort Interval Progression”,
“description”: “1-hour threshold and VO\u2082max interval session to build high-intensity fitness and fatigue resistance.”,
“progression”: [
“5 X (3m@110% \u2013 Controlled breathing, stay smooth + 3m@60% \u2013 Easy spin recover)”,
“6 X (3m@115% \u2013 Push hard, steady rhythm + 3m@60% \u2013 Light spin recover)”,
“4 X (5m@105% \u2013 Hold aero form, maintain pace + 3m@60% \u2013 Relax shoulders)”,
“5 X (4m@110% \u2013 Stay focused, smooth pedal + 2m@65% \u2013 Breathe easy)”,
“6 X (4m@110% \u2013 Consistent power, control breathing + 2m@65% \u2013 Relaxed recovery)”,
“5 X (5m@108% \u2013 Hold strong form, stay loose + 2m@65% \u2013 Spin easy)”,
“4 X (6m@105% \u2013 Focus on rhythm, stay calm + 2m@65% \u2013 Upright easy spin)”,
“6 X (4m@110% \u2013 Hard effort, stay relaxed + 2m@65% \u2013 Hydrate between efforts)”
]
},
{
“title”: “Friday & Sunday \u2013 Aerobic and Long Endurance Progression”,
“description”: “Friday: steady aerobic endurance (up to 90 min). Sunday: long ride up to 3 hours at endurance pace.”,
“progression”: [
“1 X (60m@70% \u2013 Steady cadence 85\u201390rpm, smooth and relaxed)”,
“1 X (75m@72% \u2013 Maintain aerobic breathing, hydrate regularly)”,
“1 X (90m@72% \u2013 Conversation pace, smooth and efficient)”,
“1 X (60m@70% \u2013 Recovery aerobic ride, focus on form)”,
“1 X (90m@73% \u2013 Controlled tempo, cadence 90rpm, stay relaxed)”,
“1 X (120m@70% \u2013 Fuel every 30min, steady pacing)”,
“1 X (150m@70% \u2013 Manage hydration, keep HR aerobic)”,
“1 X (180m@68% \u2013 Long endurance ride, steady effort, enjoy the process)”
]
}
],
“recoveryPattern”: “3/1”,
“trainingDays”: [
{
“day”: “tue”,
“type”: “indoor”
},
{
“day”: “thu”,
“type”: “indoor”
},
{
“day”: “fri”,
“type”: “outdoor”
},
{
“day”: “sun”,
“type”: “outdoor”
}
],
“bestLongRideDay”: “sun”,
“secondaryStartingWorkIntensity”: 3
}

It worked for me. Just CJ makes it a bit harder than you asked for currently, he duplicates some intervals if you have enough time. See below. Focus on telling me where the problem is occuring. There are many steps from LLM to TP and back to our app.

pasting in the forum does not work well so I had to ask claude to reformat what he did. Below is clean version

{
  "blockType": "build",
  "startHours": 7,
  "endHours": 11,
  "name": "8-Week Build: Strength & Endurance Progression",
  "description": "8-week progressive cycling program focusing on muscular strength, endurance, high-intensity intervals, and long aerobic development.",
  "workoutProgressions": [
    {
      "title": "Strength to Endurance Progression",
      "description": "Weeks 1-4 develop muscular strength through low-cadence, high-torque work; Weeks 5-8 build muscular endurance with longer sub-threshold intervals.",
      "progression": [
        "3 X (6m@85% + 3m@60%)",
        "4 X (6m@88% + 3m@60%)",
        "5 X (5m@90% + 2m@60%)",
        "4 X (8m@88% + 2m@60%)",
        "3 X (10m@90% + 2m@60%)",
        "2 X (15m@92% + 5m@65%)",
        "3 X (12m@90% + 3m@65%)",
        "2 X (20m@88% + 5m@65%)"
      ]
    },
    {
      "title": "High-Effort Interval Progression",
      "description": "1-hour threshold and VO2max interval session to build high-intensity fitness and fatigue resistance.",
      "progression": [
        "5 X (3m@110% + 3m@60%)",
        "6 X (3m@115% + 3m@60%)",
        "4 X (5m@105% + 3m@60%)",
        "5 X (4m@110% + 2m@65%)",
        "6 X (4m@110% + 2m@65%)",
        "5 X (5m@108% + 2m@65%)",
        "4 X (6m@105% + 2m@65%)",
        "6 X (4m@110% + 2m@65%)"
      ]
    },
    {
      "title": "Aerobic and Long Endurance Progression",
      "description": "Friday: steady aerobic endurance up to 90 min. Sunday: long ride up to 3 hours at endurance pace.",
      "progression": [
        "1 X (60m@70%)",
        "1 X (75m@72%)",
        "1 X (90m@72%)",
        "1 X (60m@70%)",
        "1 X (90m@73%)",
        "1 X (120m@70%)",
        "1 X (150m@70%)",
        "1 X (180m@68%)"
      ]
    }
  ],
  "recoveryPattern": "3/1",
  "trainingDays": [
    {
      "day": "tue",
      "type": "indoor"
    },
    {
      "day": "thu",
      "type": "indoor"
    },
    {
      "day": "fri",
      "type": "outdoor"
    },
    {
      "day": "sun",
      "type": "outdoor"
    }
  ],
  "bestLongRideDay": "sun",
  "secondaryStartingWorkIntensity": 3
}

thanks for the quick reply. I wanted to get on screen messages for each interval when running in the app. You can see some instructions have been added which give cadence info as well as the FTP, etc

These don’t appear anywhere. Even if I go into the Coach Jack workout the Interval Comments are greyed out

Oh yes, we don’t support those messages yet for this LLM builder, but that is a great idea. We will try to add that soon.

1 Like

I should say TP does not support those messages correctly so this would only work when following a plan from our calendar or downloading the zwo files.