agentsclimarketplace

Cycling training

Skill disco-trooper/skills/cycling-training

Cycling training plans, power zones, FTP testing, intervals, periodization, indoor/outdoor training, race preparation, training-load analysis, and recovery guidance. Use when Codex needs to design cycling workouts, calculate FTP-based zones or TSS, analyze training data, manage CTL/ATL/TSB, or answer cyclist training questions.From its SKILL.md

Install
npx -y skills add disco-trooper/skills --skill cycling-training

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 7 commands, including `python3 "$SKILLS_DIR/cycling-training/scripts/calculate_zones.py" 250 --model coggan` and 6 more.

SKILL.md

14.8 KB, ~3.8k tokens by cl100k_base, as published. Nobody here has run it

Cycling Training Skill

Evidence-based cycling training guidance grounded in peer-reviewed sports science research.

Quick Reference

Power Zones (Quick Reference)

ZoneName% FTPPrimary Use
1Active Recovery<55%Recovery rides
2Endurance55-75%Aerobic base
3Tempo76-90%Muscular endurance
4Threshold91-105%FTP development
5VO2max106-120%Aerobic capacity
6Anaerobic121-150%AC intervals
7NeuromuscularMaxSprints

For detailed zone models (Seiler 3-zone, iLevels, HR zones, Training Intensity Distribution), see zones-and-testing.md

Scripts (Quick Reference)

If this skill is installed locally, set SKILLS_DIR to the directory your tool uses for skills.

# Example only — adjust to your environment:
SKILLS_DIR="<path-to-your-skills-dir>"

python3 "$SKILLS_DIR/cycling-training/scripts/calculate_zones.py" 250 --model coggan
python3 "$SKILLS_DIR/cycling-training/scripts/calculate_zones.py" 250 --model seiler --json
python3 "$SKILLS_DIR/cycling-training/scripts/calculate_tss.py" 250 230 60 --json
python3 "$SKILLS_DIR/cycling-training/scripts/analyze_week.py" 450 65 72 --prev-week-tss 400 --daily-tss 60,80,0,70,90,80,70 --json

Test suite (stdlib only):

python3 -m unittest discover -s "$SKILLS_DIR/cycling-training/scripts/tests" -p 'test_*.py' -v

Companion Skills

intervals-icu (Data API)

For fetching and updating data from intervals.icu platform, use the intervals-icu skill:

┌─────────────────┐     fetch data      ┌───────────────────┐
│  intervals-icu  │ ──────────────────► │ cycling-training  │
│   (DATA API)    │                     │    (ANALYSIS)     │
│                 │ ◄────────────────── │                   │
│ • wellness      │   interpret results │ • zone calc       │
│ • activities    │                     │ • periodization   │
│ • power curves  │                     │ • workout design  │
│ • fitness       │                     │ • load management │
└─────────────────┘                     └───────────────────┘

Common workflow:

  1. Fetch data: $SKILLS_DIR/intervals-icu/scripts/api.sh wellness today
  2. Analyze with this skill (zone calculation, load management)
  3. Update: $SKILLS_DIR/intervals-icu/scripts/api.sh wellness-update today '{"readiness": 4}'

Indoor Training Essentials

Critical Setup:

ComponentRequirementWhy
FanStrong airflow at torso (as much as practical)Better cooling and higher sustainable indoor power
Temperature<20°C (68°F)Prevents overheating
FTPTest indoors separately5-10% lower than outdoor

Indoor FTP Adjustment:

  • Use 95% of outdoor FTP OR
  • Perform dedicated indoor FTP test (recommended)
  • TrainerRoad AI FTP Detection can be a useful estimate; validate with workouts/tests

ERG vs Slope Mode:

ModeUse WhenBenefit
ERGStructured intervalsHolds exact power target
SlopeRace simulation, cadence drillsNatural power fluctuations

For complete indoor setup guide, see indoor-training.md

Indoor Workout Quick Examples

Sweet Spot (ERG Mode):

Warm-up: 10 min @ 55% FTP
Main: 2×20 min @ 88-92% FTP (5 min recovery)
Cool-down: 10 min easy
Total: 65 min | TSS: ~70
TrainerRoad: Carson, Geiger
Zwift: SST (Short) or custom

VO2max Intervals (ERG Mode):

Warm-up: 15 min progressive to 75% FTP
Main: 5×4 min @ 108-112% FTP (4 min @ 50% recovery)
Cool-down: 10 min easy
Total: 65 min | TSS: ~85
TrainerRoad: Baird, Spencer
Zwift: The Gorby or custom

Threshold (Slope Mode for pacing practice):

Warm-up: 15 min with 2×1 min @ 100%
Main: 2×15 min @ 95-100% FTP (8 min recovery)
Cool-down: 10 min easy
Total: 70 min | TSS: ~80
TrainerRoad: Kaweah, Darwin

Weekly Training Load Guidelines

LevelHours/WeekWeekly TSSCTL Target
Recreational5-8300-50040-60
Enthusiast8-12500-70060-80
Competitive12-18700-100080-100
Elite Amateur18-251000-1400100-130
Professional25-351400-2000+130-160

Key Metrics Formulas

TSS = (Duration_sec × NP × IF) / (FTP × 3600) × 100
IF = NP / FTP
VI = NP / AP
CTL = 42-day exponentially weighted average of TSS
ATL = 7-day exponentially weighted average of TSS
TSB = CTL - ATL
ACWR = ATL / CTL (heuristic range often cited: ~0.8-1.3)

ACWR note: ACWR is widely used, but it is also debated in the literature. Treat it as a heuristic and combine it with context (sleep, illness, soreness, performance trends), not as a single decision signal.

Race Day TSB Targets

Event TypeOptimal TSB
Training race-10 to +5
B race+5 to +15
A race+15 to +25
Grand Tour stage+5 to +15

Plan Templates

Ready-to-use training plan templates:

TemplateUse CaseFile
8-Week Base BuilderBuilding aerobic foundationbase-8-week.md
16-Week Indoor SeasonWinter trainer block (Nov-Feb)indoor-season.md
16-Week Outdoor SeasonSpring-summer race preparation (Apr-Jul)outdoor-season.md

Using Templates

  1. Copy template to user's planning location
  2. Replace [YOUR_FTP] with athlete's current FTP
  3. Replace [YOUR_CTL] with current CTL
  4. Adjust dates and weekly structure
  5. Scale TSS targets based on current fitness (×0.8 for less, ×1.2 for more)

Reference Files

Load these based on specific need:

TopicFileLoad When
Power zones & FTP testingzones-and-testing.mdSetting zones, FTP tests, CP model
Workout libraryworkouts.mdPrescribing specific intervals
Periodizationperiodization.mdPlanning phases, blocks, mesocycles
Indoor trainingindoor-training.mdTrainer setup, heat, Zwift/TrainerRoad
Outdoor trainingoutdoor-training.mdOutdoor execution, terrain, groups, safety
Nutrition & recoverynutrition-recovery.mdFueling, supplements, sleep, recovery
Physiologyphysiology.mdVO2max, lactate, CP, efficiency
Strength trainingstrength.mdGym work integration for cyclists
Special populationsspecial-populations.mdMasters, women, beginners, time-crunched
Analyticsanalytics.mdMetrics, training load, data analysis
Training platformsplatforms.mdTrainerRoad, Zwift, intervals.icu, WKO5 comparison
Environmentalenvironmental.mdHeat acclimation, altitude training
Psychologypsychology.mdMotivation, mental training, indoor strategies
Bike fit & positionbike-fit.mdPosition setup, indoor adjustments, pain issues
Injuries & preventioninjuries.mdPain diagnosis, prevention, return protocols
Cardiovascular risksinjuries.md#cardiovascular-risksHigh-volume training concerns, screening
Racing tacticsracing-tactics.mdRace strategy, pacing, drafting, criteriums
Equipment & gearequipment.mdTrainer, fan, power meter recommendations
Quick referencequick-reference.mdCommon scenarios, metrics, race TSB targets

Core Workflows

1. Creating a Training Plan

1. ASSESS current state
   - Recent FTP test (within 4-6 weeks)
   - Current CTL and training history
   - Power duration curve / phenotype
   - Available training time
   - Health/injury status

2. DEFINE goals
   - Target event(s) with dates
   - Performance goals (power targets, placing)
   - Priority (A/B/C races)

3. SELECT periodization model
   - Block: For experienced cyclists, 1-3 peak events
   - Traditional: For beginners, year-round racing
   - Reverse: For masters, late-season peaks, indoor season

4. MAP phases backward from A event
   - Race/Peak: 1-2 weeks (taper)
   - Build: 6-8 weeks (race-specific intensity)
   - Base: 8-12 weeks (volume, aerobic development)

5. STRUCTURE mesocycles (3-4 weeks each)
   - 3:1 or 2:1 load:recovery ratio
   - Progressive overload within mesocycle
   - Deload week at end

6. PLAN microcycles (weekly)
   - Key workouts placed optimally
   - Recovery days after hard sessions
   - Long ride placement (weekend typically)

7. SET targets
   - Weekly TSS targets
   - CTL progression (3-7 pts/week max)
   - Specific workout targets

2. Analyzing Training Data

1. SESSION level
   - Compare NP/IF to prescription
   - Time in target zones
   - HR:power decoupling (<5% = good aerobic fitness)
   - Variability Index (race: 1.0-1.05, crit: 1.1+)

2. WEEKLY level
   - Total TSS vs target
   - Intensity distribution (TID)
   - ACWR (heuristic; avoid sharp spikes)

3. BLOCK/PHASE level
   - CTL trend
   - FTP progression
   - Power duration curve changes
   - Identify limiters

4. WARNING signs
   - HR elevated for given power
   - Performance plateau/decline
   - Elevated resting HR
   - Sleep disturbance
   - Mood changes

3. Prescribing Workouts

1. IDENTIFY training goal
   - Aerobic base → Endurance, Tempo
   - Threshold development → Sweet Spot, Threshold
   - VO2max → Short/Long VO2max intervals
   - Anaerobic → AC intervals, sprints
   - Race-specific → Simulation workouts

2. SELECT workout type from references/workouts.md

3. ADJUST for athlete
   - Scale duration/reps for fitness level
   - Consider current fatigue (TSB)
   - Account for weekly context

4. PROVIDE execution guidance
   - Warm-up protocol
   - Target power/HR
   - Pacing strategy
   - Recovery between intervals
   - Cool-down

Key Evidence-Based Principles

Polarized Training (Seiler Research)

  • 80% of training time below LT1 (easy)
  • <5% between LT1-LT2 (minimize "grey zone")
  • 15-20% above LT2 (hard intervals)
  • Superior to threshold-heavy approaches for trained athletes
  • Exception: Time-crunched athletes may benefit from more sweet spot

Progressive Overload

  • CTL increase: 3-7 points/week (max 10 aggressive)
  • Volume increase: 5-10% per week maximum
  • Ramp rate = (CTL_target - CTL_current) / weeks_available
  • Always follow 2-3 hard weeks with recovery week

Recovery Integration

  • Deload every 3-4 weeks (40-60% volume cut)
  • Maintain some intensity during deloads
  • Sleep: 8-9 hours optimal for adaptation
  • Nutrition timing: Protein within 2h, carbs for glycogen

Supercompensation Timing

AdaptationRecovery Time
Neuromuscular24-72 hours
Glycogen stores24-48 hours
Aerobic enzymes7-14 days
Structural (muscle)3-6 weeks

Indoor vs Outdoor Training

  • Power typically 5-10% lower indoors
  • RPE higher for same power output
  • Cooling critical: Fan essential, room temp <20°C
  • Heat stress can be used for heat adaptation
  • ERG mode for structured intervals
  • Slope mode for race simulation / pacing practice

Overtraining Prevention

Monitor daily:

  • Morning resting HR (+5 bpm = warning)
  • HRV trend (decreasing = accumulating fatigue)
  • Sleep quality
  • Subjective wellness (1-10 scale)

Red flags:

  • Performance decline despite adequate training
  • Persistent fatigue >2 weeks
  • Illness frequency increase
  • Mood disturbances

Cardiovascular Risks (High Volume)

Medical disclaimer: Educational only — not medical advice. If you have symptoms or risk factors, seek medical evaluation.

Red flags to take seriously:

  • Palpitations, unusual dyspnea, syncope, chest pain

→ See injuries.md for details and sources

Workflow Guides

Plan Type Decision Tree

Athlete's primary goal?
├── Build aerobic base
│   └── Use: Base Building workflow → base-8-week.md template
├── Increase FTP/threshold
│   └── Current CTL?
│       ├── <60: Build base first (4-6 weeks)
│       └── ≥60: Use Build workflow → FTP focus
├── Prepare for specific event
│   └── Weeks until event?
│       ├── >12 weeks: Full periodization (base → build → peak)
│       ├── 8-12 weeks: Build → peak
│       └── <8 weeks: Maintenance + race specificity
└── Indoor winter training
    └── Use: indoor-season.md template

Intensity Distribution Decision

Available training hours/week?
├── <6 hours
│   └── Polarized approach: 80% Z1-2, 20% Z5+
│       (Skip Z3-4, maximize recovery between intensity)
├── 6-10 hours
│   └── Pyramidal approach: 75% Z1-2, 15% Z3-4, 10% Z5+
└── >10 hours
    └── Traditional periodization or pyramidal
        (More flexibility in distribution)

Training Analysis Workflow

When analyzing completed training data:

  1. Weekly Review

    • Compare actual vs planned TSS
    • Check intensity distribution (time in zones)
    • Review key workout execution (hit targets?)
    • Note subjective feedback (RPE, fatigue, mood)
  2. Performance Trends

    • Track FTP progression (eFTP from intervals.icu)
    • Monitor Efficiency Factor (NP/HR) trend
    • Check power curve for improvements
    • Compare HR:power decoupling on endurance rides
  3. Load Management

    • Calculate ACWR (heuristic; watch for spikes)
    • Monitor CTL ramp rate (<7 pts/week)
    • Watch for excessive negative TSB (<-30)
  4. Red Flags to Address

    • Declining power at same HR
    • Increasing RPE for same workouts
    • Poor sleep/recovery scores
    • Missed workouts pattern

→ For detailed metrics, see analytics.md

Common Scenarios

Quick answers with deep-dive links: See quick-reference.md

What ships with it: 30 files

288.9 KB alongside SKILL.md, 7 of them executable

agents/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.