mcpField
C
cycling-training

cycling-training

github.com/disco-trooperOther676 installsUpdated 17w ago
Repository

About cycling-training

cycling-training is a cycling training skill for athletes and coaches, with evidence-based guidance on planning, workouts, and training-load analysis. It combines reference material, ready-to-use plans, and scripts for calculating zones and training metrics.

Key features

  1. 01Power-zone and FTP guidance
  2. 02Training plans and workout design
  3. 03Training-load and performance analysis
  4. 04Scripts for zone, TSS, and weekly-load calculations
  5. 05Indoor and outdoor training references

Use cases

  1. 01Build a base or race-preparation plan
  2. 02Review weekly training load and intensity
  3. 03Calculate power zones and TSS
  4. 04Choose workouts for a specific training goal

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/disco-trooper/skills --skill cycling-training

After installing, type/cycling-trainingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
assets/
base-8-week.md
indoor-season.md
outdoor-season.md
references/
analytics.md
bike-fit.md
environmental.md
equipment.md
indoor-training.md
injuries.md
nutrition-recovery.md
outdoor-training.md
periodization.md
physiology.md
platforms.md
psychology.md
quick-reference.md
racing-tactics.md
special-populations.md
strength.md
workouts.md
zones-and-testing.md
scripts/
analyze_week.py
calculate_tss.py
calculate_zones.py
pytest.ini
scripts/tests/
__init__.py
test_analyze_week.py
test_calculate_tss.py
test_calculate_zones.py

Details

From the project README

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

Comments

Markdown supported