Diet Tracker
This skill helps track daily diet and achieve weight loss goals with automated meal reminders.
Trigger Conditions
User might say:
"I had [food] for lunch/dinner"
"What's my remaining calorie budget?"
"How many calories have I eaten today?"
"Log my meal"
"Check my diet progress"
Or automatically triggered by cron job for meal reminders.
Cron Job Integration
This skill works with automated cron jobs:
Lunch reminder: ~12:30 (checks if lunch logged, sends reminder if not)
Dinner reminder: ~18:00 (checks if dinner logged, sends reminder if not)
Cron job system event: 饮食记录检查:午餐 or 饮食记录检查:晚餐
User Profile (Required)
The skill reads from USER.md:
Daily calorie target (default: 1650 kcal)
Macronutrient targets (protein/carbs/fat)
Height, weight, age, gender, activity level (for TDEE calculation)
Activity levels:
Sedentary (little or no exercise)
Lightly active (light exercise 1-3 days/week)
Moderately active (moderate exercise 3-5 days/week)
Very active (hard exercise 6-7 days/week)
Extra active (very hard exercise + physical job)
Workflow
When User Logs a Meal:
Identify food items from user's description
Fetch nutrition data via
scripts/get_food_nutrition.py- MUST GET: calories(kcal), protein(g), carbs(g), fat(g)
- Searches web for calorie/protein/carbs/fat info
- Falls back to
references/food_database.jsonif needed - If complete nutrition data cannot be found, MUST clearly inform user of estimated values
Update daily log via
scripts/update_memory.py- Saves to
memory/YYYY-MM-DD.md - RECORD FORMAT:
Food Name - XX kcal (P: XXg, C: XXg, F: XXg) - Calculates meal totals
- Updates daily running totals
- Saves to
Report to user:
- MUST REPORT: calories + protein/carbs/fat grams
- Today's consumed / remaining calories
- MUST REPORT: Remaining macronutrient budgets
- Predicted weight change based on deficit/surplus
When User Asks for Status:
Read current day's memory file
Calculate totals consumed
Report:
- Remaining calorie budget
- Remaining protein/carbs/fat (if targets set)
- Weight change prediction
Scripts
scripts/get_food_nutrition.py: Fetches nutrition info + calculates TDEEscripts/update_memory.py: Updates daily memory file with meal datareferences/food_database.json: Fallback database of common foods
Error Handling
Common Issues
Issue: "Cannot read USER.md" or missing user data
Cause: User profile not configured
Solution: Ask user for height, weight, age, gender, activity level, and calorie target
Issue: Nutrition lookup fails for uncommon foods
Cause: Food not found in online databases
Solution: Ask user for approximate calorie count or use similar food from database
Issue: Multiple food items in one meal
Cause: User says "I had pizza, salad, and coke"
Solution: Process each item separately, sum the nutrition values
Data Format
Daily Memory Entry (memory/YYYY-MM-DD.md)
REQUIRED FORMAT — Must include calories + macronutrients:
## Diet Log
**Breakfast**: [food] - [X] kcal (P: [X]g, C: [X]g, F: [X]g)
**Lunch**: [food] - [X] kcal (P: [X]g, C: [X]g, F: [X]g)
**Dinner**: [food] - [X] kcal (P: [X]g, C: [X]g, F: [X]g)
**Daily Total**: [X] / [target] kcal
- Protein: [X] / [target]g (remaining: [X]g)
- Carbs: [X] / [target]g (remaining: [X]g)
- Fat: [X] / [target]g (remaining: [X]g)
**Predicted weight change**: [-/+ X] kg
⚠️ Strictly prohibited to record only calories while omitting macronutrient grams!
Progressive Disclosure
Level 1 (frontmatter): Skill activation criteria
Level 2 (SKILL.md): Full workflow instructions (this file)
Level 3 (references/): Food database and nutrition guidelines