AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Weight Tracking

skill-zwjbendn-weight-loss-skill-weight-tracking · by zwjbendn

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', '体重趋势'.

No reviews yet
0 installs
20 views
0.0% view→install

Install

$ agentstack add skill-zwjbendn-weight-loss-skill-weight-tracking

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-zwjbendn-weight-loss-skill-weight-tracking)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
6mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Weight Tracking? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Weight Tracking

> ⚠️ SILENT OPERATION: Never narrate internal actions, skill transitions, or tool calls to the user. No "Let me check...", "Now I'll transition to...", "Reading your profile...". Just do it silently and respond with the result.

Manage body weight records with full CRUD operations. All data lives in a single JSON file; display always uses the user's preferred unit.

Data Storage

File: {workspaceDir}/data/weight.json

Format: JSON object keyed by ISO-8601 datetime (with timezone offset):

{
  "2026-03-01T08:30:00+08:00": { "value": 80, "unit": "kg" },
  "2026-03-04T07:45:00+08:00": { "value": 79.5, "unit": "kg" },
  "2026-03-04T21:00:00+08:00": { "value": 79.8, "unit": "kg" }
}
  • Each entry stores the original value and original unit as reported by the user
  • Multiple entries per day are supported (e.g., morning and evening weigh-ins)
  • Keys are sorted chronologically

Unit Preference

Stored in: health-profile.md > Body > Unit Preference

## Body
- **Unit Preference:** kg
  • Set during onboarding (inferred from user input: "80kg" → kg, "165 lbs" → lb, "130斤" → kg)
  • User can change at any time via set-unit command
  • All display/output uses this preference, with values rounded to 1 decimal place

Scripts

Script path: python3 {baseDir}/scripts/weight-tracker.py

1. Save — save

python3 {baseDir}/scripts/weight-tracker.py save \
  --data-dir {workspaceDir}/data \
  --value 79.5 --unit kg \
  --tz-offset 28800 \
  [--correct]
  • Reads timezone.json offset to generate local datetime key
  • Auto-detect new vs correction: if the last entry is ≤ 30 minutes ago, overwrite it (treat as correction). Otherwise, create a new entry.
  • --correct flag: force overwrite the most recent entry regardless of time gap (for when user explicitly says "that was wrong" / "刚才称错了")
  • Returns: { "action": "created" | "updated", "key": "", "value": , "unit": "" }

2. Load — load

python3 {baseDir}/scripts/weight-tracker.py load \
  --data-dir {workspaceDir}/data \
  --display-unit kg \
  [--last 7] \
  [--from 2026-02-01 --to 2026-03-06]
  • Returns all matching entries converted to --display-unit, rounded to 1 decimal place
  • --last N: return the N most recent entries
  • --from / --to: filter by date range (inclusive)
  • Without filters: returns all entries

3. Delete — delete

python3 {baseDir}/scripts/weight-tracker.py delete \
  --data-dir {workspaceDir}/data \
  --key "2026-03-06T08:30:00+08:00"
  • Removes the entry with the exact datetime key
  • Returns confirmation or error if key not found

4. Update — update

python3 {baseDir}/scripts/weight-tracker.py update \
  --data-dir {workspaceDir}/data \
  --key "2026-03-06T08:30:00+08:00" \
  --value 75.0 --unit kg
  • Updates the value and unit for an existing entry
  • Returns confirmation or error if key not found

5. Set Unit Preference — set-unit

python3 {baseDir}/scripts/weight-tracker.py set-unit \
  --health-profile {workspaceDir}/health-profile.md \
  --unit lb
  • Updates health-profile.md > Body > Unit Preference
  • Returns confirmation with the new unit

Timezone Handling

The server runs in UTC. To record the correct local datetime:

  1. Read timezone.json to get tz_offset (seconds)
  2. Pass --tz-offset to the save command
  3. The script calculates the user's local time and formats the key as ISO-8601 with offset (e.g., 2026-03-06T08:30:00+08:00)

Workflow

User Reports Weight

  1. Read health-profile.md > Body > Unit Preference for display unit
  2. Call save with the reported value, unit, and timezone offset
  3. Check the response action field:
  • "created" → confirm: "Logged ✓"
  • "updated" → confirm: "Updated ✓"
  1. Display the saved value in the user's preferred unit

User Asks for Trend / History

  1. Read health-profile.md > Body > Unit Preference
  2. Call load with appropriate filters and --display-unit
  3. Present the data (table, summary, or trend description depending on context)

User Wants to Correct an Entry

  1. If user says "that was wrong" / "刚才称错了" after a recent save → call save with --correct and the new value
  2. If user references a specific date → call update with the matching --key

User Changes Unit Preference

  1. Call set-unit with the new unit
  2. Confirm the change to the user

Interaction Guidelines

  • Never comment on weight changes unprompted. Just log and confirm. Emotional reactions to weight (positive or negative) are handled by the emotional-support skill.
  • Always display in preferred unit, rounded to 1 decimal place.
  • Accept any common unit in user input: kg, lb, lbs, 斤 (catty = 0.5 kg), 公斤. Convert to standard kg or lb for storage.
  • Fasting tag: if the user mentions they haven't eaten yet, or it's a morning weigh-in before breakfast, note fasting: true in the response context (for notification-composer to use). If they've already eaten, note fasting: false.

Used By Other Skills

This skill's script is called by other skills for weight data access:

| Skill | Usage | |-------|-------| | notification-composer | save when user replies to weight reminder; load --last 1 to check if already weighed today | | weekly-report | load --from --to for weekly weight trend | | emotional-support | load --last N for recent weight context | | habit-builder | load for weight trend analysis | | user-onboarding-profile | save to record initial weight during onboarding | | weight-loss-planner | load --last 1 to get current weight for calculations |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.