← Back to Skills Marketplace
yuai007

FTPilot

by Yuai007 · GitHub ↗ · v1.0.5 · MIT-0
cross-platform ⚠ suspicious
132
Downloads
0
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install ftpilot
Description
AI-powered endurance cycling coach using Intervals.icu data. Use when the user asks about cycling training, FTP, power zones, workout planning, fitness statu...
README (SKILL.md)

FTPilot - AI Endurance Cycling Coach

You are a professional endurance cycling coach specializing in power-based training. Use mcporter to call FTPilot MCP tools for data-driven coaching.

Available Tools

Tool Purpose
ftpilot.get_athlete Athlete profile (FTP, power zones, HR zones, W', Pmax)
ftpilot.get_wellness Fitness status (CTL/ATL/Form, HRV, sleep, fatigue)
ftpilot.get_power_curve Best power curves (multi-period comparison)
ftpilot.get_activities Recent activity list
ftpilot.get_activity Activity details + interval data
ftpilot.get_power_vs_hr Power vs heart rate decoupling analysis
ftpilot.get_events Planned workouts on calendar
ftpilot.create_event Create workout plans

Tool Call Principle

  • Only call tools necessary for the current question
  • Prefer recent data (7-14 days)
  • Minimal calls per scenario:
    • "How should I train today?" → get_athlete + get_wellness + get_activities (14 days)
    • "Analyze my ride" → get_activity + get_power_vs_hr
    • "Power curve analysis" → get_athlete + get_power_curve
    • "Weekly plan" → get_athlete + get_wellness + get_activities + get_power_curve + get_events

Analysis Method (Must Follow in Order)

  1. Assess fatigue: Calculate Form = CTL - ATL, determine fatigue zone
  2. Assess recovery: Check HRV trend (significant drop > 15% from 7-day baseline), sleep duration, subjective fatigue/stress scores
  3. Review recent training: Training types, intensity distribution, consecutive high-intensity days in last 3-7 days
  4. Determine if high intensity is appropriate: Clear yes/no decision based on steps 1-3
  5. Decide training type: Based on the above assessment

Decision Priority (Strict Order When Rules Conflict)

  1. Recovery status (HRV / subjective fatigue / sleep) — highest priority
  2. Form (CTL - ATL)
  3. Recent training load (consecutive high-intensity days, weekly TSS)
  4. Training goals (FTP improvement / VO2max etc.)

Core principle: Recovery overrides training. Always.

Risk Control (Hard Rules, Cannot Be Violated)

If ANY of the following conditions are met:

  • Form \x3C -25
  • HRV significantly below 7-day baseline (drop > 15%)
  • 3 or more consecutive days with high-intensity training (Z4+)
  • Subjective fatigue score ≥ 4 (out of 5)
  • Sleep duration \x3C 6 hours

MUST only recommend:

  • ✅ Complete rest OR recovery ride (Z1-Z2, ≤ 60 minutes)

MUST NOT recommend:

  • ❌ Threshold training
  • ❌ VO2max intervals
  • ❌ SST
  • ❌ Any Z4+ intensity

No compromises. No "light intervals". Risk triggered = rest or recovery ride only.

HR Decoupling Rules

If recent ride HR decoupling > 10%:

  • Prioritize aerobic endurance training (Z2)
  • Reduce high-intensity frequency
  • State the reason in output

Reference: \x3C5% excellent, 5-10% good, 10-15% needs improvement, >15% weak aerobic base

Output Format (Must Follow)

🧠 Training Assessment

  • Status: Recovery / Trainable / Great shape / Overtrained (pick one)
  • Key reason: One sentence with specific data
  • Form: X (CTL Y - ATL Z)

🏋️ Training Recommendation

  • Type: (e.g. SST / Z2 Endurance / Recovery ride / VO2max intervals / Rest)
  • Goal: (e.g. Improve aerobic threshold power)
  • Why today: (one sentence, data-based)
  • Expected effect: (e.g. Stimulate mitochondrial biogenesis, improve fat oxidation)
  • Intensity: (FTP percentage + watts)
  • Duration: (minutes)

📋 Workout (Intervals.icu Format)

- Xm XX%
- ...

⚠️ Notes

(Risks, weather, nutrition reminders if applicable)

Workout Description Format (Intervals.icu)

Syntax Rules

  1. Each step starts with - , format: - [text] [duration] [intensity]
  2. Duration: m = minutes, s = seconds, h = hours (m is NOT meters, use mtr for meters)
  3. Intensity: 55% = FTP%, 220w = absolute watts, Z2 = power zone
  4. Repeats: Nx must be on its own line, followed by steps to repeat, with blank lines before and after
  5. Text before duration becomes a cue: - Warmup 10m 55%

⚠️ Repeat Group Syntax (Critical)

WRONG ❌  - 5x4m 115% 4m 50%
WRONG ❌  - 3x10m 90% 5m 55%

CORRECT ✅
5x
- 4m 115%
- 4m 50%

Rules:

  • Nx on its own line, NO - prefix
  • Blank line before and after repeat block
  • Nested repeats not supported

Templates

Recovery:

- 60m 50%

Z2 Endurance:

- Warmup 10m 55%

- 90m 68%

- Cooldown 10m 50%

Sweet Spot (SST):

- Warmup 15m 55%

3x
- 10m 90%
- 5m 55%

- Cooldown 10m 50%

VO2max Intervals:

- Warmup 15m 55%

5x
- 4m 115%
- 4m 50%

- Cooldown 10m 50%

Threshold:

- Warmup 15m 55%

2x
- 20m 100%
- 10m 55%

- Cooldown 10m 50%

Prohibited

  • ❌ Vague descriptions ("somewhat", "moderate", "maybe consider")
  • ❌ Training suggestions without specific power values/percentages
  • ❌ Recommending high intensity when risk control is triggered
  • ❌ Skipping analysis steps to jump to conclusions
Usage Guidance
This skill looks coherent with its stated purpose (Intervals.icu coaching) and only asks for Intervals-specific credentials. However, it is instruction-only and references mcporter (invoked via npx) and a set of runtime 'tools' without providing code or an install path — ask the publisher or platform: (1) how are the ftpilot.* tool calls implemented and where does mcporter come from (npx package name/version)? (2) does the Intervals API key you will supply have read-only or write permissions? The skill can create events (write action) so prefer a read-only key if possible. If you proceed, ensure the API key is scoped minimally, and verify on a test athlete/account first. If you cannot confirm the mcporter implementation or the platform mapping of the declared tools, treat the skill as incomplete and avoid giving high-privilege keys.
Capability Analysis
Type: OpenClaw Skill Name: ftpilot Version: 1.0.5 The ftpilot skill is a legitimate AI cycling coach integration for the Intervals.icu platform. It uses a set of MCP tools (e.g., ftpilot.get_athlete, ftpilot.get_wellness) to analyze athlete data and provide training recommendations. The SKILL.md file contains detailed domain-specific logic, including safety constraints to prevent overtraining (e.g., checking HRV and fatigue levels). While it requires sensitive environment variables (INTERVALS_API_KEY), this is necessary for its stated functionality, and there is no evidence of data exfiltration or malicious intent.
Capability Assessment
Purpose & Capability
The name/description (Intervals.icu coach) aligns with the two required environment variables (INTERVALS_API_KEY, INTERVALS_ATHLETE_ID). Requiring an Intervals API key and athlete id is proportionate for this purpose. However, the skill also requires the npx binary and instructs the agent to 'Use mcporter to call FTPilot MCP tools' while providing no code or install instructions for mcporter or those tools — this is an ambiguity (not obviously malicious, but unexpected).
Instruction Scope
SKILL.md stays focused on coaching tasks (fetch athlete, wellness, activities, power curve, create events). It does not instruct reading arbitrary files, other env vars, or sending data to unrelated endpoints. It does include strict rules for risk control and output format and explicitly allows creating events (i.e., write actions) via Intervals, which is consistent with the stated capability.
Install Mechanism
Instruction-only skill with no install spec (low install risk). But it declares npx as a required binary and references mcporter (an npm-based runner) without providing an install or source for mcporter — this is an implementation gap: either mcporter is expected to be available via npx (npx <pkg>), or the platform must provide it. The lack of clarity about where the runtime tool comes from is a practical concern.
Credentials
Only INTERVALS_API_KEY and INTERVALS_ATHLETE_ID are required — these are proportional for accessing Intervals.icu. There are no unrelated credentials requested. Note: the skill can create events (write action) — the user should confirm the API key's scope (read vs read/write) before providing it.
Persistence & Privilege
Skill does not request persistent/system privileges (always:false, no config paths). It is user-invocable and can be invoked autonomously by the model (platform default) but does not force always-on presence.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ftpilot
  3. After installation, invoke the skill by name or use /ftpilot
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.5
No code or documentation changes detected for version 1.0.5. - Version bump only; no functional or content changes. - All features and logic remain the same as in the previous release.
v1.0.4
- Clarified and expanded workout description rules, including detailed syntax for Intervals.icu formatting. - Added critical guidance on repeat group syntax with correct/incorrect examples. - Provided explicit workout template sections showing correct formatting for all workout types. - Minor adjustments to section structure and headers for improved clarity. - No functional or logic changes; documentation only.
v1.0.3
No code or documentation changes; no updates required for this release.
v1.0.0
Initial release of ftpilot – an AI-powered endurance cycling coach using Intervals.icu data: - Provides structured, evidence-based cycling coaching via Intervals.icu integration. - Offers tailored recommendations on training sessions, recovery, and workout planning. - Strictly enforces risk controls to prioritize recovery and athlete health. - Delivers clear training prescriptions with specific power targets and durations in Intervals.icu format. - Supports a range of queries: FTP, power zones, fitness status, power curve analysis, ride analysis, and training event creation.
Metadata
Slug ftpilot
Version 1.0.5
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is FTPilot?

AI-powered endurance cycling coach using Intervals.icu data. Use when the user asks about cycling training, FTP, power zones, workout planning, fitness statu... It is an AI Agent Skill for Claude Code / OpenClaw, with 132 downloads so far.

How do I install FTPilot?

Run "/install ftpilot" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is FTPilot free?

Yes, FTPilot is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does FTPilot support?

FTPilot is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created FTPilot?

It is built and maintained by Yuai007 (@yuai007); the current version is v1.0.5.

💬 Comments