4 Commits

Author SHA1 Message Date
Chris Farhood 517986781f Merge pull request 'Add cycling-training Claude skill (Intervals.icu MCP companion)' (#1) from feat/cycling-training-skills into main 2026-07-20 23:13:23 +00:00
Chris Farhood 4e4f719670 fix: resolve code-review correctness bugs in README + build template
Three CONFIRMED defects, all from template/README text written before the
vo2max conflict section was revised, now reconciled with the corrected docs:

- README taper example said TSB '−5 to +5' (under-recovered) — corrected to
  the doctrinal +5 to +15 that periodization.md and both plan templates use.
- plan-template-build.md VO2 prescription said 'bias toward longer reps
  (3–5 min)... accumulate more time >90% VO2max than 30/30s' — contradicted
  its own cited source and was self-contradictory (140s ≠ 3–5 min). Replaced
  with the neutral menu: default medium (~2–4 min, near the ~140s optimum),
  short/long by goal, 'no rep length proven superior in cycling.'
- plan-template-build.md cited the phantom 'Yu et al.' (marked  NOT FOUND in
  citations.md) — re-grounded the frequency heuristic in Seiler 2024.

DRY findings (inline PMID/DOI duplication, restated rhythm/field-test tables)
left as-is: inline citations and self-contained, independently-loadable docs
were explicit design requirements for this skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
2026-07-20 19:11:39 -04:00
Chris Farhood 85b6be4e36 fix(vo2max): rebalance rep-length conflict, correct overstatements
Review of the VO2 conflict section against primary sources (verified via
PubMed + search):

- Rønnestad & Hansen 2016 (PMID 23942167) confirmed: 13 cyclists, 30s vs
  50%/80% Tmax at 2:1 work:rest, measured time >=90% VO2peak, 30s won. Table
  row corrected to reflect the actual comparison.
- Yang 2025 optimum ~140s is a MEDIUM rep (~2.3 min), between the poles.
  Section reframed from binary short-vs-long to an inverted-U with a
  modality/protocol-dependent peak. 'Weighted toward running' softened to
  match what the abstract actually supports.
- Removed the overstatement 'best-controlled evidence favors short 30/15
  intervals'. Added two caveats: (1) cycling short-interval superiority is
  largely one research group; (2) effort-matched work (total-work-matched)
  reportedly nulls the advantage (Seiler group; unpublished/secondary,
  flagged low-tier, not cited as fact).
- Practical menu now defaults to medium (~2-4 min, near the pooled optimum)
  rather than short; short/long presented as goal-dependent options.
- citations.md: added single-group caveat on Ronnestad body of work and an
  explicit NOT-VERIFIABLE entry for the effort-matched replication.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
2026-07-20 19:05:12 -04:00
Chris Farhood f6dd9dfc27 feat: add cycling-training Claude skill (MCP companion)
Modular cycling-training skill: periodization logic, workout design, and
research-backed protocols that companion an Intervals.icu MCP server (the
server owns all data + computed metrics; the skill owns knowledge + reasoning).

Structure:
- SKILL.md router + README (companion-to-MCP architecture, install steps)
- references/: durability, mtb-xco-demands, strength-for-cyclists,
  vo2max-intervals, periodization, data-confounds, citations
- assets/: base + build plan templates, durability field-test protocol

Every quantitative claim carries an inline citation; citations.md is the
single source of truth with PMID/DOI, each verified against PubMed on
2026-07-20. Notable honesty flags baked in:
- VO2 rep-length: running (Fleckenstein 2025) vs cycling (Ronnestad) conflict
  documented rather than asserted; cycling evidence favors short intervals.
- 'Yu et al. 2025' (frequency > distribution) could not be found; not cited.
- Under-researched doses (durability, taper TSB, CTL ramp) flagged 'track response'.
- HR-confound doc forbids naive decoupling<5% / RHR+5 rules.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
2026-07-20 18:59:37 -04:00
13 changed files with 1023 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
# Local Claude Code settings (machine-specific)
.claude/settings.local.json
# OS / editor cruft
.DS_Store
*.swp
+88
View File
@@ -0,0 +1,88 @@
# cycling-training
A modular **Claude skill** that provides periodization logic, workout design, research-backed
protocols, and interpretation guidance for endurance and off-road cycling training — designed to
**companion an Intervals.icu MCP server**, not replace it.
## The companion-to-MCP architecture
This skill deliberately holds **no data and no calculators**. It is the *reasoning* half of a
two-part system:
| Layer | Owns | Examples |
|-------|------|----------|
| **Intervals.icu MCP server** (data + computed metrics) | Fetching and computing everything numeric | activities, wellness, power curves, CTL / ATL / TSB, training-load ramp, zones, TSS, best efforts, streams |
| **`cycling-training` skill** (knowledge + reasoning) | Deciding what the numbers *mean* and what to do next | periodization logic, workout design, research-backed protocols, interpretation of trends, confound-aware caveats |
**The split is a hard rule.** If a script would only reproduce math the MCP API already returns
(zones, TSS, load metrics, CTL/ATL/TSB), it is intentionally absent. Ask the MCP server for the
number; ask this skill what to do about it.
### How they work together (typical flow)
1. **MCP** returns the data — e.g. `get_athlete_summary` (CTL/ATL/TSB), `get_wellness_data`
(HRV, RHR, sleep), `get_athlete_power_curves`, `get_activities`.
2. **Skill** supplies the reasoning — e.g. "TSB is 25 eight days out from an A-race; the taper
doc targets +5 to +15 by race day, so shed fatigue," or "this VO2 session banked little time
≥90% VO2max; the interval doc says check whether rep length / work:rest kept power in the band."
3. **You (Claude)** combine them into a recommendation, always citing which layer supplied what.
## Repository layout
```
cycling-training/
├── SKILL.md # Router — loads the right reference doc by need
├── README.md # This file
├── references/
│ ├── durability.md # Fatigue resistance as a trainable quality + field test
│ ├── mtb-xco-demands.md # MTB/XCO demand profile; power governs, HR caveat
│ ├── strength-for-cyclists.md # Heavy strength; masters rationale; from-zero ramp
│ ├── vo2max-intervals.md # Maximizing time ≥90% VO2max; work:rest; rep length
│ ├── periodization.md # Distribution philosophy; base/build/peak; CTL ramp; taper
│ ├── data-confounds.md # HR reliability; power-governs; decoupling/RHR caveats
│ └── citations.md # Master citation list with PMID/DOI — single source of truth
└── assets/
├── plan-template-base.md # Backward-mapped base mesocycle skeleton (3:1 / 2:1)
├── plan-template-build.md # Build block: VO2 + durability + strength integration
└── field-test-durability.md # The ~1,500 kJ → 1-min hill durability field test
```
## Installing as a Claude skill
A Claude skill is a directory containing a `SKILL.md` with YAML frontmatter (`name` +
`description`). To install:
**Claude Code (project or personal):**
```bash
# Personal (available in every project):
git clone <this-repo> ~/.claude/skills/cycling-training
# Or project-scoped (checked in with a repo):
git clone <this-repo> .claude/skills/cycling-training
```
Claude auto-discovers any `SKILL.md` under a `skills/` directory. The `description` field in the
frontmatter is what Claude matches against to decide when to load the skill, so keep it intact.
**Claude.ai / Claude Desktop:** upload or sync the folder as a skill per the current skills UI.
Once installed, this skill loads automatically when you ask cycling-training questions, and it
pairs with your connected Intervals.icu MCP server for the live data.
## How to read the docs
- **`SKILL.md` is a router, not a manual.** It points to the one reference doc that answers the
question at hand. Load docs on demand; don't read them all up front.
- **Every quantitative claim carries a citation** (author/year, with PMID/DOI in `citations.md`).
This is deliberate: it lets future-you *verify* rather than trust.
- **Where the mechanism is established but the optimal dose is not, the docs say so** — marked
`⚠️ under-researched — track individual response`. Treat those as hypotheses to test on
yourself, not settled protocol.
## Scope & honesty notes
- Content is written for **balanced road/TT and MTB** use; discipline-specific numbers are
labelled and not over-transferred (small-n elite XCO data ≠ masters marathon reality).
- This skill gives **general training-science reasoning, not individualized medical advice.**
Nothing here overrides a physician, and readiness/overtraining calls should use the
confound-aware logic in `references/data-confounds.md`, never naive single-number rules.
+69
View File
@@ -0,0 +1,69 @@
---
name: cycling-training
description: >-
Periodization logic, workout design, and research-backed protocols for endurance and off-road
cycling (road/TT + MTB/XCO). Companions an Intervals.icu MCP server that supplies all data and
computed metrics. Use when planning training blocks, designing VO2max/threshold/durability
workouts, integrating heavy strength (esp. masters), setting CTL ramp or A-race taper targets,
interpreting CTL/ATL/TSB or wellness trends, or deciding whether to trust HR vs power. Routes to
focused, individually loadable reference docs; every quantitative claim is cited.
---
# Cycling Training — knowledge & reasoning skill
This skill is the **reasoning half** of a two-part system. The **Intervals.icu MCP server owns all
data and computed metrics**; this skill owns the **knowledge and interpretation**. Get the numbers
from MCP, then use these docs to decide what they mean and what to do next.
## Data / knowledge split (read this first)
| Ask the **MCP server** for… | Ask **this skill** for… |
|---|---|
| Activities, streams, best efforts, power curves | What workout to prescribe and why |
| CTL / ATL / TSB, training-load ramp, TSS | How fast to ramp CTL; what TSB to target for an A-race |
| Zones, sport settings, thresholds (FTP, MAP) | How to structure work:rest and rep length within a zone |
| Wellness: HRV, RHR, sleep, readiness | Whether a wellness signal is trustworthy or confounded |
**Never recompute what MCP already returns** (zones, TSS, load metrics). This skill contains no
calculators by design — only periodization logic, workout design, protocols, and interpretation.
> Relevant MCP tools (names may vary by server): `get_athlete_summary`, `get_athlete_profile`,
> `get_sport_settings`, `get_activities` / `search_activities`, `get_activity_details` /
> `_streams` / `_intervals` / `_best_efforts`, `get_athlete_power_curves`, `get_wellness_data`,
> `get_training_readiness`, `get_events` / `add_or_update_event` (to schedule planned workouts).
## Router — load the doc that matches the need
| If the question is about… | Load |
|---|---|
| **Fatigue resistance / durability** — training it, why fatigued-state power matters, the field test | `references/durability.md` |
| **MTB / XCO** — race demands, why power (not HR) governs off-road, marathon vs lap XCO | `references/mtb-xco-demands.md` |
| **Strength training** — heavy lifting for cyclists, masters muscle loss, from-zero ramp, in-season | `references/strength-for-cyclists.md` |
| **VO2max / high-intensity intervals** — rep length, work:rest, maximizing time ≥90% VO2max | `references/vo2max-intervals.md` |
| **Season structure** — base/build/peak, mesocycles, CTL ramp, A-race taper & TSB targets, polarized vs pyramidal | `references/periodization.md` |
| **Trusting the data** — when HR is unreliable, decoupling, RHR/HRV, heat/alcohol/sleep/travel confounds | `references/data-confounds.md` |
| **A specific citation / PMID / DOI** | `references/citations.md` |
### Plan & protocol templates (assets)
| Template | Use when |
|---|---|
| `assets/plan-template-base.md` | Building a base mesocycle, backward-mapped from an A-race |
| `assets/plan-template-build.md` | Building a build block that integrates VO2, durability, and strength |
| `assets/field-test-durability.md` | Running the ~1,500 kJ → 1-min hill durability field test |
## Operating principles
1. **Cite as you reason.** Every quantitative recommendation should name its source (author/year;
full identifier in `references/citations.md`). This is so the athlete can verify, not just trust.
2. **Separate mechanism from dose.** Where a doc marks a protocol
`⚠️ under-researched — track individual response`, present it as a hypothesis to test on this
athlete, not a fixed prescription.
3. **Power governs; HR is conditional.** Prescribe from power. Use HR only where it is reliable
(durability decoupling on steady rides, recovery trends) and always screen for the confounds in
`references/data-confounds.md`. Never apply naive single-number rules
(e.g. "decoupling <5% = fresh", "RHR +5 = overtrained") without those caveats.
4. **Distribution is a principle, not a recipe.** Training age, volume, life stress, and phase
decide the intensity distribution — see `references/periodization.md`.
5. **Don't over-transfer.** Keep discipline-specific numbers labelled; small-n elite XCO data does
not automatically apply to masters marathon riders.
+51
View File
@@ -0,0 +1,51 @@
# Durability field test — fatigued-state power on a fixed hill
A repeatable field test for **fatigue resistance**: how much of your fresh power survives after
substantial work. Fatigued-state power discriminates real-world cycling performance better than
fresh power (see `references/durability.md` and `references/citations.md`).
> ⚠️ **Under-researched dose.** The *concept* is well supported; the *optimal* kJ pre-load and
> effort length are not standardized. Treat the numbers below as a sensible, repeatable default —
> hold them **constant** across tests so the comparison is valid, and track your own response.
## The protocol
**Fresh baseline (do once, on a rested day):**
- Warm up, then a maximal **1-minute effort** on your chosen fixed hill.
- Record: average power, the segment, gearing, and conditions. This is your *fresh* anchor.
**Fatigued test (the actual durability measure):**
1. Ride until you have accumulated **~1,500 kJ of work** (typically ~2.5 h; read the kJ total from
the MCP `get_activity_*` data / head unit — do **not** estimate it by feel). Keep this ride
mostly endurance so the fatigue is from *duration*, not a second hard effort.
2. Immediately do the **same 1-minute maximal effort on the same hill**, same gearing.
3. Record average power.
**The number that matters:**
```
Durability % = fatigued 1-min power ÷ fresh 1-min power × 100
```
Higher = more durable. Track the *trend* across a season, not a single value.
## Keep it a valid comparison (hold these constant)
| Variable | Why it must be fixed |
|---|---|
| The hill / segment & gearing | Grade and cadence change the powerspeed relationship |
| The **1,500 kJ** pre-load | The whole point is matched accumulated work |
| Nutrition during the pre-load | Glycogen status drives fatigued power; fuel it consistently |
| Time of day, rough temperature | Heat and circadian effects move power (`references/data-confounds.md`) |
## Reading it
- **Prescribe and judge from power, not HR.** HR after 1,500 kJ is confounded by cardiac drift,
heat, and fueling — use it only as a secondary decoupling signal (`references/data-confounds.md`).
- A rising durability % across a block, with fresh power flat or up, is the signal you want.
- A durability % that only holds when overall training load is high is *expected* — durability
depends on sustained load, unlike fresh power (see Spragg et al. in `references/citations.md`).
## Logging it back to Intervals.icu
Record the fresh and fatigued efforts as tagged activities/intervals, or note the durability % in
the activity message / wellness comment, so the MCP server can retrieve the series later. This
skill does not store data — Intervals.icu does.
+62
View File
@@ -0,0 +1,62 @@
# Plan template — base mesocycle (backward-mapped from an A-race)
A fill-in skeleton for a **base** block. This is a *knowledge template*, not a calculator — pull
every number (current CTL/ATL/TSB, FTP, MAP, TSS) from the Intervals.icu MCP server and reason with
the logic in `references/periodization.md`.
## Step 0 — anchor to the A-race (backward mapping)
```
A-race date: __________
Weeks until A-race: __________
Race demands: (road/TT? MTB/XCO? marathon? — see references/mtb-xco-demands.md)
Target race-week TSB: +5 to +15 (see periodization.md → taper)
Current CTL / ATL / TSB: ____ / ____ / ____ (from MCP get_athlete_summary)
```
Work **backwards**: peak → build → base. Base's job is to raise sustainable CTL and aerobic
durability so the build block has something to sharpen.
## Step 1 — mesocycle rhythm
| Athlete profile | Loading rhythm |
|---|---|
| Younger / high recoverability | **3:1** (3 build weeks : 1 recovery week) |
| **Masters / higher life stress** | **2:1** (2 build : 1 recovery) — favors recovery |
Pick one and hold it. Recovery weeks are ~4060% of the preceding load week's TSS.
## Step 2 — weekly shape (base phase)
Base is **mostly low intensity with a small hard dose kept alive.** Distribution is a principle,
not a recipe (Seiler — see `references/periodization.md`): let volume, training age, and life
stress set the exact split.
```
Weekly TSS target: ____ (ramp CTL ~37 pts/week; see periodization.md → CTL ramp)
Long endurance ride: 1 × ____ h (durability driver — see references/durability.md)
Endurance / Z2 rides: __ × ____ h
Aerobic-support intensity: 1 × threshold OR sub-threshold session (keep top-end from decaying)
Strength: 2 × /week heavy (see strength-for-cyclists.md; from-zero ramp if new)
Recovery / off: as needed
```
## Step 3 — build in durability early
- Progressively lengthen the long ride; late in base, place **fatigued-state efforts late** in the
long ride (hard work after accumulated kJ) — see `references/durability.md`.
- Fuel these to spare glycogen; the point is durability, not depletion.
- Schedule the durability field test (`field-test-durability.md`) at the **start and end** of base
to measure the block.
## Step 4 — strength through base
- Base is the ideal time to build heavy-strength capacity: 2×/week, heavy compound lifts, 36 reps.
- Sequence strength-first or on separate days to mute interference (`references/strength-for-cyclists.md`).
- Plan to **preserve** (not abandon) strength into build/in-season — 1×/week maintenance.
## Checkpoints (pull from MCP, judge with the skill)
- [ ] CTL ramp within target (not runaway) — `get_athlete_summary`
- [ ] Recovery weeks actually recovered — wellness trend, `references/data-confounds.md`
- [ ] Durability % improving across the block — `field-test-durability.md`
- [ ] Strength load progressing — logged sessions
+66
View File
@@ -0,0 +1,66 @@
# Plan template — build block (VO2 + durability + strength)
A fill-in skeleton for a **build** mesocycle that sharpens the aerobic engine while preserving the
base's durability and strength gains. A *knowledge template*, not a calculator — pull all metrics
(CTL/ATL/TSB, FTP, MAP, TSS) from the Intervals.icu MCP server; reason with the referenced docs.
## Position in the season
Build sits between base and peak (backward-mapped from the A-race — see
`assets/plan-template-base.md` and `references/periodization.md`). Its job: raise sustained power at
and above threshold, add race-specific top-end, and keep durability from base intact.
```
Weeks of build: __________
Weeks until A-race: __________
Current CTL / ATL / TSB: ____ / ____ / ____ (MCP get_athlete_summary)
Primary limiter this block: (VO2max? threshold? repeatability? — pick ONE emphasis)
Race demands: (road/TT steady? MTB/XCO intermittent? — mtb-xco-demands.md)
```
## Mesocycle rhythm
Same as base: **3:1** (higher recoverability) or **2:1** (masters / high life stress). Build weeks
carry more *intensity*, so recovery weeks matter more, not less.
## Weekly shape (build phase)
Fewer but sharper hard sessions. **Getting enough quality hard sessions in tends to matter more
than the exact polarized-vs-pyramidal label** — a heuristic grounded in Seiler 2024, not a
quantified law (see `references/periodization.md`). A common shape:
```
VO2max session: 12 × /week (see references/vo2max-intervals.md for rep length / work:rest)
Threshold / race-specific: 1 × /week (or fold into the durability ride for MTB)
Long durability ride: 1 × ____ h with hard efforts placed LATE (references/durability.md)
Endurance / Z2: fill remaining volume — protect the low end
Strength (maintenance): 1 × /week heavy, low volume (references/strength-for-cyclists.md)
Recovery / off: as needed
```
### VO2max prescription (from `references/vo2max-intervals.md`)
- Goal is **maximizing time ≥90% VO2max**, not just "going hard."
- **No rep length is proven superior in cycling.** Default to **medium reps (~24 min, near the
pooled ~140 s optimum)** at ~0.85 work:rest; use short (30/15 s) or long (45 min) by athlete and
goal. Do not assume "longer is better" — see the modality conflict in `references/vo2max-intervals.md`.
- Prescribe from **power**; for MTB, HR will lag and mislead (`references/data-confounds.md`).
## Keep durability alive
- Maintain at least one long ride; add fatigued-state efforts late (hard work after accumulated
kJ). Durability decays if overall load drops (Spragg et al. — `references/citations.md`).
- Re-run the durability field test (`assets/field-test-durability.md`) at block end to confirm it
held while you added intensity.
## Preserve strength (don't drop it)
- **1×/week heavy maintenance** retains in-season strength gains; interference is muted with
strength-first/separate-day sequencing and at older age (`references/strength-for-cyclists.md`).
## Checkpoints (pull from MCP, judge with the skill)
- [ ] VO2 sessions actually spending time ≥90% VO2max (power sustained across reps) — streams/intervals
- [ ] TSB not chronically buried — `get_athlete_summary`; screen wellness (`data-confounds.md`)
- [ ] Durability % holding or rising — `field-test-durability.md`
- [ ] Race-specific demand rehearsed (steady TT vs intermittent MTB) — `mtb-xco-demands.md`
- [ ] Strength maintained — logged sessions
+195
View File
@@ -0,0 +1,195 @@
# Master citation list
The single source of truth for every quantitative claim in this skill. Each entry: full citation,
PMID/DOI, and a **confidence flag** from verification against PubMed / DOI resolvers.
**Confidence key:**
-**Confirmed** — PMID and/or DOI verified; title, authors, journal internally consistent.
- ⚠️ **Confirmed metadata, claim = commonly-cited/approximate** — the paper exists as cited, but the
exact number attributed to it is widely-repeated rather than verified word-for-word in the source.
-**Not found** — could not be confirmed; **do not cite as fact.**
Verified as of 2026-07-20.
---
## Durability / fatigue resistance
**✅ Muriel et al. 2022** — fatigued-state power differentiates riders; fresh power does not.
Muriel X, Mateo-March M, Valenzuela PL, Zabala M, Lucia A, Pallarés JG, Barranco-Gil D. *Durability
and repeatability of professional cyclists during a Grand Tour.* Eur J Sport Sci. 2022;22(12):
17971804. **PMID 34586952 · DOI 10.1080/17461391.2021.1987528.**
**✅ Spragg, Leo & Swart 2023 (training characteristics)** — durability tracks accumulated
volume/load; fatigued profile varies more than fresh across a season. *This is the primary "load
dependency" cite.* Spragg J, Leo P, Swart J. *The relationship between training characteristics and
durability in professional cyclists across a competitive season.* Eur J Sport Sci. 2023;23(4):
489498. **PMID 35239466 · DOI 10.1080/17461391.2022.2049886.**
> The crisp "reduced load maintains fresh power; sustained load maintains durability" phrasing is
> Spragg's applied *interpretation* of this data — attribute as commentary, not a quoted result.
**✅ Spragg, Leo & Swart 2023 (physiological characteristics)** — physiological correlates of
durability (higher VO2max, gross efficiency, fat oxidation). Spragg J, Leo P, Swart J. *The
Relationship between Physiological Characteristics and Durability in Male Professional Cyclists.*
Med Sci Sports Exerc. 2023;55(1):133140. **PMID 35977108 · DOI 10.1249/MSS.0000000000003024.**
**✅ Maunder et al. 2021** — canonical definition of durability as a distinct profiling quality.
Maunder E, Seiler S, Mildenhall MJ, Kilding AE, Plews DJ. *The Importance of 'Durability' in the
Physiological Profiling of Endurance Athletes.* Sports Med. 2021;51(8):16191628.
**PMID 33886100 · DOI 10.1007/s40279-021-01459-0.**
---
## MTB / XCO demands
**✅ Hays et al. 2018** — XCO demand profile (~25% time above MAP; hard start); HR/power/VO2
dissociation (VO2 high on descents, %VO2max uncorrelated with %HRmax/%MAP). Hays A, Devys S, Bertin
D, Marquet LA, Brisswalter J. *Understanding the Physiological Requirements of the Mountain Bike
Cross-Country Olympic Race Format.* Front Physiol. 2018;9:1062.
**PMID 30158873 · DOI 10.3389/fphys.2018.01062.**
**✅ Prinz et al. 2021** — corroborating hard-number demand data (~30% top zone; 334 efforts ~4.3 s
at ~135% MAP). Prinz B, et al. *(power-profile / demands of XCO)* Int J Sports Physiol Perform. 2021.
**PMID 33848975 · DOI 10.1123/ijspp.2020-0758.**
**✅ Protzen et al. 2026** — systematic review: contemporary XCO shifted toward greater anaerobic
contribution while maintaining high aerobic demand; ~¼ race time above MAP. Protzen G, Inoue A,
Buzzachera CF, Doma K, Devantier-Thomas B, Herrero-Molleda A, García-López J, Boullosa D. *The
Physiology of Contemporary Olympic Cross-Country Mountain Biking: A Systematic Review.* Sports Med
Open. 2026;12:16. **PMID 41739301 · DOI 10.1186/s40798-026-00976-4.**
**✅ Impellizzeri et al. 2005** — aerobic predictors of XCO (mass-normalized threshold power/VO2).
*Frame r ≈ 0.60.9 as "across studies"; the elite-cohort raw VO2max did not separate riders.*
Impellizzeri FM, Marcora SM, Rampinini E, Mognoni P, Sassi A. *Correlations between physiological
variables and performance in high level cross country off road cyclists.* Br J Sports Med.
2005;39(10):747751. **PMID 16183772 · DOI 10.1136/bjsm.2004.017236.**
**✅ Inoue et al. 2012** — anaerobic power predicts XCO race time (r = 0.79, p = 0.006). Inoue A,
Sá Filho AS, Mello FCM, Santos TM. *Relationship between anaerobic cycling tests and mountain bike
cross-country performance.* J Strength Cond Res. 2012;26(6):15891593.
**PMID 21912290 · DOI 10.1519/JSC.0b013e318234eb89.**
**✅ Sánchez-Jiménez et al. 2025** — fatigue-decline magnitudes: Top-10 ~610% vs lower ~1520%.
Sánchez-Jiménez L, Javaloyes A, Peña-González I, Moya-Ramón M, Mateo-March M. *Record Power Profile
in Elite Olympic Cross-Country Mountain Bike Cyclists: Normative Values and Fatigue Effects.* Scand
J Med Sci Sports. 2025;35(11):e70170. **PMID 41285697 · DOI 10.1111/sms.70170.**
**✅ Novak et al. 2018** — marathon (4-h) MTB predictors differ from lap XCO. Novak AR, Bennett KJM,
Fransen J, Dascombe BJ. *Predictors of performance in a 4-h mountain-bike race.* J Sports Sci.
2018;36(4):462468. **PMID 28406361 · DOI 10.1080/02640414.2017.1313999.**
---
## Strength training (incl. masters)
**✅ Llanos-Lagos et al. 2026 (epub 2025)** — meta-analysis, 17 studies / 262 cyclists: heavy
strength improves efficiency, anaerobic power, TT performance; **no VO2max effect**. Llanos-Lagos C,
Ramírez-Campillo R, Sáez de Villarreal E. *Heavy strength training effects on physiological
determinants of endurance cyclist performance: a systematic review with meta-analysis.* Eur J Appl
Physiol. 2026;126(1):193222. **PMID 40632222 · DOI 10.1007/s00421-025-05883-2.** *(Certainty of
evidence noted as low by the authors.)*
**✅ Cadore et al. 2013 (epub 2012)** — strength-first sequencing yields greater strength gains in
the elderly (~35% vs ~22%). Cadore EL, Izquierdo M, Pinto SS, et al. *Neuromuscular adaptations to
concurrent training in the elderly: effects of intrasession exercise sequence.* Age (Dordr).
2013;35(3):891903. **PMID 22453934 · DOI 10.1007/s11357-012-9405-y.** *(This is the "Cadore 2012"
sequencing cite.)*
**✅ Cadore & Izquierdo 2013** — interference manageable/muted in older adults except at high
volume/frequency. Cadore EL, Izquierdo M. *How to simultaneously optimize muscle strength, power,
functional capacity, and cardiovascular gains in the elderly: an update.* Age (Dordr).
2013;35(6):23292344. **PMID 23288690 · DOI 10.1007/s11357-012-9503-x.**
**⚠️ English & Paddon-Jones 2010** — commonly cited origin of "~8% muscle loss/decade after 40."
*Exact figure not verified in abstract; treat as commonly-cited/approximate.* English KL, Paddon-
Jones D. *Protecting muscle mass and function in older adults during bed rest.* Curr Opin Clin Nutr
Metab Care. 2010;13(1):3439. **PMID 19898232 · DOI 10.1097/MCO.0b013e328333aa66.**
**✅ Volpi, Nazemi & Fujita 2004** — sarcopenia mechanisms; resistance/aerobic training as
countermeasure (fiber-type-fastest specifics not verbatim-confirmed). Volpi E, Nazemi R, Fujita S.
*Muscle tissue changes with aging.* Curr Opin Clin Nutr Metab Care. 2004;7(4):405410.
**PMID 15192443 · DOI 10.1097/01.mco.0000134362.76653.b2.**
**✅ Cruz-Jentoft et al. 2019 (EWGSOP2)** — consensus: sarcopenia centers on muscle strength;
resistance training recommended. *Strongest confirmed cite for "loaded resistance is the primary
countermeasure."* Cruz-Jentoft AJ, et al. *Sarcopenia: revised European consensus on definition and
diagnosis.* Age Ageing. 2019;48(1):1631. **PMID 30312372 · DOI 10.1093/ageing/afy169.**
---
## VO2max intervals
**✅ Yang, Wang & Guan 2025** — network meta-analysis, 51 studies / 1,261 athletes: inverted-U
dose-response; optimum ~140 s work, work:rest ~0.85. *Weighted toward running-based HIIT.* Yang Q,
Wang J, Guan D. *Comparison of different interval training methods on athletes' oxygen uptake: a
systematic review with pairwise and network meta-analysis.* BMC Sports Sci Med Rehabil.
2025;17(1):156. **PMID 40605061 · DOI 10.1186/s13102-025-01191-6.**
**✅ Fleckenstein, Braunstein & Walter 2025** — *running*: long (3-min) intervals accumulate more
time >90% VO2max than intensified 30-s intervals. Fleckenstein D, Braunstein H, Walter N. *Faster
intervals, faster recoveries — intensified short VO2max running intervals are inferior to
traditional long intervals in terms of time spent above 90% VO2max.* Front Sports Act Living.
2025;6:1507957. **PMID 39835194 · DOI 10.3389/fspor.2024.1507957.**
**✅ Rønnestad & Hansen 2016** — *cycling, opposite result*: 30-s intervals induced more time ≥90%
VO2peak than longer intervals. Rønnestad BR, Hansen J. *Optimizing Interval Training at Power Output
Associated With Peak Oxygen Uptake in Well-Trained Cyclists.* J Strength Cond Res. 2016;30(4):
9991006. **PMID 23942167 · DOI 10.1519/JSC.0b013e3182a73e8a.** *(Often mis-cited as 2013 = epub.)*
**✅ Rønnestad et al. 2020** — *cycling*: short (30/15 s) beat effort-matched long (5-min) intervals
over 3 weeks (+4.7% 20-min power) in elite cyclists. Rønnestad BR, Hansen J, Nygaard H, Lundby C.
*Superior performance improvements in elite cyclists following short-interval vs effort-matched
long-interval training.* Scand J Med Sci Sports. 2020;30(5):849857.
**PMID 31977120 · DOI 10.1111/sms.13627.**
**✅ Almquist et al. 2020** — effort-matched acute systemic/muscular responses favor short intervals.
Almquist NW, Nygaard H, Vegge G, Hammarström D, Ellefsen S, Rønnestad BR. *Systemic and muscular
responses to effort-matched short intervals and long intervals in elite cyclists.* Scand J Med Sci
Sports. 2020;30(7):11401150. **PMID 32267032 · DOI 10.1111/sms.13672.**
**✅ Rønnestad et al. 2021** — microcycle shock-block: short intervals → superior adaptations.
Rønnestad BR, Øfsteng SJ, Zambolin F, Raastad T, Hammarström D. *Superior Physiological Adaptations
After a Microcycle of Short Intervals Versus Long Intervals in Cyclists.* Int J Sports Physiol
Perform. 2021;16(10):14321438. **PMID 33735833 · DOI 10.1123/ijspp.2020-0647.**
> **Caveat on the cycling short-interval body of work (Rønnestad 2016/2020/2021 + Almquist 2020):**
> the short-interval superiority comes chiefly from a **single research group**, and its adaptation
> claims are challenged by effort-matched work: when **total work duration** is matched, the
> advantage reportedly disappears (attributed to a Seiler-group study — **unpublished /
> secondary-source, low evidence tier, not cited as fact**). Present short-interval superiority as a
> *lab-consistent but not independently settled* finding, not a cycling consensus. See
> `vo2max-intervals.md`.
**❌ "Effort-matched cycling replication, no difference" (Seiler group)** — **NOT VERIFIABLE as a
primary source.** Referenced only via secondary/coaching sources as an unpublished master's thesis
(~30 cyclists, VO2max ~64, total-work-matched, no short-vs-long difference). Used only to *temper*
overconfidence in the short-interval side; **do not cite as established evidence.**
---
## Distribution / periodization philosophy
**✅ Seiler 2024** — "long game, not epic workouts"; HIIT is not an acute-maximization problem;
polarized training as a context-dependent principle. Peer-reviewed Perspective (open access). Seiler
S. *It's about the long game, not epic workouts: unpacking HIIT for endurance athletes.* Appl
Physiol Nutr Metab. 2024;49(11):15851599. **PMID 39079169 · DOI 10.1139/apnm-2024-0012.**
**✅ Sun, Yu et al. 2025** — review of training-intensity-distribution models: **no single model
universally superior**; adapt to sport/phase/athlete. *(Use for the "distribution is context-
dependent" point — it does NOT claim frequency > distribution.)* Sun Q, Yu Y, Cui J, Lin S, Wang X,
Zhou T. *Recent advances in training intensity distribution theory for cyclic endurance sports.*
Front Physiol. 2025;16:1657892. **PMID 41169886 · DOI 10.3389/fphys.2025.1657892.**
**❌ "Yu et al. 2025" (frequency > distribution)** — **NOT FOUND.** No PubMed paper with Yu as first
author making this specific claim could be located. **Do not cite.** The nearest real paper
(Sun/Yu 2025, above) does not support "frequency outweighs distribution." Ground the frequency point
in Seiler 2024 instead, and label it a heuristic, not a quantified finding.
---
## Notes on verification method
All ✅ identifiers were read from PubMed record pages and cross-checked against DOI resolvers by
independent verification agents on 2026-07-20. Where a claim's *number* is widely repeated but not
verbatim in the source abstract, it is marked ⚠️ and the reference docs say so inline. No identifier
in this list was fabricated; the one unlocatable citation is explicitly marked ❌.
+76
View File
@@ -0,0 +1,76 @@
# Data confounds — when to trust HR, RHR, HRV, and decoupling
**Load this doc when:** interpreting heart rate, resting HR, HRV, sleep, or aerobic decoupling —
i.e. any time a number is about to drive a training decision.
**Data/knowledge split:** MCP gives you the raw and computed signals (HR streams, RHR, HRV, sleep,
readiness, decoupling). This doc governs **whether that signal is trustworthy today** and forbids
naive single-number rules.
---
## Core stance: power governs; HR is conditional
**Prescribe from power.** Heart rate is a *response* variable contaminated by many non-training
factors. Use HR only where it is genuinely informative:
- **Aerobic decoupling on steady rides** (Pw:HR drift) — valid only on steady efforts.
- **Recovery trends** (RHR, HRV) — as *trends*, screened for the confounds below.
Do **not** use HR to prescribe or judge intensity for **intermittent** efforts — see the MTB
dissociation below.
## The confounds (screen every HR-based signal against these)
Any of these can move HR, RHR, HRV, or decoupling independent of fitness or fatigue:
| Confound | Effect | Implication |
|---|---|---|
| **Heat / dehydration** | ↑ HR, ↑ cardiac drift, ↑ decoupling | High decoupling on a hot ride ≠ poor fitness |
| **Alcohol** (prior evening) | ↑ RHR, ↓ HRV, disrupted sleep | A bad HRV morning after drinking is not overtraining |
| **Travel** (jet lag, altitude, transit) | ↑ RHR, ↓ HRV, poor sleep | Expected; not a training signal |
| **Poor / short sleep** | ↑ RHR, ↓ HRV, ↑ perceived effort | Fatigue signal, but from sleep — adjust the day, don't panic |
| **Illness / stress / caffeine timing** | ↑ RHR, altered HRV | Interpret in context, not in isolation |
| **Intermittent effort (MTB)** | HR lags surges; VO2 stays high on descents | HR mis-reads MTB intensity entirely (see below) |
## ⚠️ The MTB / intermittent-effort dissociation
In intermittent off-road riding, **HR, power, and VO2 dissociate**: VO2 stays elevated on descents
where power drops, and HR lags the short bursts that define the effort. In XCO, %VO2max did **not**
correlate with %HRmax or %MAP (Hays et al. 2018, *Front Physiol* 9:1062; PMID 30158873;
DOI 10.3389/fphys.2018.01062). **For MTB, HR is unreliable for intensity — power governs.** See
`mtb-xco-demands.md`.
## Do NOT hardcode naive rules
These single-number rules are **wrong as written** because they ignore the confounds above:
- ❌ "**Decoupling < 5% = fresh / fit**." Decoupling is inflated by heat, dehydration, fueling, and
any non-steady effort. It is only interpretable on a **steady** ride in **controlled conditions**,
and even then as a **trend**, not a threshold. High decoupling on a hot, long, or surgey ride tells
you little about fitness.
- ❌ "**RHR + 5 bpm = overtrained**." A single elevated RHR morning is far more often alcohol,
short sleep, travel, heat, or illness. Overtraining/non-functional overreaching is a **multi-signal,
multi-day** picture (RHR trend + HRV trend + performance + mood + sleep + training load), never one
morning's number.
**The correct pattern:** look at **trends across days**, **corroborate across signals** (RHR + HRV +
sleep + performance + subjective), and **explain-away confounds first** before attributing a change
to training fatigue.
## Using decoupling for durability (the one HR job that's valid)
On a **steady** endurance ride, Pw:HR decoupling is a reasonable aerobic-durability signal: as
aerobic fitness/durability improves, HR drifts less for the same power late in a long ride. Use it:
- Only on **steady** rides (not intervals, not MTB).
- Only when **conditions are controlled** (not a heat outlier, not dehydrated, not post-alcohol).
- As a **trend** across comparable rides, alongside the power-based durability field test
(`../assets/field-test-durability.md`), which is the more direct measure.
## Practical workflow
1. Pull the signal from MCP (HR stream, RHR, HRV, sleep, decoupling, readiness).
2. **Screen for confounds** (table above). If a confound is present, discount the signal.
3. **Corroborate** across signals and across days before acting.
4. **Prescribe from power**; use HR only for steady decoupling and recovery trends.
5. When signals conflict and confounds are present, **default to caution** (easier day) rather than
trusting one number in either direction.
+76
View File
@@ -0,0 +1,76 @@
# Durability / fatigue resistance
**Load this doc when:** the question is about fatigue resistance, why late-race power fades,
training the ability to hold power deep into long efforts, or running the durability field test.
**Data/knowledge split:** the MCP server gives you the kJ, power curves, and fatigued-vs-fresh
efforts. This doc explains *why fatigued-state power matters* and *how to train it*.
---
## Durability is a distinct, trainable quality
"Durability" is the time of onset and the magnitude of deterioration in physiological-profiling
variables (thresholds, efficiency, power) over the course of prolonged exercise — a quality that
should be profiled **separately** from fresh-state numbers, because two riders with identical fresh
profiles can fall apart very differently after several hours (Maunder et al. 2021, *Sports Med*
51(8):16191628; PMID 33886100; DOI 10.1007/s40279-021-01459-0).
### Why it matters more than fresh power
- In professional cyclists across a Grand Tour, **fresh** mean-maximal power did **not** separate
WorldTour from ProTeam riders — but as work accumulated (0 → 35 kJ·kg⁻¹), WorldTour riders held
higher power. **Fatigued-state power differentiated performance; fresh power did not**
(Muriel et al. 2022, *Eur J Sport Sci* 22(12):17971804; PMID 34586952;
DOI 10.1080/17461391.2021.1987528).
- The **fatigued** power profile varies far more across a season than the fresh profile, and it
tracks with **training characteristics (accumulated volume/load)** — meaning durability is
something you build with training, not a fixed trait (Spragg, Leo & Swart 2023, *Eur J Sport Sci*
23(4):489498; PMID 35239466; DOI 10.1080/17461391.2022.2049886).
## The load dependency (the key training implication)
**Durability depends on maintaining high overall training load, whereas fresh power can be held on
reduced load.** You can taper volume and keep your 5-min power; you cannot taper volume for long
and keep your *fatigued* 5-min power. This is the empirical thrust of the Spragg training-
characteristics paper (PMID 35239466); the crisp "reduced load keeps fresh power, sustained load
keeps durability" phrasing is Spragg's applied interpretation of that data — cite it as such.
Physiological correlates of *who* is durable (higher VO2max, better gross efficiency, higher fat-
oxidation) come from the companion paper (Spragg, Leo & Swart 2023, *Med Sci Sports Exerc*
55(1):133140; PMID 35977108; DOI 10.1249/MSS.0000000000003024) — useful for understanding
mechanism, but the *trainable lever* is sustained load + the practices below.
## How to train durability
1. **Long-term consistency and high volume.** Durability is a load-dependent adaptation — it is
built over blocks and lost when load drops. Protect the long ride.
2. **Prolonged sessions with hard efforts placed late (fatigued-state intervals).** Put the quality
work *after* accumulated kilojoules, not at the fresh start of the ride — you are specifically
training the fatigued state that discriminates performance.
3. **Glycogen-sparing nutrition.** Fuel long sessions to spare glycogen; the goal is training the
durable state under realistic fueling, not chronic depletion. (Fatigued power is glycogen-
sensitive — see the fueling caveat in `data-confounds.md` for why HR is unreliable here.)
> ⚠️ **Under-researched — track individual response.** The *mechanism* (load-dependent fatigue
> resistance) is well supported, but the **optimal durability dose** — how much accumulated work,
> how often, how late to place efforts — is not established. **Do not assume a fixed protocol.**
> Track each athlete's fatigued-state response and titrate.
## Measure it: the fatigued-state field test
Use `../assets/field-test-durability.md`. In brief:
- Establish a **fresh** 1-min max on a fixed hill.
- On a separate day, accumulate **~1,500 kJ (~2.5 h)** of mostly-endurance riding, then repeat the
**same 1-min max on the same hill**.
- `Durability % = fatigued ÷ fresh × 100`. Track the trend across a block.
- Hold the hill, gearing, kJ pre-load, and fueling **constant** so the comparison is valid.
- **Judge from power, not HR** — HR after 1,500 kJ is confounded by drift, heat, and fueling
(`data-confounds.md`).
## Discipline note
Durability matters for both road/TT and MTB, but **keep absolute numbers discipline-specific.** The
1,500 kJ anchor is a sensible generic default, not a validated cross-discipline constant; a masters
marathon-MTB rider and an elite road pro do not share a durability dose. See `mtb-xco-demands.md`
for how fatigue resistance shows up specifically in off-road racing.
+73
View File
@@ -0,0 +1,73 @@
# MTB / XCO demand profile (and why power governs off-road)
**Load this doc when:** planning for mountain-bike racing, deciding MTB-specific workouts, or
questioning whether HR is trustworthy off-road.
**Data/knowledge split:** MCP gives you the power streams, HR, and interval stats from a ride. This
doc explains what the *demand profile* is and why, for MTB, **you prescribe and judge from power,
not HR.**
---
## The demand profile: intermittent, explosive, anaerobically shifted
XCO (Olympic cross-country) racing is **intermittent and explosive**: a hard start followed by
repeated high-intensity bursts, with roughly **25% of race time spent above maximal aerobic power
(MAP)** in brief 510 s efforts, on top of a hard first-lap start (Hays et al. 2018, *Front Physiol*
9:1062; PMID 30158873; DOI 10.3389/fphys.2018.01062). A corroborating dataset reports ~30% of time
in the top zone across 334 efforts averaging ~4.3 s at ~135% MAP (Prinz et al. 2021, *IJSPP*;
PMID 33848975).
Contemporary XCO has **shifted toward greater anaerobic contribution while maintaining high aerobic
demand** — you need both engines (Protzen et al. 2026, *Sports Med Open* 12:16; PMID 41739301;
DOI 10.1186/s40798-026-00976-4).
## Both aerobic and anaerobic power independently predict performance
- **Aerobic:** body-massnormalized aerobic/threshold indices correlate strongly with XCO race time.
Reported correlations across the literature sit in the **r ≈ 0.60.9** range, but note the classic
elite-cohort study found raw VO2max/peak power did **not** separate riders — the significant
correlations were for **mass-normalized threshold** power/VO2 (Impellizzeri et al. 2005,
*Br J Sports Med* 39(10):747751; PMID 16183772; DOI 10.1136/bjsm.2004.017236). **Frame the
0.60.9 as "across studies," not one clean value.**
- **Anaerobic:** maximal power in a 5×30 s Wingate protocol correlated **r = 0.79** (p = 0.006) with
XCO race time — anaerobic power independently predicts performance (Inoue et al. 2012, *J Strength
Cond Res* 26(6):15891593; PMID 21912290; DOI 10.1519/JSC.0b013e318234eb89). *(The correlation is
negative because higher power = lower/faster race time.)*
**Training implication:** develop both. Aerobic base/VO2max (`vo2max-intervals.md`) *and* anaerobic/
repeated-sprint power and strength (`strength-for-cyclists.md`). Neither alone covers the demand.
## Fatigue resistance separates the field
Higher-performing MTB riders decline **less** under fatigue. Across 693 elite male XCO race files,
power under fatigue fell ~**610%** in Top-10 riders vs ~**1520%** in lower-ranked riders (p from
0.008 to <0.001) — durability is decisive off-road (Sánchez-Jiménez et al. 2025, *Scand J Med Sci
Sports* 35(11):e70170; PMID 41285697; DOI 10.1111/sms.70170). Train it via `durability.md`.
## ⚠️ The HR caveat (read this before prescribing MTB intensity by HR)
In intermittent MTB racing, **HR, power, and VO2 dissociate**:
- **VO2 stays high on descents where power drops** — you're still consuming oxygen while barely
pedaling, so power under-reads true metabolic cost on descents.
- **HR lags short efforts** — a 510 s surge is over before HR responds, so HR under-reads the
intensity of the bursts that define the sport.
- In XCO, %VO2max did **not** correlate with %HRmax or %MAP (Hays et al. 2018, PMID 30158873).
**Therefore: power governs MTB intensity; HR is unreliable for it.** Prescribe intervals, pacing,
and race targets from power. Use HR only where it is valid — steady-state durability decoupling and
recovery trends — and always screen the confounds in `data-confounds.md`. Do **not** set MTB
interval targets or judge burst efforts by heart rate.
## Discipline nuance: marathon/point-to-point ≠ lap XCO
A 4-hour marathon MTB has **different performance predictors and pacing** than lap-based XCO
(Novak et al. 2018, *J Sports Sci* 36(4):462468; PMID 28406361; DOI 10.1080/02640414.2017.1313999).
Marathon/point-to-point events (e.g. Iceman) are steadier and more sustained; lap XCO is punchier
and more repeatedly supra-MAP.
> ⚠️ **Don't over-transfer.** The XCO numbers above come largely from **small-n elite** samples.
> A masters marathon rider does **not** inherit an elite XCO rider's ~25%-above-MAP profile or their
> exact fatigue-decline percentages. Keep absolute numbers **discipline- and level-specific**, use
> the *principles* (both engines matter; power governs; durability decides), and **track the
> individual's own race files** via the MCP data rather than importing elite constants.
+83
View File
@@ -0,0 +1,83 @@
# Periodization, distribution & taper
**Load this doc when:** structuring a season, choosing an intensity distribution, setting a CTL
ramp, or planning an A-race taper.
**Data/knowledge split:** MCP supplies CTL / ATL / TSB, the load ramp, and TSS. This doc supplies
the logic for *how fast to ramp*, *how to distribute intensity*, and *what TSB to target*.
---
## Distribution is a principle, not a recipe
Do not treat polarized (or pyramidal) training as a fixed formula. The right distribution is
**context-dependent** — set by training age, weekly volume, life stress, and the current phase.
The framing to internalize: effective endurance training is **"the long game, not epic workouts."**
HIIT should not be prescribed as an acute-response "maximization problem"; what matters is the
**long-term integration** of intensity, duration, and **frequency**, adapted to the athlete's
context (Seiler 2024, *Appl Physiol Nutr Metab* 49(11):15851599; PMID 39079169;
DOI 10.1139/apnm-2024-0012 — a peer-reviewed Perspective, open access).
**On "frequency matters more than the exact distribution":** this is a reasonable working heuristic
consistent with Seiler's long-game argument, but note the honest state of evidence — a 2025 review
of training-intensity-distribution models concludes **no single model is universally superior** and
that model choice must be adapted to sport, phase, and athlete (Sun, Yu et al. 2025, *Front Physiol*
16:1657892; PMID 41169886; DOI 10.3389/fphys.2025.1657892). Treat "get enough quality hard sessions
in, don't obsess over polarized-vs-pyramidal labels" as a defensible principle, **not** a
quantified finding.
> **Citation honesty note:** a specific "Yu et al. 2025" paper claiming *frequency of hard sessions
> outweighs distribution* could **not** be located in PubMed. Do not cite one. Ground the point in
> Seiler 2024 (the long-game argument) and the Sun/Yu 2025 review (no model universally superior).
> See `citations.md`.
## Standard periodization: base → build → peak
Work **backward from the A-race** (backward mapping). Each phase sets up the next.
| Phase | Primary job | Emphasis |
|---|---|---|
| **Base** | Raise sustainable CTL, aerobic base, **durability**, and strength capacity | High volume, mostly low intensity, small hard dose kept alive; build heavy strength |
| **Build** | Sharpen threshold & VO2max; add race-specific top-end; preserve durability & strength | Fewer, sharper hard sessions; strength → maintenance |
| **Peak/Taper** | Shed fatigue, keep fitness, arrive fresh | Reduce volume, keep some intensity, hit TSB target |
Templates: `../assets/plan-template-base.md`, `../assets/plan-template-build.md`.
## Mesocycle rhythm
| Athlete | Rhythm | Note |
|---|---|---|
| Younger / high recoverability | **3:1** (3 load weeks : 1 recovery) | Standard |
| **Masters / higher life stress** | **2:1** (2 load : 1 recovery) | Favor recovery — masters recover slower; the 2:1 protects adaptation |
Recovery weeks ≈ 4060% of the preceding load week's TSS. These are *adaptation* weeks, not lost
time — the fitness is expressed during them.
## CTL ramp guidance
- Ramp **CTL gradually** — a common, conservative guide is **~37 CTL points per week** sustained,
lower for masters or when life stress is high. Faster ramps raise injury/illness/overtraining
risk without proportional benefit.
- Read the actual CTL/ATL/TSB and ramp rate from MCP (`get_athlete_summary`); this doc only tells
you whether the ramp is sane. A runaway ramp with a deeply negative TSB trend is a flag — cross-
check wellness before pushing (`data-confounds.md`).
> ⚠️ **The CTL ramp numbers are heuristics, not laws.** Individual tolerance varies widely —
> **track response** (wellness, performance, durability) rather than forcing a fixed points/week.
## A-race taper & TSB targets
- **Goal:** arrive with fitness intact and fatigue gone — a **positive but not deeply detrained
TSB**. A common target window is **TSB ≈ +5 to +15** on race day (higher for shorter/punchier
events where freshness dominates; lower for long events where fitness retention matters more).
- **How:** cut **volume** substantially over the final 12 weeks while **keeping some intensity**
(short race-specific efforts) so you sharpen rather than go flat. Don't cut intensity to zero.
- **Durability caveat:** durability decays if load drops too far for too long (`durability.md`). For
long/marathon events, taper less aggressively than for short punchy events, or you arrive fresh
but unable to hold late-race power.
- Read TSB from MCP and steer it into the target window; this doc sets the target, MCP measures it.
> ⚠️ **Taper TSB targets are individual.** The +5 to +15 window is a starting point; some riders
> peak flat at +5, others need +1520. **Track how the athlete has raced at known TSB values** and
> personalize.
+87
View File
@@ -0,0 +1,87 @@
# Heavy strength training for cyclists (with a masters focus)
**Load this doc when:** deciding whether/how to add strength work, designing a lifting protocol
for a cyclist, addressing age-related muscle loss, or planning in-season maintenance.
The MCP server does not model strength; this is prescription logic. Log lifts as activities/notes in
Intervals.icu so the load is visible, but the *what and why* lives here.
---
## The evidence: heavy strength helps cycling, without a VO2max penalty
A 2025/2026 systematic review with meta-analysis (**17 studies, 262 cyclists**) found that heavy
strength training significantly improved **cycling efficiency, anaerobic power, and time-trial
performance** versus endurance training alone, with **no significant effect on VO2max** — the gains
come through efficiency and anaerobic power, not aerobic capacity, and crucially **without costing
VO2max** (Llanos-Lagos et al. 2026, *Eur J Appl Physiol* 126(1):193222, epub 2025;
PMID 40632222; DOI 10.1007/s00421-025-05883-2). Authors note the certainty of evidence is low —
the direction is consistent, the magnitude is uncertain.
## The protocol (what the literature actually used)
| Parameter | Prescription |
|---|---|
| **Type** | **Heavy** compound lifts — *not* explosive/plyometric as the primary driver |
| **Lifts** | Squat, deadlift, leg press (bilateral lower-body compounds) |
| **Reps** | **36 reps** per set (heavy end; high load, low rep) |
| **Frequency** | **13 ×/week** |
| **Duration** | Sustained block of **525 weeks** to express benefits |
| **In-season** | **Preserve it** — do not drop strength once racing starts |
The consistent thread across the 17 studies: **heavy, low-rep, compound, sustained, and
maintained.** Short dabbling blocks that get abandoned in-season are not what produced the results.
## Why this matters more for masters athletes
- Adults lose roughly **~8% of muscle mass per decade after age 40** (accelerating later in life),
and **type II (fast-twitch) fibers atrophy fastest** with aging — the exact fibers that power
sprints, surges, and the explosive demands of MTB/XCO.
- The "~8%/decade" figure is widely attributed to English & Paddon-Jones 2010 (*Curr Opin Clin
Nutr Metab Care* 13(1):3439; PMID 19898232) but that exact sentence is **not verified in the
abstract** — treat the specific number as commonly-cited-but-approximate, not gospel. Fiber-type
and countermeasure biology: Volpi, Nazemi & Fujita 2004 (PMID 15192443); consensus definition
and resistance-training recommendation: Cruz-Jentoft et al. 2019 EWGSOP2 (*Age Ageing*
48(1):1631; PMID 30312372). See `citations.md`.
- **Loaded resistance training is the primary proven countermeasure** to this loss. Endurance
riding alone does not defend type II mass.
- **The interference effect is muted at older age**, and further reduced with **strength-first
sequencing.** In elderly men, doing strength *before* endurance within a session produced larger
strength gains (~35% vs ~22%) than the reverse order (Cadore et al. 2013, *Age (Dordr)*
35(3):891903, epub 2012; PMID 22453934). Interference in older adults is manageable except at
high weekly volume/frequency (Cadore & Izquierdo 2013, *Age (Dordr)* 35(6):232944;
PMID 23288690).
**Practical sequencing:** lift on separate days from key bike sessions where possible; if combined,
**strength first**, or put strength on easy/recovery riding days — never before a key VO2 or
threshold session you care about.
## From-zero ramp progression
For a rider new to heavy lifting, build the movement and connective-tissue base **before** loading
to 36RM. Progress by phase, not by calendar — advance only when the current phase's form is clean
and soreness settles within ~48 h.
| Phase | Weeks (guide) | Focus | Sets × reps | Load |
|---|---|---|---|---|
| **0. Movement** | 12 | Learn squat/hinge/press patterns; bodyweight & goblet | 23 × 810 | Very light; groove form |
| **1. Anatomical adaptation** | 24 | Tendons/connective tissue; higher reps | 3 × 1012 | Moderate; ~2 RIR |
| **2. Strength build** | 46 | Transition toward heavy | 34 × 68 | Heavy-ish; ~12 RIR |
| **3. Heavy strength** | ongoing | The evidence-based target | 35 × 36 | Heavy; ~1 RIR, form-limited |
| **4. In-season maintenance** | racing | Retain gains, minimize fatigue | 12 × /wk, 23 × 35 | Heavy, low volume |
*RIR = reps in reserve.* Masters athletes especially should keep 1+ RIR (form-limited, not
failure-limited) to protect joints and recovery.
> ⚠️ **Individualize the ramp.** The *effect* of heavy strength is well established; the ideal
> per-athlete ramp speed, weekly frequency (1 vs 2 vs 3×), and in-season dose are not precisely
> resolved — **track response** (strength progression, riding quality, recovery) and adjust.
## How this integrates with the rest of the plan
- **Base** is the best time to build heavy-strength capacity (2×/week) — see
`../assets/plan-template-base.md`.
- **Build/in-season**: drop to **1×/week heavy maintenance** — see
`../assets/plan-template-build.md`.
- Strength supports the **anaerobic/explosive** side that predicts MTB/XCO performance
(`mtb-xco-demands.md`) and the efficiency that helps steady TT power.
+91
View File
@@ -0,0 +1,91 @@
# VO2max interval optimization
**Load this doc when:** designing high-intensity interval sessions, choosing rep length or
work:rest, or trying to rebuild sustained aerobic power.
**Data/knowledge split:** MCP gives you the power/HR streams and interval stats to *check* whether a
session did what you intended (was power sustained across reps?). This doc gives the *design logic*.
---
## The target: maximize time spent ≥90% VO2max
The organizing principle of VO2max interval design is **accumulating time at or above 90% of
VO2max** — that's the stimulus, not simply "going hard." Design sessions to spend the most quality
minutes in that band that the athlete can repeat and recover from.
## What a large meta-analysis found (dose-response)
A systematic review with pairwise and network meta-analysis (**51 studies, 1,261 athletes**) found
inverted-U dose-response relationships and identified an optimum around **~140 s work duration** and
a **work-to-recovery ratio of ~0.85**, with ~3×/week over 36 weeks as an effective pattern (Yang,
Wang & Guan 2025, *BMC Sports Sci Med Rehabil* 17(1):156; PMID 40605061;
DOI 10.1186/s13102-025-01191-6).
> **Caveat — modality.** Yang 2025 describes its *optimal protocol* as running-based; the abstract
> does not give a cycling-vs-running breakdown across the 51 studies. Treat ~140 s / 0.85 as a
> cross-modal anchor, not a cycling-specific verdict — and note that **~140 s is a *medium* rep
> (~2.3 min): longer than 30s, shorter than the classic 5-min "long" interval.** The pooled optimum
> sits *between* the two poles people usually argue about.
## ⚠️ Rep length is unsettled and protocol-sensitive — not a solved short-vs-long question
A common coaching claim is that **longer reps (35 min) accumulate more time ≥90% VO2max than short
(30s) intervals.** The evidence does not settle this cleanly: it flips by modality, depends heavily
on how the protocols are built, and can wash out when total work is matched. Do **not** present
either "go long" or "go short" as established.
**The direct time-at-VO2max studies disagree by modality:**
| Modality | Finding | Source |
|---|---|---|
| **Running (acute)** | 3-min intervals accumulated **more** time >90% VO2max (~328 s) than intensified 30-s intervals (~201 s), even with 30-s intensity raised | Fleckenstein, Braunstein & Walter 2025, *Front Sports Act Living* 6:1507957; PMID 39835194; DOI 10.3389/fspor.2024.1507957 |
| **Cycling (acute)** | **30-s** work intervals induced **more** time ≥90% VO2peak than longer intervals (50%/80% of Tmax) at matched 2:1 work:rest, in 13 well-trained cyclists — the opposite result | Rønnestad & Hansen 2016, *J Strength Cond Res* 30(4):9991006; PMID 23942167; DOI 10.1519/JSC.0b013e3182a73e8a |
| **Cycling (adaptation)** | Over 3 weeks, "effort-matched" **short** intervals (30/15 s) beat long (5-min) intervals — e.g. +4.7% 20-min power — in elite cyclists | Rønnestad, Hansen, Nygaard & Lundby 2020, *Scand J Med Sci Sports* 30(5):849857; PMID 31977120; DOI 10.1111/sms.13627 |
**The pooled meta-analysis puts the optimum in the *middle* (~140 s / ~2.3 min)** — see the caveat
above. So the honest shape is an **inverted-U whose peak location shifts with modality and protocol**,
not a binary short-vs-long contest.
**Two reasons not to over-trust the "cycling favors short" side:**
1. **It's largely one research group.** The cycling short-interval superiority comes chiefly from
Rønnestad and colleagues (2016 / 2020 / 2021; Almquist 2020, PMID 32267032; Rønnestad 2021,
PMID 33735833). Internally consistent, but independent replication is limited.
2. **Effort-matching is the crux.** When independent cycling work matched **total work duration**
across formats, the short-interval *adaptation* advantage reportedly disappeared (attributed to a
Seiler-group study; **unpublished / secondary-source — low evidence tier, do not cite as fact**).
Much of the apparent edge may be that 30/15 sessions simply pack more total high-intensity work,
not rep length per se.
**Bottom line:** acute time ≥90% VO2max favors short intervals *in the Rønnestad cycling protocols*
and long intervals in the one running study; the pooled optimum is *medium* (~140 s); and
effort-matched adaptation data are equivocal. Treat rep length as a lever to **individualize**, not
a solved problem.
> ⚠️ **Under-researched — track individual response.** Optimal rep length for a *given cyclist* is
> not resolved. Use the MCP interval/stream data to verify what actually keeps power in the
> ≥90%-effort band across reps for this athlete, and let that — not a rule — drive the choice.
## Practical prescription
- **Menu for cyclists** (no format is proven superior — pick by athlete and goal, then verify per
rider with the MCP data):
- **Medium intervals (~24 min, work:rest ~0.85):** closest to the pooled meta-analytic optimum
(~140 s; Yang 2025) and a sensible **default** for most riders — long enough to bank time
≥90% VO2max, short enough to hold power across reps.
- **Short intervals:** 30/15 s (≈13 reps × 23 series) — banks time ≥90% VO2max well in the
Rønnestad protocols (2016/2020/2021); good for riders who fade on long reps or want more total
high-intensity work per session. Not proven superior once total work is matched.
- **Long intervals (~45 min):** favored by the running time-at-VO2max data (Fleckenstein 2025)
and useful for **sustained** aerobic power and race-specific steady demands; a reasoned choice,
not a cycling-proven one.
- **Prescribe from power.** For MTB especially, HR lags and misleads (`mtb-xco-demands.md`,
`data-confounds.md`).
- **Verify the session worked:** pull the interval stats/streams from MCP and check power held near
target across reps. Fading power = too much intensity or too little recovery; adjust work:rest.
## Frequency vs distribution
For *how often* to do hard sessions and how they fit the week/season, see `periodization.md` — the
argument there (after Seiler 2024) is that the **long-term integration** of frequency, intensity,
and duration matters more than chasing the acute maximum of any single session.