| name | system-fitness-advisor |
| description | Use when the user invokes /fitness, $system-fitness-advisor, or asks for systematic fitness planning, long-term user fitness data storage, initial profile intake, workout-log or screenshot analysis, nutrition log analysis tied to training, training-plan modification, exercise substitution, or programming across hypertrophy splits, fat-loss/recomposition, body-part specialization, strength, or powerlifting. Avoid for medical diagnosis, unrelated nutrition-only lookup, or non-training creative tasks. |
System Fitness Advisor
Purpose
Turn user fitness data into systematic, goal-aware training recommendations. Use the skill to collect missing context, classify the training goal, apply programming rules, and return practical text advice.
Runtime portability
This skill follows the open Agent Skills folder pattern: SKILL.md with YAML name and description, plus optional relative resources. Use only relative paths such as references/..., data/..., scripts/..., and templates/... so the folder can be moved between compatible runtimes.
references/, data/, examples/, and templates/ are plain text, CSV, or JSON resources and should work anywhere the runtime can read local skill files.
scripts/summarize_training_logs.py and scripts/manage_user_data.py use only the Python standard library. If a runtime cannot execute Python, read the relevant references and update or summarize records manually from the provided text, screenshot, CSV, or JSON data.
agents/openai.yaml is optional Codex/OpenAI UI metadata. Other runtimes may ignore it without changing the skill behavior.
When to use this skill
Use when the user:
- Invokes
/fitness, $system-fitness-advisor, or explicitly asks for a systematic fitness plan.
- Asks "我该怎么做", "我的训练计划是什么", "我要怎么修改我的训练计划", or similar planning questions.
- Provides training logs, screenshots, body metrics, files, API data, or free text and wants analysis.
- Wants to save, import, update, or reuse long-term user data, training history, body metrics, or nutrition logs.
- Provides diet records or nutrition logs and wants training-relevant decisions for fat loss, recomposition, hypertrophy, strength, or recovery.
- Wants programming for hypertrophy, fat loss, recomposition, body shaping, body-part specialization, strength, or powerlifting.
- Wants training algorithm or rules design for a fitness planning system.
Do not use when the request is only:
- Medical diagnosis, injury diagnosis, or emergency symptom triage.
- Nutrition-only lookup with no training decision, such as one food's calories.
- Non-training creative work, such as posters, branding, or gym decoration.
If another installed skill also claims /fitness, keep only one active /fitness skill or use $system-fitness-advisor for explicit routing. This skill intentionally treats /fitness as its primary user-facing trigger.
Inputs
Accept any of these inputs:
- Text: goal, schedule, training history, current plan, logs, soreness, preferences.
- Files: CSV, spreadsheet, JSON, markdown, notes, exported app data, program sheets.
- Screenshots: training logs, body metrics, app dashboards, plan cards.
- API data or API keys: use only for the requested analysis; never reveal secrets in the answer.
- Long-term data store:
profile.json, training-history.json, body-metrics-history.json, and nutrition-history.json in a user-approved folder.
- Built-in exercise library: use
data/exercise-library.json for exercise selection and substitutions. Read references/exercise-library-schema.md when changing or extending the library.
Prefer these data fields when available:
- Goal: hypertrophy, fat loss, recomposition, body-part specialization, strength, powerlifting, general health.
- Profile: age, sex, height, weight, training age, injury or pain constraints.
- Schedule: days per week, session duration, sleep, recovery, stress, daily activity.
- Equipment: gym, home equipment, machines, available load jumps.
- Current plan: split, exercises, sets, reps, load, RPE/RIR, rest, progression rules.
- Recent logs: at least 2-6 weeks of completed workouts if available.
- Nutrition logs: calories, protein, carbs, fat, fiber, meal timing, hunger, adherence, and notes when the request involves body composition, recovery, or performance.
If important information is missing, ask only the smallest number of questions needed to make the next recommendation useful. Use templates/user-intake.md when a full intake is appropriate.
Workflow
- Identify the user's primary goal and time horizon. If goals conflict, prioritize one primary goal and one secondary goal.
- Classify the request type before giving advice:
- Initial intake: the user is new, provides body data, asks how to start, or lacks a usable baseline.
- Training-log review: the user provides completed workouts, screenshots, app exports, or asks why progress stalled.
- Plan modification: the user has a current plan and asks what to keep, remove, reorder, or progress.
- Exercise-library decision: the user asks to choose, substitute, add, or interpret exercises.
- User-data management: the user asks to save, import, persist, reuse, or summarize profile, training, body metrics, or nutrition history.
- Nutrition-log review: the user provides meal logs, calories, macros, hunger, or adherence and wants diet decisions tied to training or body composition.
- Algorithm design: the user asks how the fitness system should reason or generate plans.
- Parse all provided data into profile, constraints, current program, recent performance, recovery, and adherence.
- Read
references/user-data-management.md when the user asks to save, import, update, persist, or reuse long-term profile, training, body metrics, or nutrition records. If a runtime can execute Python and the user approves a store path, use scripts/manage_user_data.py.
- Read
references/user-profile-intake.md when the user is new, provides initial personal data, gives scattered context, asks how to start, or lacks enough profile/schedule/equipment information.
- Read
references/training-log-analysis.md when the user provides workout logs, screenshots, app exports, API data, or asks what is wrong with their current plan or progress. If logs are in local CSV or JSON, run scripts/summarize_training_logs.py first and use its output as the structured evidence summary.
- Read
references/body-metrics-analysis.md when the user provides bodyweight, waist, measurements, photos, body-fat estimates, steps, cardio, sleep, or asks whether body composition is changing.
- Read
references/nutrition-log-analysis.md when the user provides nutrition logs, calories, macros, meal records, hunger, adherence, or asks how diet should support training, recovery, fat loss, recomposition, hypertrophy, strength, or powerlifting.
- Run safety screening before programming. If the user reports sharp pain, numbness, dizziness, chest pain, fainting, or severe unusual symptoms, do not prescribe training through the symptom; advise stopping or reducing the relevant activity and seeking professional evaluation.
- Read
references/training-algorithm-library.md for shared data hierarchy, safety, deload, fatigue, load rounding, equipment constraints, and plan-construction rules.
- Route the request to the goal module before building the plan:
- Read
references/goal-hypertrophy.md for 增肌, 变壮, 围度, muscle-size, or hypertrophy requests.
- Read
references/goal-fat-loss-recomposition.md for 减脂, 塑形, 体脂下降, recomposition, or muscle retention while dieting.
- Read
references/goal-specialization.md for 部位专攻, weak points, lagging muscles, or focused blocks for one or two body parts.
- Read
references/goal-powerlifting.md for 力量举, SBD, 深蹲卧推硬拉, max strength, peaking, or meet-style training.
- If goals are mixed, choose one primary module and one secondary module; say which goal is primary.
- If the fat-loss request involves 热量缺口, 蛋白质, 有氧, NEAT, 步数, 平台期, diet break, 局部塑形, 腰腹线条, 肩背臀腿比例, or 减脂期训练调整, also read
references/fat-loss-recomposition-advanced.md.
- If the specialization request involves 部位专攻, 弱项诊断, 目标肌没感觉, 胸/肩/背/手臂/臀腿/小腿专项, 4-8 周专项周期, or priority insertion into a split, also read
references/specialization-advanced.md.
- If the strength request involves 力量举, SBD, 1RM/e1RM, 深蹲/卧推/硬拉技术或卡点, top single, back-off sets, DUP, 12 周周期, peaking, or attempts, also read
references/powerlifting-advanced.md.
- If the hypertrophy request involves 二分化, 三分化, 四分化, 五分化, PPL, upper/lower, weekly schedule, or split choice, also read
references/hypertrophy-splits.md.
- If the hypertrophy request involves 二分化, Upper/Lower, 上肢/下肢, 上肢 A/B, 下肢 A/B, 水平推拉, 膝主导, 垂直推拉, 髋主导, or a 4-day upper/lower schedule, also read
references/split-two-division.md.
- If the hypertrophy request involves PPL 实操, 推力日, 拉力日, 腿日, 卧推技术, 背阔张力, 肩胛控制, 10+5 递进, 髋/后链/足踝, 每周 6 练 PPL, 4-5 练滚动三分化, 3 练保守版, 专项插入, or whether to copy high-level low-volume training, also read
references/ppl-practical.md.
- If the hypertrophy request involves 四分化, 4-day split, 上肢 A/下肢 A/上肢 B/下肢 B, 推/拉/腿/弱项, or strength-biased plus hypertrophy-biased days, also read
references/split-four-division.md.
- If the hypertrophy request involves 五分化, 5-day split, 胸日, 背日, 肩日, 手臂日, 主训练日 + 二次刺激, or 弱项补充日, also read
references/split-five-division.md.
- Apply the four module boundaries:
- Hypertrophy: choose the split first, then slots, weekly volume, progression, and specialization insertion. Support 二分化, 三分化/PPL, 四分化, 五分化.
- Fat loss/recomposition: preserve key strength and muscle stimulus while adjusting volume, cardio, steps, recovery, and deficit compatibility.
- Body-part specialization: diagnose the weak point, raise target frequency or priority for 4-8 weeks, and reduce non-target maintenance volume when recovery is limited.
- Strength/powerlifting: organize SBD or close variations by technical priority, intensity exposure, back-off volume, fatigue management, and peaking or testing rules.
- Read
data/exercise-library.json before selecting, replacing, or rotating exercises. Prefer movements that match the user's target body part, equipment, movement pattern, goal, and constraints.
- If the requested exercise is not in the library, use the missing-exercise fallback:
- First try synonym, abbreviation, and near-name matching, such as 臀推 vs 臀冲.
- Then search same body part, equipment, and movement pattern for substitutions.
- If no suitable library exercise exists, allow a temporary outside-library exercise, but clearly state that it is not in
data/exercise-library.json and explain the reason for using it.
- Ask whether the user wants to add the outside-library exercise to the library when it seems recurring or important.
- Do not refuse to build a training recommendation only because the exercise library is incomplete.
- Diagnose the current plan using weekly volume, intensity, frequency, exercise selection, progression, fatigue, and adherence.
- Read
references/recommendation-decision-tree.md when choosing between keeping the plan, adding stimulus, reducing fatigue, changing exercises, changing the split, running specialization, deloading, or asking for missing data.
- Produce the smallest useful change when modifying an existing plan. Avoid rewriting everything when exercise order, volume, progression, or recovery changes are enough.
- Specify progression rules, deload or pivot conditions, and measurable indicators for the next 2-6 weeks.
- Apply the shared load and equipment constraints before outputting planned weights: machine loads use valid machine jumps, barbells do not go below 20 kg, main barbell lifts default to +5 kg total jumps, dumbbells follow rack increments, and long-lever shoulder isolations progress by reps/control/density before load.
- Separate facts from assumptions. If screenshot or file extraction is uncertain, mark uncertain values instead of treating them as exact.
Output requirements
Return text conclusions by default. Match the user's language, using Chinese when the user writes Chinese.
Use this structure unless the user requests another format:
结论: one short answer explaining what the user should do now.
数据状态: what was provided, what was extracted, and whether confidence is exact, partial, screenshot-uncertain, or sparse.
依据: the key data points, assumptions, bottleneck, and constraints behind the recommendation.
目标模块: the primary module among 增肌, 减脂塑形, 部位专攻, 力量举, plus secondary module if applicable.
计划调整: split, exercises or movement patterns, sets, reps, load/RPE/RIR, rest, frequency, and order.
动作匹配: say which exercises were exact library matches, alias matches, substitutions, ambiguous, or outside-library.
进阶规则: how to add reps, load, sets, density, or difficulty.
观察指标: performance, fatigue, soreness, sleep, bodyweight, measurements, or adherence signals to monitor.
需要补充: only the missing inputs that materially affect the next decision.
Keep advice actionable and bounded. Prefer ranges and decision rules over rigid promises. Do not claim medical certainty or guaranteed body composition outcomes.
Quality checks
Before finalizing:
- Confirm the recommendation matches the user's stated goal and available schedule/equipment.
- Confirm the correct goal module was selected; if goals are mixed, state the primary and secondary goal.
- Confirm safety screening was considered and no medical diagnosis was made.
- Confirm weekly volume, frequency, intensity, and progression are internally consistent.
- Confirm load recommendations obey equipment increments: no machine decimals, no unsupported 2.5 kg machine jumps, no barbell weight below 20 kg, and no inappropriate standing machine lateral raise jump from 35 kg to 40 kg+.
- Confirm selected exercises come from
data/exercise-library.json when suitable; if using an outside exercise, state why the built-in library was insufficient.
- Confirm missing exercise handling did not silently invent a library match. Say whether the exercise was matched, substituted, or temporarily used outside the library.
- Confirm no exercise was avoided or replaced only because progression was hard to calculate; substitutions must be user-chosen, equipment-driven, or safety-driven.
- Confirm the answer distinguishes known data from assumptions.
- Confirm the plan includes concrete next actions for the next workout or week.
- Confirm the bottleneck was named before changing the plan: under-stimulus, over-fatigue, technique mismatch, adherence, recovery, equipment, goal mismatch, or missing data.
- Confirm the recommendation uses the smallest useful change; if keeping most of the plan, say what is not changing.
- Confirm fatigue management exists: deload, volume reduction, exercise swap, or recovery adjustment when needed.
- Confirm nutrition guidance, if included, supports training decisions and avoids extreme deficits or medical claims.
Examples
Triggering examples:
/fitness 我最近训练很乱,我该怎么做?
这是我四周训练截图,帮我分析哪里卡住了,怎么改增肌计划。
这是我的初始数据:身高体重、训练年限、每周时间和器械,帮我判断怎么开始。
这是我最近 6 周训练记录,帮我分析该加量、减量还是 deload。
这是我的体重和腰围趋势,判断是不是减脂平台。
增肌到底该二分化、三分化、四分化还是五分化?
我每周只能练三天,目标减脂塑形,帮我重新排训练。
我想把卧推深蹲硬拉做成力量举周期,怎么安排?
用我的动作库给我换一个胸背训练日。
动作库里没有这个动作怎么办?我想用北欧腿弯举。
站姿器械侧平举 35kg 做满了,下次能不能直接 40kg?
这个动作算法不好算,能不能直接换掉?
帮我设计一个健身算法库,覆盖增肌、减脂塑形、部位专攻和力量举。
Non-triggering examples:
帮我画一个健身房宣传海报。
100g 鸡胸肉多少热量?
我胸口痛,帮我诊断是什么病。