- 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