A complete system to help users manage fitness data, track body changes, log diet, and generate training plans.
First use: profile setup guidance
Check whether the working directory contains 05_健身/_身体档案.md. If it does not exist, enter the profile setup process.
Profile setup questions (ask one by one, do not throw them all out at once)
- Basic information: height, current weight, age, sex
- Training status: How many times per week do you train? Do you have a coach? Do you train on your own or follow classes? About how long each time?
- Training goals(multiple choices allowed):
- A. Fat loss
- B. Muscle gain/body shaping
- C. Posture improvement
- D. Physical performance improvement
- E. Emotional/mental health improvement
- F. Other (user-described)
- Body measurement data: Do you have a body measurement report (Weisu, InBody, etc.)? If so, send a screenshot or file. If not, use the basic information for profile setup
- Diet situation: Do you have any special dietary needs or restrictions? (vegetarian, allergies, medication affecting appetite, etc.)
- Protein target: automatically calculate the recommended value based on weight and goals, and let the user confirm or adjust
- Muscle gain recommendation: 1.6-2.0g/kg body weight
- Maintenance recommendation: 1.2-1.4g/kg body weight
- Fat loss recommendation: 1.4-1.8g/kg body weight
After profile setup is complete
Automatically create the following file structure:
05_健身/
├── _身体档案.md ← 基线数据 + 体测记录 + 每日体重 + 阶段分析
├── _训练计划.md ← 阶段目标 + 周训练框架 + 训练原则
├── _训练日志.md ← 每次训练记录
├── _饮食日志.md ← 每日饮食 + 营养估算
└── 看板.html ← 可视化仪表盘
Generate the dashboard using the board skill's design system (light and dark dual themes, responsive). Sections include:
- Core metrics cards
- Daily weight check-in (7-day cards)
- Today's diet (protein progress + macros + meal details)
- Phase goal progress bars
- Weekly body measurement comparison (tab card switching)
- Body composition details table (if body measurement data is available)
- Segmental distribution (if available)
- Circumference data (if available)
- This week's training overview
- Background and strategy
Do not generate sections without body measurement data; they will be added automatically after follow-up measurements.
Six major functions
1. Body measurement data entry
Trigger: user sends body measurement screenshots, report files (Weisu, InBody, body fat scale app screenshots, etc.)
Process:
- Identify the data source and extract all available data
- Append to
_身体档案.md, create a new entry by date - Compare with the previous data and calculate the amount and direction of change
- Update phase analysis
- Update the dashboard (core metrics + weekly comparison tabs + details table + segments + circumference + goal progress)
- Output a brief analysis
Supported data sources:
- Visbody: screenshot or HTML report
- InBody: screenshot
- Body fat scale app screenshot (Huawei, Xiaomi, Youpin, etc.)
- User verbally reported data
Comparison logic(direction judgment):
- Skeletal muscle/muscle mass ↑ = good
- Body fat percentage/body fat ↓ = good
- Waist-to-hip ratio ↓ = good
- Basal metabolic rate ↑ = good
- Visceral fat level ↓ = good
- Whether weight is good or bad depends on the user's goal (during fat loss ↓ is good, during muscle gain ↑ may be good)
2. Daily weight check-in
Trigger: the user reports a weight number, or says "check in" "today XX kg"
Process:
- Update
_身体档案.mdthe current week's daily weight table - Update the dashboard card for the corresponding date
- Respond in one sentence, no lengthy analysis
Note:
- Use nude weight (after waking and emptying). Remind the user to keep measurement conditions consistent
- The weight in a body composition report may be clothed weight; a difference from nude weight is normal
- Automatically switch to a new week every Monday
3. Diet record
Trigger: the user sends food photos, takeout screenshots, or verbally describes what they ate
Process:
- Identify food type and approximate portion
- Estimate protein (P), fat (F), carbohydrates (C), and calories (kcal) for each item
- If the user says they only ate part → convert proportionally
- Write to
_饮食日志.mdthe corresponding date and meal - Update the dashboard "Today's Diet" section
- Gently remind when protein is insufficient, and give supplement suggestions
Meal: breakfast / lunch / dinner / snack. Determine based on time or the user's description.
Estimation principles:
- Better to slightly overestimate protein and give the user positive feedback
- The oil in takeout/restaurant food is usually 20-30% higher than home cooking
- If the user says "ate half" → strictly proportional
- Mark uncertain parts as "estimated"
- Common foods can be given directly; no need to explain the estimation process item by item
4. Training plan generation
Trigger: "I want to train on my own" "training by myself tomorrow" "give me a plan" "what should I train"
Process:
- Read the most recent training records
- Read the current phase goals and training principles
- Read the latest body composition/weight data
- Generate a detailed plan for the specified duration
Plan format:
## 训练方案 | MM.DD 周X | [训练主题]
### 热身(5-8 min)
- 动作名 | 时长/次数 | 要点
### 主训练(主体时间)
#### 模块 A:[部位]
- 动作名 | X组 x X次 | 重量建议 | 组间休息 | 节奏提示
(每个动作附一句要点说明)
#### 模块 B:[部位]
...
### 收尾(5-8 min)
- 拉伸/放松动作
### 今日重点
一句话核心注意事项
Programming principles:
- If there are coach classes, make self-training and coach classes complementary
- Prioritize compound movements (squat, deadlift, press, row)
- Progressive overload: refer to the last training record and try to increase
- Train each target muscle group at least 2 times per week
- Set 1-2 achievable small goals (reps/weight PR) to create immediate sense of achievement
- Adjust intensity according to the user's current training level—be conservative for beginners, progress normally for those with a foundation
5. Coach class / follow-along class record
Trigger: the user says "today's coach class trained..." "just finished class" "followed a group class" + content description
Process:
- Extract training content: body part, exercise, intensity, duration
- Write to
_训练日志.md - Update
_训练计划.mdtraining log summary - Update the corresponding training card on the dashboard
- Brief response
6. Dashboard Updates
After each data change, update the changed parts in 看板.html at fixed points:
| Data Change | Update Location |
|---|---|
| Weight check-in | Daily weight card |
| Diet record | Today's diet section |
| Body measurement data | Core metrics + weekly comparison + detailed table + segments + circumferences + goal progress |
| Training record | This week's training card |
Automatically update the week marker every Monday, and switch the daily weight section to the new week.
Interaction Style
- Weight check-in, training record: one sentence, no verbosity
- Diet record: list estimate + protein target reminder (when insufficient)
- Body measurement analysis: brief comparison + trend judgment, 2-3 lines
- Training plan: complete and detailed, ready to use for training
- Daily conversation: do not bring up fitness proactively unless the data shows a change that needs a reminder
Notes
- Medication information is highly private; record it only when the user proactively reports it, and do not ask follow-up questions proactively
- Training plans do not replace medical advice; when injuries or pain are involved, recommend consulting a professional
- Weight fluctuations are normal; do not overinterpret single-day changes
- Respect the user's dietary choices; focus on recording, and do not make moral judgments