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 INLINECODE1
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:
- 1. Identify food items from user's description
- Fetch nutrition data via INLINECODE3
-
MUST GET: calories(kcal), protein(g), carbs(g), fat(g)
- Searches web for calorie/protein/carbs/fat info
- Falls back to
references/food_database.json if needed
-
If complete nutrition data cannot be found, MUST clearly inform user of estimated values
- 3. Update daily log via INLINECODE5
- 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
- 4. 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:
- 1. 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 TDEE - INLINECODE9 : Updates daily memory file with meal data
- INLINECODE10 : 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:
CODEBLOCK0
⚠️ 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
饮食追踪器
该技能通过自动用餐提醒,帮助追踪日常饮食并实现减重目标。
触发条件
用户可能会说:
- - 我午餐/晚餐吃了[食物]
- 我今天的剩余热量预算还有多少?
- 我今天摄入了多少卡路里?
- 记录我的餐食
- 查看我的饮食进度
或由定时任务自动触发用餐提醒。
定时任务集成
该技能与自动定时任务配合使用:
- - 午餐提醒:约12:30(检查是否记录午餐,未记录则发送提醒)
- 晚餐提醒:约18:00(检查是否记录晚餐,未记录则发送提醒)
定时任务系统事件:饮食记录检查:午餐 或 饮食记录检查:晚餐
用户档案(必需)
技能从 USER.md 读取以下信息:
- - 每日热量目标(默认:1650千卡)
- 宏量营养素目标(蛋白质/碳水化合物/脂肪)
- 身高、体重、年龄、性别、活动水平(用于计算总每日能量消耗)
活动水平:
- - 久坐(很少或没有运动)
- 轻度活动(轻度运动1-3天/周)
- 中度活动(中等强度运动3-5天/周)
- 高度活动(高强度运动6-7天/周)
- 极度活动(高强度运动+体力工作)
工作流程
当用户记录餐食时:
- 1. 识别食物项目 从用户描述中
- 获取营养数据 通过 scripts/getfoodnutrition.py
-
必须获取:热量(千卡)、蛋白质(克)、碳水化合物(克)、脂肪(克)
- 搜索网络获取热量/蛋白质/碳水化合物/脂肪信息
- 必要时回退到 references/food_database.json
-
如果无法找到完整营养数据,必须明确告知用户为估算值
- 3. 更新每日日志 通过 scripts/update_memory.py
- 保存到 memory/YYYY-MM-DD.md
-
记录格式:食物名称 - XX千卡(蛋白质:XX克,碳水化合物:XX克,脂肪:XX克)
- 计算餐食总计
- 更新每日累计总计
- 4. 向用户报告:
-
必须报告:热量 + 蛋白质/碳水化合物/脂肪克数
- 今日已摄入/剩余热量
-
必须报告:剩余宏量营养素预算
- 基于热量赤字/盈余的预测体重变化
当用户询问状态时:
- 1. 读取当前日期的记忆文件
- 计算已摄入总量
- 报告:
- 剩余热量预算
- 剩余蛋白质/碳水化合物/脂肪(如设定目标)
- 体重变化预测
脚本
- - scripts/getfoodnutrition.py:获取营养信息 + 计算总每日能量消耗
- scripts/updatememory.py:用餐食数据更新每日记忆文件
- references/fooddatabase.json:常见食物的备用数据库
错误处理
常见问题
问题:无法读取USER.md或缺少用户数据
- - 原因:用户档案未配置
- 解决方案:询问用户的身高、体重、年龄、性别、活动水平和热量目标
问题:不常见食物的营养查询失败
- - 原因:在线数据库中未找到该食物
- 解决方案:询问用户大致热量值,或使用数据库中类似食物替代
问题:一餐中有多种食物
- - 原因:用户说我吃了披萨、沙拉和可乐
- 解决方案:分别处理每个项目,汇总营养数值
数据格式
每日记忆条目(memory/YYYY-MM-DD.md)
必需格式 — 必须包含热量和宏量营养素:
markdown
饮食日志
早餐:[食物] - [X]千卡(蛋白质:[X]克,碳水化合物:[X]克,脂肪:[X]克)
午餐:[食物] - [X]千卡(蛋白质:[X]克,碳水化合物:[X]克,脂肪:[X]克)
晚餐:[食物] - [X]千卡(蛋白质:[X]克,碳水化合物:[X]克,脂肪:[X]克)
每日总计:[X] / [目标]千卡
- - 蛋白质:[X] / [目标]克(剩余:[X]克)
- 碳水化合物:[X] / [目标]克(剩余:[X]克)
- 脂肪:[X] / [目标]克(剩余:[X]克)
预测体重变化:[-/+ X]千克
⚠️ 严禁只记录热量而省略宏量营养素克数!
渐进式信息展示
- - 第1级(frontmatter):技能激活条件
- 第2级(SKILL.md):完整工作流程说明(本文件)
- 第3级(references/):食物数据库和营养指南