Track body weight with full CRUD operations, unit conversion, and trend analysis. Trigger when user reports weight, asks about weight trend, wants to correct a weight entry, or change their unit preference. Trigger phrases: 'I weigh...', '体重...', '称了一下...', 'my weight is...', 'change to pounds', '改成斤', 'weight trend', '体重趋势'.
⚠️ SILENT OPERATION: Never narrate internal actions, skill transitions, or tool calls to the user. Just do it silently and respond with the result.
Use TOOLS.md Quick Reference first. If tz_offset, unit_preference, and daily_cal_target are already in the auto-injected TOOLS.md context, use those values directly — do NOT read timezone.json or health-profile.md.
Only fall back to reading those files if Quick Reference is missing or outdated.
Do NOT read this SKILL.md again if it's already in context from a prior turn.
File: {workspaceDir}/data/weight.json — JSON object keyed by ISO-8601 datetime with timezone offset. Each entry: { "value": 80, "unit": "kg" }.
Script path: python3 {baseDir}/scripts/weight-tracker.py
save-and-check.py (preferred)Use this for all weight saves. Combines save + deviation-check in ONE call — no second tool call needed.
python3 {baseDir}/scripts/save-and-check.py \
--data-dir {workspaceDir}/data \
--value 79.5 --unit kg \
--tz-offset 28800 \
--plan-file {workspaceDir}/PLAN.md \
--health-profile {workspaceDir}/health-profile.md \
--user-file {workspaceDir}/USER.md \
--wgs-script {weight-gain-strategy:baseDir}/scripts/analyze-weight-trend.py \
[--correct]
Returns:
{
"save": { "action": "created"|"updated", "key": "<datetime>", "value": 79.5, "unit": "kg" },
"deviation": { "triggered": true|false, "severity": "none"|"light"|"cause-check", ... }
}
deviation is null if PLAN.md missing, health flags active, or insufficient data — no extra handling needed.weight-tracker.py saveUse only when deviation-check is not needed (e.g., onboarding initial weight).
python3 {baseDir}/scripts/weight-tracker.py save \
--data-dir {workspaceDir}/data \
--value 79.5 --unit kg \
--tz-offset 28800 \
[--correct]
--correct: force overwrite most recent entry (when user explicitly says "that was wrong")loadpython3 {baseDir}/scripts/weight-tracker.py load \
--data-dir {workspaceDir}/data \
--display-unit kg \
[--last 7] \
[--from 2026-02-01 --to 2026-03-06]
Returns entries converted to --display-unit, rounded to 1 decimal.
See references/crud-operations.md for: delete, update, set-unit.
timezone.json → tz_offset; read health-profile.md → Unit Preference (parallel, first session only)save-and-check.py — one call does both save and deviation-check:
python3 {baseDir}/scripts/save-and-check.py \
--data-dir {workspaceDir}/data \
--value <N> --unit <u> --tz-offset <tz> \
--plan-file {workspaceDir}/PLAN.md \
--health-profile {workspaceDir}/health-profile.md \
--user-file {workspaceDir}/USER.md \
--wgs-script {weight-gain-strategy:baseDir}/scripts/analyze-weight-trend.py
save.action: "created" → "Logged ✓"; "updated" → "Updated ✓". Show value in preferred unit.deviation is null or triggered: false → just the log confirmation.deviation.triggered: true → respond per severity. See references/deviation-workflow.md.load with appropriate filters and --display-unitSee references/crud-operations.md.
save. Exception: past/hypothetical ("我以前80公斤").emotional-support skill.fasting: true in context.| File | Contents |
|---|---|
references/crud-operations.md | Delete, update, set-unit commands + correction workflow |
references/deviation-workflow.md | Deviation-check severity table, response guide, command |
references/integrations.md | Which other skills use this skill's scripts |