{"skill":{"slug":"grouptraining","displayName":"Likes Training Planner","summary":"Complete training plan solution for My Likes platform. Fetches historical data, analyzes training patterns, generates personalized plans, converts to Likes f...","description":"---\nname: likes-training-planner\ndescription: Complete training plan solution for My Likes platform. Fetches historical data, analyzes training patterns, generates personalized plans, converts to Likes format, and pushes to calendar. All-in-one skill for running, cycling, swimming, and strength training.\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🏃\",\n        \"requires\": { \"env\": [\"LIKES_API_KEY\"] },\n        \"primaryEnv\": \"LIKES_API_KEY\",\n      },\n  }\n---\n\n# Likes Training Planner\n\nComplete training plan solution for My Likes platform. **One skill does it all**: fetch data → analyze → generate → push.\n\n## 🤖 Bot 自动路由（多Bot支持）\n\n本Skill支持多个Telegram Bot自动路由，不同Bot有不同的专注领域：\n\n| Bot | 角色 | 专注功能 |\n|-----|------|---------|\n| **@likes_training_bot** | 训练分析师 | 数据分析、反馈点评 |\n| **@likes_traning_2_bot** | 训练计划师 | 计划制定、推送日历 |\n\n系统会自动识别当前使用的Bot，提供对应的功能和交互体验。\n\n## Quick Start\n\n### 1. Configure API Key\n\n**OpenClaw Skill Center (Recommended):**\n1. Open http://127.0.0.1:18789 → Skills\n2. Find \"likes-training-planner\" 🏃\n3. Click Configure, enter your Likes API Key\n4. Save\n\nGet API Key: https://my.likes.com.cn → 设置 → API 文档\n\n### 2. Use the Skill\n\nJust ask:\n> \"分析我过去30天的运动数据\"\n> \n> \"根据我的记录，生成下周的训练计划\"\n> \n> \"帮我制定一个8周马拉松备赛计划\"\n\n## Complete Workflow\n\n### Step 1: Fetch Data\n\n```bash\n# Fetch activities (rate limit: 1 req/min, max 30 days)\nnode scripts/fetch_activities.cjs --days 7 --output data.json\n\n# Fetch plans for next 42 days\nnode scripts/fetch_plans.cjs --start 2026-03-01 --output plans.json\n\n# Fetch training feedback\nnode scripts/fetch_feedback.cjs --start 2026-03-01 --end 2026-03-07\n\n# Fetch your training camps\nnode scripts/fetch_games.cjs --output camps.json\n\n# Fetch camp details and members\nnode scripts/fetch_game.cjs --game-id 973 --output camp_details.json\n\n# Fetch running ability (by run force or by race times)\nnode scripts/fetch_ability.cjs --runforce 51 --output ability.json\n```\n\n### Step 2: Analyze\n\n```bash\nnode scripts/analyze_data.cjs data.json\n```\n\nOutput includes:\n- Total runs, distance, time\n- Average pace, frequency\n- Training characteristics\n- Personalized recommendations\n\n### Step 3: Generate Plan\n\nBased on analysis, create a plan:\n```json\n{\n  \"plans\": [\n    {\n      \"name\": \"40min@(HRR+1.0~2.0)\",\n      \"title\": \"轻松有氧跑\",\n      \"start\": \"2026-03-10\",\n      \"weight\": \"q3\",\n      \"type\": \"qingsong\",\n      \"sports\": 1,\n      \"description\": \"根据近期数据，保持有氧基础\"\n    }\n  ]\n}\n```\n\n### Step 4: Push to Calendar\n\n**Push to yourself:**\n```bash\nnode scripts/push_plans.cjs plans.json\n```\n\n**Push to specific user(s):**\n```bash\nnode scripts/push_plans.cjs plans.json --user-ids 123\n```\n\n**Bulk push to training camp members (coach only):**\n```bash\nnode scripts/push_plans.cjs plans.json --game-id 973 --user-ids \"4,5,6\"\n```\n\n## API Scripts Reference\n\n| Script | Purpose | Rate Limit |\n|--------|---------|------------|\n| `fetch_activities.cjs` | Download training history | 1 req/min, max 30 days |\n| `fetch_plans.cjs` | Get calendar plans (42 days) | Standard |\n| `fetch_feedback.cjs` | Get training feedback | Standard |\n| `fetch_games.cjs` | List your training camps | Standard |\n| `fetch_game.cjs` | Get camp details & members | Coach only |\n| `fetch_ability.cjs` | Get run force, predicted times & pace zones (or estimate from race times) | Standard |\n| `analyze_data.cjs` | Analyze patterns | N/A |\n| `push_plans.cjs` | Push plans (supports bulk) | Standard |\n| `configure.cjs` | Interactive setup | N/A |\n| `set-config.cjs` | Quick config setter | N/A |\n\n## fetch_activities.cjs Options\n\n```bash\nnode scripts/fetch_activities.cjs [options]\n\nOptions:\n  --days <n>        Number of days (default: 7, max: 30)\n  --start <date>    Start date (YYYY-MM-DD)\n  --end <date>      End date (YYYY-MM-DD, max 30 days from start)\n  --user-id <id>    Query specific user (coach only)\n  --page <n>        Page number (default: 1)\n  --limit <n>       Items per page (default: 200, max: 2000)\n  --order-by <field> Sort: sign_date, run_km, run_time, tss\n  --order <asc|desc> Sort order (default: desc)\n  --output <file>   Output file\n```\n\n## fetch_ability.cjs Options\n\n```bash\nnode scripts/fetch_ability.cjs [options]\n```\n\nMode 1 — by run force (get predicted times and pace zones):\n  --runforce <0-99>   Ability value, e.g. 50 or 50.5 (required for mode 1)\n  --celsius <0-40>   Optional. Temperature in Celsius, default 6\n\nMode 2 — by race times (get estimated run force, at least one required):\n  --time-5km <sec|M:SS|H:MM:SS>\n  --time-10km, --time-hm, --time-fm, --time-3km, --time-mile   Same format\n\nOptional:\n  --output <file>   Output file (default: stdout)\n  --key <api_key>   Override API key\n\nExamples:\n  node scripts/fetch_ability.cjs --runforce 51\n  node scripts/fetch_ability.cjs --time-5km 32:28 --time-10km 1:07:20 --output ability.json\n```\n\n## push_plans.cjs Options\n\n```bash\nnode scripts/push_plans.cjs <plans.json> [options]\n\nOptions:\n  --key <api_key>    Use specific API key\n  --game-id <id>     Training camp ID (for bulk push)\n  --user-ids <ids>   Comma-separated user IDs (e.g., \"4,5,6\")\n  --dry-run          Preview without pushing\n```\n\n**Bulk Push Requirements:**\n- Must provide `game_id` when using `user_ids`\n- You must be creator or coach of the camp\n- All user_ids must be camp members\n- Max 200 plans per request\n\n## Training Code Format (name field)\n\nFormat: `task1;task2;...`\n\n**Basic task**: `duration@(type+range)`\n- `30min@(HRR+1.0~2.0)` - 30 min easy run\n- `5km@(PACE+5'00~4'30)` - 5km with pace target\n\n**Interval group**: `{task1;task2}xN`\n- Example: `{5min@(HRR+3.0~4.0);1min@(rest)}x3`\n\n**Rest**: `duration@(rest)` (parentheses required)\n- Example: `2min@(rest)`\n\n### Intensity Types\n\n| Type | Description | Example |\n|------|-------------|---------|\n| HRR | Heart rate reserve % | `HRR+1.0~2.0` |\n| VDOT | VDOT pace zone | `VDOT+4.0~5.0` |\n| PACE | Absolute pace (min'sec) | `PACE+5'30~4'50` |\n| t/ | Threshold pace % | `t/0.88~0.99` |\n| MHR | Max heart rate % | `MHR+0.85~0.95` |\n| LTHR | Lactate threshold HR % | `LTHR+1.0~1.05` |\n| EFFORT | Perceived effort | `EFFORT+0.8~1.0` |\n| FTP | Power % (cycling) | `FTP+0.75~0.85` |\n| CP | Absolute power W | `CP+200~240` |\n| CSS | Critical swim speed % | `CSS+0.95~1.05` |\n| TSP | Threshold swim pace % | `TSP+0.95~1.05` |\n| OPEN | Open-ended | `OPEN+1` |\n\n### Duration Units\n\n- `min` = minutes\n- `s` = seconds\n- `m` = meters\n- `km` = kilometers\n- `c` = count/reps\n\n## Training Type Mapping\n\n| Type Code | Description |\n|-----------|-------------|\n| qingsong | Easy run |\n| xiuxi | Rest day |\n| e | Aerobic training |\n| lsd | Long slow distance |\n| m | Marathon pace |\n| t | Threshold/lactate training |\n| i | Interval training |\n| r | Speed/repetition |\n| ft | Fartlek |\n| com | Combined workout |\n| ch | Variable pace |\n| jili | Strength training |\n| max | Max HR test |\n| drift | Aerobic stability test |\n| other | Other |\n| 1/7/2/3/4/5/6 | 1.6km/2km/3km/5km/10km/HM/FM test |\n\n## Intensity Weights\n\n| Weight | Color | Description |\n|--------|-------|-------------|\n| q1 | Red | High intensity |\n| q2 | Orange | Medium intensity |\n| q3 | Green | Low intensity |\n| xuanxiu | Blue | Optional/recovery |\n\n## Example Usage\n\n### Coach: Bulk Push to Camp Members\n\n```bash\n# 1. Get your camps\nnode scripts/fetch_games.cjs\n\n# 2. Get camp members\nnode scripts/fetch_game.cjs --game-id 973\n\n# 3. Create plan for members\n# ... edit plan.json ...\n\n# 4. Bulk push to specific members\nnode scripts/push_plans.cjs plan.json --game-id 973 --user-ids \"4,5,6\"\n```\n\n### Analyze and Generate in One Go\n\n```bash\n# Fetch and analyze\ncd /opt/homebrew/lib/node_modules/openclaw/skills/likes-training-planner\nnode scripts/fetch_activities.cjs --days 14 | node scripts/analyze_data.cjs\n```\n\n## Configuration\n\n### Priority (highest to lowest):\n1. Command line `--key`\n2. Environment variable `LIKES_API_KEY`\n3. OpenClaw config: `skills.likes-training-planner.apiKey`\n4. User config: `~/.openclaw/likes-training-planner.json`\n\n## References\n\n- **API documentation**: See [references/api-docs.md](references/api-docs.md)\n- **Code format details**: See [references/code-format.md](references/code-format.md)\n- **Sport-specific examples**: See [references/sport-examples.md](references/sport-examples.md)\n\n## Installation\n\n```bash\ncurl -fsSL https://gitee.com/chenyinshu/likes-training-planner/raw/main/install.sh | bash\n```\n","topics":["Calendar"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":577,"installsAllTime":22,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1773356871477,"updatedAt":1778491869269},"latestVersion":{"version":"1.0.0","createdAt":1773356871477,"changelog":"Likes Training Planner 1.0.0 – Initial Release\n\n- Provides an all-in-one solution for fetching, analyzing, and generating personalized training plans based on My Likes platform data.\n- Supports running, cycling, swimming, and strength training, with options to push plans to the calendar for individuals or groups.\n- Includes detailed command-line utilities for data fetching, analysis, plan creation, and bulk operations for coaches.\n- Multi-bot Telegram support, auto-routing requests to specialized bots for analysis or plan generation.\n- Comprehensive documentation for workflow, configuration, and API script usage.","license":"MIT-0"},"metadata":{"setup":[{"key":"LIKES_API_KEY","required":true}],"os":null,"systems":null},"owner":{"handle":"chenwynn","userId":"s176gm09chxcdzfg7dfhpaqhy583ze77","displayName":"yinshu","image":"https://avatars.githubusercontent.com/u/7459563?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089862106}}