f6dd9dfc27
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
52 lines
2.7 KiB
Markdown
52 lines
2.7 KiB
Markdown
# 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 power–speed 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.
|