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.
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.
Likes Training Planner
Complete training plan solution for My Likes platform. One skill does it all: fetch data → analyze → generate → push.
Get run force, predicted times & pace zones (or estimate from race times)
Standard
analyze_data.cjs
Analyze patterns
N/A
push_plans.cjs
Push plans (supports bulk)
Standard
configure.cjs
Interactive setup
N/A
set-config.cjs
Quick config setter
N/A
fetch_activities.cjs Options
node scripts/fetch_activities.cjs [options]
Options:
--days <n> Number of days (default: 7, max: 30)
--start <date> Start date (YYYY-MM-DD)
--end <date> End date (YYYY-MM-DD, max 30 days from start)
--user-id <id> Query specific user (coach only)
--page <n> Page number (default: 1)
--limit <n> Items per page (default: 200, max: 2000)
--order-by <field> Sort: sign_date, run_km, run_time, tss
--order <asc|desc> Sort order (default: desc)
--output <file> Output file
fetch_ability.cjs Options
node scripts/fetch_ability.cjs [options]
Mode 1 — by run force (get predicted times and pace zones):
--runforce <0-99> Ability value, e.g. 50 or 50.5 (required for mode 1)
--celsius <0-40> Optional. Temperature in Celsius, default 6
Mode 2 — by race times (get estimated run force, at least one required):
--time-5km <sec|M:SS|H:MM:SS>
--time-10km, --time-hm, --time-fm, --time-3km, --time-mile Same format
## push_plans.cjs Options
```bash
node scripts/push_plans.cjs <plans.json> [options]
Options:
--key <api_key> Use specific API key
--game-id <id> Training camp ID (for bulk push)
--user-ids <ids> Comma-separated user IDs (e.g., "4,5,6")
--dry-run Preview without pushing
Bulk Push Requirements:
Must provide game_id when using user_ids
You must be creator or coach of the camp
All user_ids must be camp members
Max 200 plans per request
Training Code Format (name field)
Format: task1;task2;...
Basic task: duration@(type+range)
30min@(HRR+1.0~2.0) - 30 min easy run
5km@(PACE+5'00~4'30) - 5km with pace target
Interval group: {task1;task2}xN
Example: {5min@(HRR+3.0~4.0);1min@(rest)}x3
Rest: duration@(rest) (parentheses required)
Example: 2min@(rest)
Intensity Types
Type
Description
Example
HRR
Heart rate reserve %
HRR+1.0~2.0
VDOT
VDOT pace zone
VDOT+4.0~5.0
PACE
Absolute pace (min'sec)
PACE+5'30~4'50
t/
Threshold pace %
t/0.88~0.99
MHR
Max heart rate %
MHR+0.85~0.95
LTHR
Lactate threshold HR %
LTHR+1.0~1.05
EFFORT
Perceived effort
EFFORT+0.8~1.0
FTP
Power % (cycling)
FTP+0.75~0.85
CP
Absolute power W
CP+200~240
CSS
Critical swim speed %
CSS+0.95~1.05
TSP
Threshold swim pace %
TSP+0.95~1.05
OPEN
Open-ended
OPEN+1
Duration Units
min = minutes
s = seconds
m = meters
km = kilometers
c = count/reps
Training Type Mapping
Type Code
Description
qingsong
Easy run
xiuxi
Rest day
e
Aerobic training
lsd
Long slow distance
m
Marathon pace
t
Threshold/lactate training
i
Interval training
r
Speed/repetition
ft
Fartlek
com
Combined workout
ch
Variable pace
jili
Strength training
max
Max HR test
drift
Aerobic stability test
other
Other
1/7/2/3/4/5/6
1.6km/2km/3km/5km/10km/HM/FM test
Intensity Weights
Weight
Color
Description
q1
Red
High intensity
q2
Orange
Medium intensity
q3
Green
Low intensity
xuanxiu
Blue
Optional/recovery
Example Usage
Coach: Bulk Push to Camp Members
# 1. Get your camps
node scripts/fetch_games.cjs
# 2. Get camp members
node scripts/fetch_game.cjs --game-id 973
# 3. Create plan for members# ... edit plan.json ...# 4. Bulk push to specific members
node scripts/push_plans.cjs plan.json --game-id 973 --user-ids "4,5,6"