ClawSkills logoClawSkills

Diet Tracker

追踪每日饮食并计算营养信息,以帮助实现减肥目标。当用户提供膳食信息、询问卡路里摄入量时使用...

介绍

# Diet Tracker

该技能通过自动化的膳食提醒,帮助追踪每日饮食并实现减重目标。

## 触发条件

用户可能会说: - “我午餐/晚餐吃了[食物]” - “我剩余的卡路里预算是多少?” - “我今天摄入了多少卡路里?” - “记录我的餐食” - “检查我的饮食进度”

或者由用于膳食提醒的 cron 任务自动触发。

## Cron 任务集成

该技能与自动化的 cron 任务配合工作:

- **午餐提醒**:~12:30(检查午餐是否已记录,若未记录则发送提醒) - **晚餐提醒**:~18:00(检查晚餐是否已记录,若未记录则发送提醒)

Cron 任务系统事件:`饮食记录检查:午餐` 或 `饮食记录检查:晚餐`

## 用户资料(必需)

该技能从 `USER.md` 读取: - 每日卡路里目标(默认:1650 kcal) - 宏量营养素目标(蛋白质/碳水化合物/脂肪) - 身高、体重、年龄、性别、活动水平(用于计算 TDEE)

**活动水平**: - 久坐(很少或不运动) - 轻度活动(每周 1-3 天轻度运动) - 中度活动(每周 3-5 天中度运动) - 高度活动(每周 6-7 天高强度运动) - 极高度活动(非常高强度运动 + 体力工作)

## 工作流程

### 当用户记录餐食时:

1. **从用户描述中识别食物项目** 2. **通过 `scripts/get_food_nutrition.py` 获取营养数据** - 在网上搜索卡路里/蛋白质/碳水化合物/脂肪信息 - 如有需要,回退使用 `references/food_database.json` 3. **通过 `scripts/update_memory.py` 更新每日记录** - 保存到 `memory/YYYY-MM-DD.md` - 计算单餐总量 - 更新每日累计总量 4. **向用户报告**: - 单餐营养细分 - 今日已摄入 / 剩余卡路里 - 基于盈亏预测的体重变化 - 宏量营养素进度(如果设定了目标)

### 当用户询问状态时:

1. 读取当天的 memory 文件 2. 计算已摄入总量 3. 报告: - 剩余卡路里预算 - 剩余蛋白质/碳水化合物/脂肪(如果设定了目标) - 体重变化预测

## 脚本

- `scripts/get_food_nutrition.py`:获取营养信息 + 计算 TDEE - `scripts/update_memory.py`:使用餐食数据更新每日 memory 文件 - `references/food_database.json`:常见食物的备用数据库

## 错误处理

### 常见问题

**问题**:“无法读取 USER.md”或用户数据缺失 - **原因**:未配置用户资料 - **解决方案**:询问用户的身高、体重、年龄、性别、活动水平和卡路里目标

**问题**:不常见食物的营养查询失败 - **原因**:在线数据库中未找到该食物 - **解决方案**:询问用户大概的卡路里计数,或使用数据库中的相似食物

**问题**:一餐中包含多种食物项目 - **原因**:用户说“我吃了披萨、沙拉和可乐” - **解决方案**:分别处理每个项目,汇总营养数值

## 数据格式

### 每日 Memory 条目

```markdown ## 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 **Remaining**: [X] kcal **Predicted weight change**: [-/+ X] kg ```

## 渐进式披露

- **级别 1(frontmatter)**:技能激活标准 - **级别 2(SKILL.md)**:完整工作流程说明(本文件) - **级别 3(references/)**:食物数据库和营养指南

更多产品