Section 11: Endurance Training Coach (Intervals.icu)
Scanned@CrankAddict
npx machina-cli add skill @CrankAddict/section11 --openclawSection 11 — AI Coaching Protocol
First Use Setup
On first use:
-
Check for DOSSIER.md in the workspace
- If not found, fetch template from: https://raw.githubusercontent.com/CrankAddict/section-11/main/DOSSIER_TEMPLATE.md
- Ask the athlete to fill in their data (zones, goals, schedule, etc.)
- Save as DOSSIER.md in the workspace
-
Set up JSON data source
- Athlete creates a private GitHub repo for training data, or keeps files locally
- Set up automated sync from Intervals.icu to
latest.jsonandhistory.json - Save both raw URLs in DOSSIER.md under "Data Source" (or local file paths if running locally)
latest.json— current 7-day snapshot + 28-day derived metricshistory.json— longitudinal data (daily 90d, weekly 180d, monthly 3y)- See: https://github.com/CrankAddict/section-11#2-set-up-your-data-mirror-optional-but-recommended
-
Configure heartbeat settings
- Fetch template from: https://raw.githubusercontent.com/CrankAddict/section-11/refs/heads/main/openclaw/HEARTBEAT_TEMPLATE.md
- Ask athlete for their specific values:
- Location for weather checks (city/area)
- Timezone
- Valid outdoor riding hours
- Weather thresholds (min temp, max wind, max rain %)
- Preferred notification hours
- Save as HEARTBEAT.md in the workspace
Do not proceed with coaching until dossier, data source, and heartbeat config are complete.
Protocol
Fetch and follow: https://raw.githubusercontent.com/CrankAddict/section-11/main/SECTION_11.md
Current version: 11.4
Data Hierarchy
- JSON data (always fetch latest.json first, then history.json for longitudinal context)
- Protocol rules (SECTION_11.md)
- Athlete dossier (DOSSIER.md)
- Heartbeat config (HEARTBEAT.md)
Required Actions
- Fetch latest.json before any training question
- Fetch history.json when trend analysis, phase context, or longitudinal comparison is needed
- No virtual math on pre-computed metrics — use fetched values for CTL, ATL, TSB, ACWR, RI, zones, etc. Custom analysis from raw data is fine when pre-computed values don't cover the question.
- Follow Section 11 C validation checklist before generating recommendations
- Cite frameworks per protocol (checklist item #10)
Report Templates
Use standardized report formats from /examples/reports/:
- Pre-workout: Readiness assessment, Go/Modify/Skip recommendation — see
PRE_WORKOUT_TEMPLATE.md - Post-workout: Session metrics, plan compliance, weekly totals — see
POST_WORKOUT_TEMPLATE.md - Brevity rule: Brief when metrics are normal. Detailed when thresholds are breached or athlete asks "why."
Fetch templates from:
- https://raw.githubusercontent.com/CrankAddict/section-11/main/examples/reports/PRE_WORKOUT_TEMPLATE.md
- https://raw.githubusercontent.com/CrankAddict/section-11/main/examples/reports/POST_WORKOUT_TEMPLATE.md
Heartbeat Operation
On each heartbeat, follow the checks and scheduling rules defined in your HEARTBEAT.md:
- Daily: training/wellness observations (from latest.json), weather (only if conditions are good)
- Weekly: background analysis (use history.json for trend comparison)
- Self-schedule next heartbeat with randomized timing within notification hours
Security & Privacy
Data ownership & storage All training data is stored where the user chooses: on their own device or in a Git repository they control. This project does not run any backend service, cloud storage, or third-party infrastructure. Nothing is uploaded anywhere unless the user explicitly configures it.
Anonymization
sync.py anonymizes raw training data before it is used by the coaching protocol. Identifying information is stripped; only aggregated and derived metrics (CTL, ATL, TSB, zone distributions, power/HR summaries) are used by the AI coach.
Network behavior The skill performs simple HTTP GET requests to fetch:
- The coaching protocol (
SECTION_11.md) from this repository - Report templates from this repository
- Athlete training data (
latest.json,history.json) from user-configured URLs
It does not send API keys, LLM chat histories, or any user data to external URLs. All fetched content comes from sources the user has explicitly configured.
Recommended setup: local files or private repos
The safest and simplest setup is fully local: export your data as JSON and point the skill at files on your device (see examples/json-manual/). If you use GitHub, use a private repository. See examples/json-auto-sync/SETUP.md for automated sync setup including private repo usage with agents.
Protocol and template URLs The default protocol and template URLs point to this repository. The risk model is standard open-source supply-chain.
Heartbeat / automation The heartbeat mechanism is fully opt-in. It is not enabled by default and nothing runs automatically unless the user explicitly configures it. When enabled, it performs a narrow set of actions: read training data, run analysis, write updated summaries/plans to the user's chosen location.
Private repositories & agent access Section 11 does not implement GitHub authentication. It reads files from whatever locations the runtime environment can already access:
- Running locally: reads from your filesystem
- Running in an agent (OpenClaw, Claude Cowork, etc.) with GitHub access configured: can read/write repos that the agent's token/SSH key allows
Access is entirely governed by credentials the user has already configured in their environment.
Overview
Section 11 is an evidence-based endurance cycling coaching protocol (v11.4) designed to analyze training data, review sessions, and generate standardized pre/post-workout reports. It relies on a structured data hierarchy and templates, requiring an athlete dossier, data source, and heartbeat config before coaching begins.
How This Skill Works
The system fetches latest.json for current metrics and history.json for longitudinal context, then follows the SECTION_11.md protocol to generate insights and reports. It uses PRE_WORKOUT and POST_WORKOUT templates for consistent outputs and avoids virtual math on precomputed metrics, instead using values from the data sources. All data privacy is maintained by storing data locally or in a user-controlled repository.
When to Use It
- When analyzing training data to spot trends and plan blocks
- When reviewing sessions to adjust workouts or pacing
- When generating pre-workout readiness reports for athletes
- When producing post-workout reports detailing session metrics and compliance
- When answering training questions with athlete data while maintaining protocol compliance
Quick Start
- Step 1: Ensure DOSSIER.md, data source, and HEARTBEAT.md are in place and configured
- Step 2: Retrieve latest.json (and history.json when trend analysis is needed)
- Step 3: Use PRE_WORKOUT_TEMPLATE.md or POST_WORKOUT_TEMPLATE.md to generate reports and coaching advice
Best Practices
- Always fetch latest.json before answering a training question
- Fetch history.json when trend analysis or longitudinal context is needed
- Complete dossier (DOSSIER.md), data source, and heartbeat config (HEARTBEAT.md) before coaching
- Follow the Section 11 protocol and cite frameworks per checklist item #10
- Use the provided PRE_WORKOUT_TEMPLATE.md and POST_WORKOUT_TEMPLATE.md for standardized reports
Example Use Cases
- Analyzing a cyclist's CTL/ATL/TSB evolution over an 8-week block and adjusting the plan
- Generating a pre-race readiness report for a gran fondo using current metrics
- Reviewing a high-intensity interval session and proposing pacing and recovery adjustments
- Providing coaching guidance to shift a training block based on longitudinal data
- Creating a weekly plan aligned with historical trends and upcoming race demands