You are an expert triathlon coach creating ONE WEEK of training for a Full Ironman (140.6) race. CRITICAL POOL CLOSURE RULE The pool is CLOSED on Friday (Day 4) only. Pool swim workouts are ALLOWED on: - Monday (Day 0) - Tuesday (Day 1) - Wednesday (Day 2) - Thursday (Day 3) - Saturday (Day 5) - Sunday (Day 6) Open water swims are PREFERRED on weekends (Sat/Sun) during May-October. If you schedule a pool swim on Friday, the week will be REJECTED. RACE DETAILS: - Race: {{.RaceName}} - Distance: 2.4 mile swim + 112 mile bike + 26.2 mile run (Full Ironman / 140.6) - Date: {{.RaceDate}} - Days until race: {{.DaysToRace}} WEEK {{.WeekNumber}} ({{.WeekStart}} to {{.WeekEnd}}): - Phase: {{.Phase}} - Target weekly load: {{.TargetLoad}} CURRENT FITNESS: - ATL (Acute Load): {{.ATL}} - CTL (Fitness): {{.CTL}} - TSB (Form): {{.TSB}} {{if .Ramp}}- Ramp Rate: {{.Ramp}}/week{{end}} {{if .PriorWeeks}}PREVIOUS WEEK: {{range .PriorWeeks}}Week {{.WeekNumber}}: - Total: {{.TotalLoad}} load, {{.TotalDuration}} mins, {{.TotalMiles}} miles, {{.WorkoutCount}} workouts {{range .Workouts}} * {{.DayOfWeek}}: {{.Sport}} {{.Type}} ({{.Duration}}min, {{.Distance}}mi, {{.Load}} load) {{end}}{{end}}{{end}} PLAN PROGRESS: - Completed so far: {{.CompletedLoad}} load, {{.CompletedMiles}} miles, {{.CompletedHours}} hours - Rest days: {{.RestDaysUsed}} of {{.RestDaysBudget}} used {{if .Holidays}}HOLIDAYS THIS WEEK: {{range .Holidays}}- {{.Name}}: {{.StartDate}} {{end}} NO WORKOUTS during holidays! {{end}} {{if .ImportedWorkouts}}EXISTING ICU WORKOUTS THIS WEEK (ALREADY SCHEDULED): {{range .ImportedWorkouts}}- {{.DayOfWeek}} ({{.Date}}): {{.Type}} - {{.Name}}{{if .Duration}} ({{.Duration}}min){{end}} {{end}} IMPORTANT: These workouts are ALREADY on the calendar. DO NOT replace them. Work AROUND these existing workouts and fill in other days appropriately. Count their duration toward your weekly volume planning. {{end}} FULL IRONMAN TRAINING RULES: 1. Race distance: 2.4 mile swim (~4224 yards) + 112 mile bike + 26.2 mile run (full marathon) 2. Max long bike: 112 miles / 7 hours (race distance) 3. Max long run: 26.2 miles / 4 hours (race distance) 4. Max swim: 4224 yards (race distance) 5. Long/Tempo bike rides (>90 minutes) MUST be on Saturday or Sunday ONLY 6. Include brick workouts: bike followed immediately by run (transition practice) 7. Preferred workout days: Tue, Wed, Thu, Fri, Sat, Sun (Monday typically rest) 8. Rest days: 1-2 per week (Monday recommended) 9. Multi-sport balance: ~3-4 swims, ~3-4 bikes, ~3-4 runs per week 10. SATURDAY IS NOT A REST DAY - ALWAYS schedule 2-4 workouts on Saturday 11. WEEKEND DISTRIBUTION: Split workouts evenly between Saturday AND Sunday (not all on one day) WORKOUT TYPES: - Easy: Recovery pace, aerobic base building - Tempo: Sustained moderate-hard effort at race pace - Intervals: Hard repeats with recovery - Long: Weekly long workout building endurance - Brick: Bike immediately followed by run (transition practice) - Race: Race simulation - Rest: Complete rest day PHASE-SPECIFIC GUIDANCE: {{if eq .Phase "Base"}} - Build aerobic base across all three sports - Gradually increase weekly volume - Swim: 3-4x per week, 2000-3000 yards, technique focus - WEEKDAY BIKES (Mon-Fri): Max 60-90 min, easy pace only - WEEKEND BIKES (Sat/Sun): 120-180 min for longer endurance rides - Run: 3-4x per week, easy pace, 45-90 minutes (6-12 miles) - Long bike: 120-180 minutes (35-55 miles) - SATURDAY OR SUNDAY ONLY - Long run: 90-120 minutes (12-16 miles) - typically on Sunday - Optional brick: Short 20-30 min run after bike {{else if eq .Phase "Build"}} - Increase volume and add quality workouts - Swim: 3-4x per week, 2800-3600 yards, add intervals - OPEN WATER SEASON (May-Oct): Include 1 open water swim per week on Saturday or Sunday - WEEKDAY BIKES (Mon-Fri): Max 60-90 min, easy/recovery only - WEEKEND BIKES (Sat/Sun): 180-330 min for long/tempo rides - Run: 3-4x per week, tempo and intervals, 60-105 minutes (8-14 miles) - Long bike: 240-330 minutes (75-100 miles) - SATURDAY OR SUNDAY ONLY - Long run: 120-165 minutes (16-22 miles) - typically on Sunday - Brick: 45-60 min run after long bike {{else if eq .Phase "Peak"}} - Peak long workouts and race-specific training - Swim: 3-4x per week, 3600-4224 yards, race-pace sets - OPEN WATER (May-Oct): MUST include 1-2 open water swims per week on Saturday/Sunday - WEEKDAY BIKES (Mon-Fri): Max 60-90 min, easy/recovery only - WEEKEND BIKES (Sat/Sun): 300-420 min for long race-simulation rides - Run: 3-4x per week, tempo and race pace, 75-150 minutes (10-20 miles) - Long bike: 360-420 minutes (100-112 miles) - SATURDAY OR SUNDAY ONLY - Long run: 180-240 minutes (20-26.2 miles) - typically Sunday - Brick: 60-90 min run after long bike {{else if eq .Phase "Taper 1"}} - Reduce volume by 30%, maintain intensity - Swim: 3x per week, 2400-3000 yards, keep some speed work - WEEKDAY BIKES (Mon-Fri): Max 60-90 min, easy/recovery only - WEEKEND BIKES (Sat/Sun): 120-180 min for tempo efforts - Run: 3x per week, 60-90 minutes with tempo (8-12 miles) - Long bike: 180-240 minutes (55-75 miles) - SATURDAY OR SUNDAY ONLY - Long run: 90-120 minutes (12-16 miles) - typically Sunday - Brick: 30-45 min run after bike {{else if eq .Phase "Taper 2"}} - Final week: Reduce volume by 50-60% - Swim: 2-3x per week, 1800-2400 yards, easy with some pickups - WEEKDAY BIKES (Mon-Fri): Max 45-60 min, very easy - WEEKEND BIKES (Sat/Sun): 60-90 min for final tune-up - Run: 2-3x per week, 30-60 minutes, easy with strides (4-8 miles) - No long workouts (all bikes <90 min during final taper) - Optional short brick: 20-30 min run after 60 min bike {{end}} BEFORE YOU START POOL CLOSED: Friday only SWIMS ALLOWED ON: Monday, Tuesday, Wednesday, Thursday, Saturday, Sunday TASK: STEP 1: VALIDATE POOL CLOSURE CONSTRAINT Before generating ANY workouts, you MUST verify that ALL swim workouts are scheduled on pool-open days: - Monday (Day 0) - Tuesday (Day 1) - Wednesday (Day 2) - Thursday (Day 3) - Saturday (Day 5) - Sunday (Day 6) NEVER schedule swims on: - Friday (Day 4) - POOL CLOSED Your week will be AUTOMATICALLY REJECTED if you schedule a swim on Friday. STEP 2: Generate THIS WEEK's workouts as JSON. You MUST respond with a JSON object only. No text before or after. JSON SCHEMA: { "workouts": [ { "day": , // 0=Mon, 1=Tue, 2=Wed, 3=Thu, 4=Fri, 5=Sat, 6=Sun "date": "", // ISO date string "sport": "", // "Swim", "Bike", "Run", or "OpenWaterSwim" "type": "", // "Easy", "Tempo", "Intervals", "Long", "Rest", or "Brick" "duration": , // Duration in minutes "distance": , // Yards for swim, miles for bike/run "description": "", // Brief workout description "workout": "" // Structured workout in Intervals.icu format (use \n for newlines) } ], "notes": "" // Optional notes about the week } REQUIREMENTS: - Generate 10-12 workouts this week for Build/Peak phases, 8-10 for Base/Taper (target: 11 for build) - Use absolute day numbers (0=Mon, 1=Tue, 2=Wed, 3=Thu, 4=Fri, 5=Sat, 6=Sun) - Include full date for each day - Balance across three sports: ~3-4 swims, ~3-4 bikes, ~3-4 runs - CRITICAL: Pool swims allowed Mon-Thu, Sat-Sun (NOT Friday) - NEVER schedule swim workouts on Friday (Day 4) - pool is CLOSED - SATURDAY (Day 5) MUST HAVE 2-4 WORKOUTS - Saturday is NOT a rest day! - SATURDAY REQUIREMENT: Long bike (>180min) MUST be on Saturday (Day 5), NOT Sunday - WEEKEND SPLIT: Distribute workouts evenly - 2-4 on Saturday + 2-3 on Sunday (NOT all on one day) - Long bike (>180min) ONLY on Sat/Sun (prefer Saturday for long bike) - Long run (>120min) ONLY on Sat/Sun (typically Sunday) - Total weekly load should be near {{.TargetLoad}} - Respect rest day budget ({{.RestDaysUsed}}/{{.RestDaysBudget}} used) {{if .Holidays}}- ZERO workouts on holiday dates{{end}} - Include at least one brick workout (bike immediately followed by run) - Brick workouts: BOTH bike and run must be on same day, run immediately follows bike - Swim distances in yards (1 mile = 1760 yards) - Bike/Run distances in miles - Open water swims: Label with Type "Long" or "Intervals", include "open water" in description - IMPORTANT: In structured workouts, use abbreviated units (Intervals.icu format): - Use "m" for minutes (e.g., "15m" not "15 minutes") - Use "s" for seconds (e.g., "90s" not "90 seconds") - For distance: use "km" for kilometers, "mi" for miles - For repeats: use compact format like "6x (800m 85%, 90s recovery)" STRUCTURED WORKOUT FORMAT: Swim example (pool): Workout: Warmup - 300yd easy - 4x (50yd drill, 15s rest) Main Set 5x - 400yd steady pace 30s rest Cooldown - 200yd easy Bike tempo example: Workout: Warmup - 15m ramp 50-70% 85rpm Main Set - 90m 75-80% 90rpm Cooldown - 15m ramp 70-50% 85rpm Run intervals example: Workout: Warmup - 15m Z1 pace Main Set - 5x (1mi 90-95% pace, 2m recovery) Cooldown - 10m Z1 pace Open water swim example (for Peak phase, use on Saturday): Workout: Warmup - 15m easy sighting practice Main Set - 60m steady pace sighting every 6-8 strokes Cooldown - 15m easy EXAMPLE JSON RESPONSE: { "workouts": [ {"day": 0, "date": "2026-01-05", "sport": "Run", "type": "Rest", "duration": 0, "distance": 0, "description": "Rest day", "workout": ""}, {"day": 1, "date": "2026-01-06", "sport": "Swim", "type": "Intervals", "duration": 60, "distance": 3200, "description": "Pool intervals", "workout": "Warmup\n- 400yd easy\n- 4x (50yd drill, 15s rest)\n\nMain Set 6x\n- 400yd 75% 30s rest\n\nCooldown\n- 200yd easy"}, {"day": 1, "date": "2026-01-06", "sport": "Run", "type": "Easy", "duration": 45, "distance": 5.5, "description": "Easy recovery run", "workout": "Main\n- 45m 65-70% HR"}, {"day": 2, "date": "2026-01-07", "sport": "Bike", "type": "Easy", "duration": 75, "distance": 22, "description": "Easy spin", "workout": "Main\n- 75m 60-65% 85rpm"}, {"day": 3, "date": "2026-01-08", "sport": "Swim", "type": "Tempo", "duration": 50, "distance": 2800, "description": "Tempo swim", "workout": "Warmup\n- 300yd easy\n\nMain Set\n- 2000yd 80% pace\n\nCooldown\n- 500yd easy"}, {"day": 3, "date": "2026-01-08", "sport": "Run", "type": "Intervals", "duration": 60, "distance": 8, "description": "Speed intervals", "workout": "Warmup\n- 15m 65-70% HR\n\nMain Set 5x\n- 1mi 88-92% HR 2m rest\n\nCooldown\n- 10m 65-70% HR"}, {"day": 4, "date": "2026-01-09", "sport": "Bike", "type": "Easy", "duration": 60, "distance": 18, "description": "Easy recovery ride", "workout": "Main\n- 60m 60-65% 85rpm"}, {"day": 5, "date": "2026-01-10", "sport": "OpenWaterSwim", "type": "Long", "duration": 90, "distance": 3500, "description": "Open water swim - race simulation", "workout": "Warmup\n- 15m easy sighting practice\n\nMain Set\n- 60m steady pace sighting every 6-8 strokes\n\nCooldown\n- 15m easy"}, {"day": 5, "date": "2026-01-10", "sport": "Bike", "type": "Long", "duration": 300, "distance": 85, "description": "Long endurance ride", "workout": "Warmup\n- 20m ramp 50-70%\n\nMain Set\n- 260m 70-75% 85rpm\n\nCooldown\n- 20m easy"}, {"day": 5, "date": "2026-01-10", "sport": "Run", "type": "Brick", "duration": 45, "distance": 6, "description": "Brick run after bike (transition practice)", "workout": "Main\n- 45m 75-80% HR"}, {"day": 6, "date": "2026-01-11", "sport": "Run", "type": "Long", "duration": 150, "distance": 18, "description": "Long run", "workout": "Main\n- 150m 65-72% HR"}, {"day": 6, "date": "2026-01-11", "sport": "Swim", "type": "Easy", "duration": 30, "distance": 1500, "description": "Easy recovery swim", "workout": "Main\n- 1500yd easy"} ], "notes": "Build phase week with long bike/brick on Saturday and long run on Sunday. Open water swim included for race prep." } PRE-OUTPUT VERIFICATION CHECKLIST Before outputting, mentally verify: WORKOUT COUNT: Did I generate 10-12 total workouts? Count: Swim ___ + Bike ___ + Run ___ = ___ total (target: 11) SWIM DAYS: Are ALL swim workouts on pool-open days (0, 1, 2, 3, 5, 6)? If any swim is on Day 4 (Friday) → MOVE IT (pool closed!) SPORT BALANCE: - Swims: 3-4? ___ - Bikes: 3-4? ___ - Runs: 3-4? ___ LONG WORKOUT PLACEMENT: - ANY bike >90min: Day 5 or 6 ONLY? ___ (NEVER on Mon-Fri!) - Long bike (>180min): On Day 5 (Saturday)? ___ (NOT Sunday!) - Long run (>120min): Day 5 or 6 only? ___ SATURDAY vs SUNDAY DISTRIBUTION: - Saturday (Day 5) workouts: ___ (MUST be 2-4, Saturday is NOT a rest day!) - Sunday (Day 6) workouts: ___ (typically 2-3) - If Saturday has 0-1 workouts → MOVE some from Sunday to Saturday! OPEN WATER SWIM (May-October): - If week is in May-October: Include at least 1 OpenWaterSwim on Saturday or Sunday - Use "Sport: OpenWaterSwim" (not "Sport: Swim") for open water workouts - Open water season: May 1 - October 31 BRICK INCLUDED: At least one bike→run brick? ___ If any check fails, revise before outputting. NOW GENERATE THE WEEK: ABSOLUTELY DO NOT: - Put swim on Friday (Day 4) - POOL CLOSED - Put bike >90min on any weekday (Mon-Fri) - WEEKENDS ONLY - Put all weekend workouts on Sunday - SPLIT between Sat AND Sun YOU MUST: - Day 4 (Friday) → NO swim (pool closed) - Days 0, 1, 2, 3, 5, 6 → swim allowed (pool open) - Day 5 (Saturday) → 2-4 workouts INCLUDING the long bike - Day 6 (Sunday) → 2-3 workouts INCLUDING the long run Generate the week now: