The skill had mtb-xco-demands.md but road/TT demands were only diffused
through the general docs — an asymmetry given the balanced MTB+road scope.
Add two dedicated, self-contained demand profiles (kept separate because
mass-start racing and TT differ as much as XCO differs from marathon MTB):
- references/road-racing-demands.md: stochastic power profile (Vogt 2007,
Ebert 2005/2006, Sanders/van Erp 2021), drafting economics (Blocken 2018),
fatigued finishing sprint (Menaspà 2013/2015, Etxebarria 2019), durability
as a success determinant (van Erp/Sanders/Lamberts 2021); power governs, HR
unreliable (intermittent) — mirrors the MTB doc.
- references/tt-demands.md: aero drag dominance + CdA as the top lever
(Crouch 2017, Martin 1998, García-López 2008), critical power as predictor
(Smith 1999), even-vs-variable pacing (Swain 1997, Atkinson 2007), long-TT
durability (Maunder 2021); HR more usable than MTB but still secondary.
All new quantitative claims carry verified PMIDs/DOIs (verified via PubMed/
CrossRef); citations.md gains Road-racing and Time-trial sections. Honesty
flags: Blocken 2018 and Martin 1998 have no PMID (DOI only); the '~90% aero'
soundbite (Kyle & Burke 1984) is unverifiable and marked approximate;
criterium-specific literature flagged as a gap; no unverified HR-reliability
citation added (TT HR defers to data-confounds.md).
Router (SKILL.md) and README layout updated with both docs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
- Release step now authenticates with the RELEASE_TOKEN Actions secret
(repo write) instead of the automatic token; drop the now-unneeded
permissions block.
- Add a step that publishes the skill zip to the Gitea generic packages
registry (cycling-training-skill@<tag>) using the REGISTRY_TOKEN secret,
handling 200/201/409 responses.
- README: document the registry download URL and both secrets.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
Add a reproducible way to build the Claude-skill package and publish it:
- scripts/build-skill-zip.sh: stages SKILL.md + README + references/ + assets/
into a zip whose single top-level cycling-training/ folder is the layout
Claude Desktop / claude.ai import expects. Validates SKILL.md frontmatter.
- .gitea/workflows/release-skill.yml: on tag v* builds the zip and attaches it
to a Gitea release (via the API using the automatic token); on manual
dispatch uploads it as a run artifact.
- README: document the packaging/release flow and Claude Desktop zip-import.
- .gitignore: ignore dist/ build output.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
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
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