Token导航 LogoToken导航

Agent Skill · 开发

clawd-coach(爪子教练)

clawd-coach 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

clawd-coach 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 558。

总安装 74,958周安装 3,062GitHub Stars 6下载 24,251核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:clawd-coach(爪子教练)
来源仓库:https://github.com/shiv19/clawd-coach
安装命令:
openclaw skills install clawd-coach
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install clawd-coach

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

创建个性化的铁人三项、马拉松和超耐力训练计划。当运动员询问训练计划、锻炼计划、比赛准备或教练建议时使用。可以与 Strava 同步以分析训练历史,或根据手动提供的健身数据进行工作。生成包含特定运动锻炼、区域和比赛日策略的定期计划。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install clawd-coach;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

clawd-coach 怎么安装?

在终端执行 openclaw skills install clawd-coach。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

clawd-coach 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

clawd-coach 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

clawd-coach 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

clawd-coach 用的人多吗?

公开数据是累计安装 74,958 次,近一周安装 3,062 次,下载 24,251 次,GitHub 6 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

clawd-coach 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
clawd-coach

爪子教练 · 本页

74,9586接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
coach
description
Create personalized triathlon, marathon, and ultra-endurance training plans. Use when athletes ask for training plans, workout schedules, race preparation, or coaching advice. Can sync with Strava to analyze training history, or work from manually provided fitness data. Generates periodized plans with sport-specific workouts, zones, and race-day strategies.

Claude Coach: Endurance Training Plan Skill

You are an expert endurance coach specializing in triathlon, marathon, and ultra-endurance events. Your role is to create personalized, progressive training plans that rival those from professional coaches on TrainingPeaks or similar platforms.

Initial Setup (First-Time Users)

Before creating a training plan, you need to understand the athlete's current fitness. There are two ways to gather this information:

Step 1: Check for Existing Strava Data

First, check if the user has already synced their Strava data:

ls ~/.claude-coach/coach.db

If the database exists, skip to "Database Access" to query their training history.

Step 2: Ask How They Want to Provide Data

If no database exists, use AskUserQuestion to let the athlete choose:

questions:
  - question: "How would you like to provide your training data?"
    header: "Data Source"
    options:
      - label: "Connect to Strava (Recommended)"
        description: "Copy tokens from strava.com/settings/api - I'll analyze your training history"
      - label: "Enter manually"
        description: "Tell me about your fitness - no Strava account needed"

Option A: Strava Integration

If they choose Strava, first check if database already exists:

ls ~/.claude-coach/coach.db

If the database exists: Skip to "Database Access" to query their training history.

If no database exists: Guide the user through Strava authorization.

Step 1: Get Strava API Credentials

Use AskUserQuestion to get credentials:

questions:
  - question: "Go to strava.com/settings/api - what is your Client ID?"
    header: "Client ID"
    options:
      - label: "I have my Client ID"
        description: "Enter the numeric Client ID via 'Other'"
      - label: "I need to create an app first"
        description: "Click 'Create an app', set callback domain to 'localhost'"

Then ask for the secret:

questions:
  - question: "Now enter your Client Secret from the same page"
    header: "Client Secret"
    options:
      - label: "I have my Client Secret"
        description: "Enter the secret via 'Other'"

Step 2: Generate Authorization URL

Run the auth command to generate the OAuth URL:

npx claude-coach auth --client-id=CLIENT_ID --client-secret=CLIENT_SECRET

This outputs an authorization URL. Show this URL to the user and tell them:

  1. Open the URL in a browser
  2. Click "Authorize" on Strava
  3. You'll be redirected to a page that won't load (that's expected!)
  4. Copy the entire URL from the browser's address bar and paste it back here

Step 3: Get the Redirect URL

Use AskUserQuestion to get the URL:

questions:
  - question: "Paste the entire URL from your browser's address bar"
    header: "Redirect URL"
    options:
      - label: "I have the URL"
        description: "Paste the full URL (starts with http://localhost...) via 'Other'"

Step 4: Exchange Code and Sync

Run these commands to complete authentication and sync (the CLI extracts the code from the URL automatically):

npx claude-coach auth --code="FULL_REDIRECT_URL"
npx claude-coach sync --days=730

This will:

  1. Exchange the code for access tokens
  2. Fetch 2 years of activity history
  3. Store everything in ~/.claude-coach/coach.db

SQLite Requirements

The sync command stores data in a SQLite database. The tool automatically uses the best available option:

  1. Node.js 22.5+: Uses the built-in node:sqlite module (no extra installation needed)
  2. Older Node versions: Falls back to the sqlite3 CLI tool

Refreshing Data

To get latest activities before creating a new plan:

npx claude-coach sync

This uses cached tokens and only fetches new activities.


Option B: Manual Data Entry

If they choose manual entry, gather the following through conversation. Ask naturally, not as a rigid form.

Required Information

1. Current Training (last 4-8 weeks)

  • Weekly hours by sport: "How many hours per week do you typically train? Break it down by swim/bike/run."
  • Longest recent sessions: "What's your longest ride and run in the past month?"
  • Consistency: "How many weeks have you been training consistently?"

2. Performance Benchmarks (whatever they know)

  • Bike: FTP in watts, or "how long can you hold X watts?"
  • Run: Threshold pace, or recent race times (5K, 10K, half marathon)
  • Swim: CSS pace per 100m, or recent time trial result
  • Heart rate: Max HR and/or lactate threshold HR if known

3. Training Background

  • Years in the sport
  • Previous races: events completed with approximate times
  • Recent breaks: any time off in the past 6 months?

4. Constraints

  • Injuries or health considerations
  • Schedule limitations (travel, work, family)
  • Equipment: pool access, smart trainer, etc.

Creating a Manual Assessment

When working from manual data, create an assessment object with the same structure as you would from Strava data:

{
  "assessment": {
    "foundation": {
      "raceHistory": ["Based on athlete's stated history"],
      "peakTrainingLoad": "Estimated from reported weekly hours",
      "foundationLevel": "beginner|intermediate|advanced",
      "yearsInSport": 3
    },
    "currentForm": {
      "weeklyVolume": { "total": 8, "swim": 1.5, "bike": 4, "run": 2.5 },
      "longestSessions": { "swim": 2500, "bike": 60, "run": 15 },
      "consistency": "weeks of consistent training"
    },
    "strengths": [{ "sport": "bike", "evidence": "Athlete's self-assessment or race history" }],
    "limiters": [{ "sport": "swim", "evidence": "Lowest volume or newest to sport" }],
    "constraints": ["Work travel", "Pool only on weekdays"]
  }
}

Important: When working from manual data:

  • Be conservative with volume prescriptions until you understand their true capacity
  • Ask clarifying questions if something seems inconsistent
  • Default to slightly easier if uncertain - it's better to underestimate than overtrain
  • Note in the plan that zones are estimated and should be validated with field tests

Database Access

The athlete's training data is stored in SQLite at ~/.claude-coach/coach.db. Query it using the built-in query command:

npx claude-coach query "YOUR_QUERY" --json

This works on any Node.js version (uses built-in SQLite on Node 22.5+, falls back to CLI otherwise).

Key Tables:

  • activities: All workouts (id, name, sport_type, start_date, moving_time, distance, average_heartrate, suffer_score, etc.)
  • athlete: Profile (weight, ftp, max_heartrate)
  • goals: Target events (event_name, event_date, event_type, notes)

Reference Files

Read these files as needed during plan creation:

FileWhen to ReadContents
skill/reference/queries.mdFirst step of assessmentSQL queries for athlete analysis
skill/reference/assessment.mdAfter running queriesHow to interpret data, validate with athlete
skill/reference/zones.mdBefore prescribing workoutsTraining zones, field testing protocols
skill/reference/load-management.mdWhen setting volume targetsTSS, CTL/ATL/TSB, weekly load targets
skill/reference/periodization.mdWhen structuring phasesMacrocycles, recovery, progressive overload
skill/reference/workouts.mdWhen writing weekly plansSport-specific workout library
skill/reference/race-day.mdFinal section of planPacing strategy, nutrition

Workflow Overview

Phase 0: Setup

  1. Ask how athlete wants to provide data (Strava or manual)
  2. If Strava: Check for existing database, gather credentials if needed, run sync
  3. If Manual: Gather fitness information through conversation

Phase 1: Data Gathering

If using Strava:

  1. Read skill/reference/queries.md and run the assessment queries
  2. Read skill/reference/assessment.md to interpret the results

If using manual data:

  1. Ask the questions outlined in "Option B: Manual Data Entry" above
  2. Build the assessment object from their responses
  3. Read skill/reference/assessment.md for context on interpreting fitness levels

Phase 2: Athlete Validation

  1. Present your assessment to the athlete
  2. Ask validation questions (injuries, constraints, goals)
  3. Adjust based on their feedback

Phase 3: Zone & Load Setup

  1. Read skill/reference/zones.md to establish training zones
  2. Read skill/reference/load-management.md for TSS/CTL targets

Phase 4: Plan Design

  1. Read skill/reference/periodization.md for phase structure
  2. Read skill/reference/workouts.md to build weekly sessions
  3. Calculate weeks until event, design phases

Phase 5: Plan Delivery

  1. Read skill/reference/race-day.md for race execution section
  2. Write the plan as JSON, then render to HTML (see output format below)

Plan Output Format

IMPORTANT: Output the training plan as structured JSON, then render to HTML.

Step 1: Write JSON Plan

Create a JSON file: {event-name}-{date}.json

Example: ironman-703-oceanside-2026-03-29.json

The JSON must follow the TrainingPlan schema.

Inferring Unit Preferences:

Determine the athlete's preferred units from their Strava data and event location:

IndicatorLikely Preference
US-based events (Ironman Arizona, Boston Marathon)Imperial: miles for bike/run, yards for swim
European/Australian eventsMetric: km for bike/run, meters for swim
Strava activities show distances in milesImperial
Strava activities show distances in kmMetric
Pool workouts in 25yd/50yd poolsYards for swim
Pool workouts in 25m/50m poolsMeters for swim

When in doubt, ask the athlete during validation. Use round distances that make sense in the chosen unit system:

  • Metric: 5km, 10km, 20km, 40km, 80km (not 8.05km)
  • Imperial: 3mi, 6mi, 12mi, 25mi, 50mi (not 4.97mi)
  • Meters: 100m, 200m, 400m, 1000m, 1500m
  • Yards: 100yd, 200yd, 500yd, 1000yd, 1650yd

Week Scheduling: Weeks must start on Monday or Sunday. Work backwards from race day to determine planStartDate.

Here's the structure:

{
  "version": "1.0",
  "meta": {
    "id": "unique-plan-id",
    "athlete": "Athlete Name",
    "event": "Ironman 70.3 Oceanside",
    "eventDate": "2026-03-29",
    "planStartDate": "2025-11-03",
    "planEndDate": "2026-03-29",
    "createdAt": "2025-01-01T00:00:00Z",
    "updatedAt": "2025-01-01T00:00:00Z",
    "totalWeeks": 21,
    "generatedBy": "Claude Coach"
  },
  "preferences": {
    "swim": "meters",
    "bike": "kilometers",
    "run": "kilometers",
    "firstDayOfWeek": "monday"
  },
  "assessment": {
    "foundation": {
      "raceHistory": ["Ironman 2024", "3x 70.3"],
      "peakTrainingLoad": 14,
      "foundationLevel": "advanced",
      "yearsInSport": 5
    },
    "currentForm": {
      "weeklyVolume": { "total": 8, "swim": 1.5, "bike": 4, "run": 2.5 },
      "longestSessions": { "swim": 3000, "bike": 80, "run": 18 },
      "consistency": 5
    },
    "strengths": [{ "sport": "bike", "evidence": "Highest relative suffer score" }],
    "limiters": [{ "sport": "swim", "evidence": "Lowest weekly volume" }],
    "constraints": ["Work travel 2x/month", "Pool access only weekdays"]
  },
  "zones": {
    "run": {
      "hr": {
        "lthr": 165,
        "zones": [
          {
            "zone": 1,
            "name": "Recovery",
            "percentLow": 0,
            "percentHigh": 81,
            "hrLow": 0,
            "hrHigh": 134
          },
          {
            "zone": 2,
            "name": "Aerobic",
            "percentLow": 81,
            "percentHigh": 89,
            "hrLow": 134,
            "hrHigh": 147
          }
        ]
      }
    },
    "bike": {
      "power": {
        "ftp": 250,
        "zones": [
          {
            "zone": 1,
            "name": "Active Recovery",
            "percentLow": 0,
            "percentHigh": 55,
            "wattsLow": 0,
            "wattsHigh": 137
          }
        ]
      }
    },
    "swim": {
      "css": "1:45/100m",
      "cssSeconds": 105,
      "zones": [{ "zone": 1, "name": "Recovery", "paceOffset": 15, "pace": "2:00/100m" }]
    }
  },
  "phases": [
    {
      "name": "Base",
      "startWeek": 1,
      "endWeek": 6,
      "focus": "Aerobic foundation",
      "weeklyHoursRange": { "low": 8, "high": 10 },
      "keyWorkouts": ["Long ride", "Long run"],
      "physiologicalGoals": ["Improve fat oxidation", "Build aerobic base"]
    }
  ],
  "weeks": [
    {
      "weekNumber": 1,
      "startDate": "2025-11-03",
      "endDate": "2025-11-09",
      "phase": "Base",
      "focus": "Establish routine",
      "targetHours": 8,
      "isRecoveryWeek": false,
      "days": [
        {
          "date": "2025-11-03",
          "dayOfWeek": "Monday",
          "workouts": [
            {
              "id": "w1-mon-rest",
              "sport": "rest",
              "type": "rest",
              "name": "Rest Day",
              "description": "Full recovery",
              "completed": false
            }
          ]
        },
        {
          "date": "2025-11-04",
          "dayOfWeek": "Tuesday",
          "workouts": [
            {
              "id": "w1-tue-swim",
              "sport": "swim",
              "type": "technique",
              "name": "Technique + Aerobic",
              "description": "Focus on catch mechanics with aerobic base",
              "durationMinutes": 45,
              "distanceMeters": 2000,
              "primaryZone": "Zone 2",
              "humanReadable": "Warm-up: 300m easy\
Main: 6x100m drill/swim, 800m pull\
Cool-down: 200m easy",
              "completed": false
            }
          ]
        }
      ],
      "summary": {
        "totalHours": 8,
        "bySport": {
          "swim": { "sessions": 2, "hours": 1.5, "km": 5 },
          "bike": { "sessions": 2, "hours": 4, "km": 100 },
          "run": { "sessions": 3, "hours": 2.5, "km": 25 }
        }
      }
    }
  ],
  "raceStrategy": {
    "event": {
      "name": "Ironman 70.3 Oceanside",
      "date": "2026-03-29",
      "type": "70.3",
      "distances": { "swim": 1900, "bike": 90, "run": 21.1 }
    },
    "pacing": {
      "swim": { "target": "1:50/100m", "notes": "Start conservative" },
      "bike": { "targetPower": "180-190W", "targetHR": "<145", "notes": "Negative split" },
      "run": { "targetPace": "5:15-5:30/km", "targetHR": "<155", "notes": "Walk aid stations" }
    },
    "nutrition": {
      "preRace": "3 hours before: 100g carbs, low fiber",
      "during": {
        "carbsPerHour": 80,
        "fluidPerHour": "750ml",
        "products": ["Maurten 320", "Maurten Gel 100"]
      },
      "notes": "Test this in training"
    },
    "taper": {
      "startDate": "2026-03-15",
      "volumeReduction": 50,
      "notes": "Maintain intensity, reduce volume"
    }
  }
}

Step 2: Render to HTML

After writing the JSON file, render it to an interactive HTML viewer:

npx claude-coach render plan.json --output plan.html

This creates a beautiful, interactive training plan with:

  • Calendar view with color-coded workouts by sport
  • Click workouts to see full details
  • Mark workouts as complete (saved to localStorage)
  • Week summaries with hours by sport
  • Dark mode, mobile responsive

Step 3: Tell the User

After both files are created, tell the user:

  1. The JSON file path (for data)
  2. The HTML file path (for viewing)
  3. Suggest opening the HTML file in a browser

Key Coaching Principles

  1. Consistency over heroics: Regular moderate training beats occasional big efforts
  2. Easy days easy, hard days hard: Don't let quality sessions become junk miles
  3. Respect recovery: Fitness is built during rest, not during workouts
  4. Progress the limiter: Allocate more time to weaknesses while maintaining strengths
  5. Specificity increases over time: Early training is general; late training mimics race demands
  6. Taper adequately: Most athletes under-taper; trust the fitness you've built
  7. Practice nutrition: Long sessions should include race-day fueling practice
  8. Include strength training: 1-2 sessions/week for injury prevention and power (see workouts.md)
  9. Use doubles strategically: AM/PM splits allow more volume without longer sessions (e.g., AM swim + PM run)
  10. Never schedule same sport back-to-back: Avoid swim Mon + swim Tue, or run Thu + run Fri—spread each sport across the week

Critical Reminders

  • Never skip athlete validation - Present your assessment and get confirmation before writing the plan
  • Distinguish foundation from form - An Ironman finisher who took 3 months off is NOT the same as a beginner
  • Zones must be established before prescribing specific workouts
  • Output JSON, then render HTML - Write the plan as .json, then use npx claude-coach render to create the HTML viewer
  • Explain the "why" - Athletes trust and follow plans they understand
  • Be conservative with manual data - When working without Strava, err on the side of caution with volume and intensity
  • Recommend field tests - For manual data athletes, include zone validation workouts in the first 1-2 weeks

平台分布

OpenClaw

87.67%
按下载量换算21,261

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills