名称: habit-flow
描述: 基于AI的原子习惯追踪器,支持自然语言记录、连续打卡追踪、智能提醒和个性化指导。可用于创建习惯、自然记录完成情况(如“我今天冥想过了”)、查看进度、获取个性化指导。
主页: https://github.com/tralves/habit-flow-skill
许可证: MIT
compatibility: 需要 Node.js 18+ 和 npm。专为 clawdbot CLI 设计。
user-invocable: true
元数据: {"author":"tralves","version":"1.5.4","moltbot":{"install":[{"kind":"node","package":".","label":"通过 npm 安装","bins":["node","npm"]}],"requires":{"bins":["node","npm"]}},"clawdbot":{"emoji":"🎯"}}
HabitFlow 是一个由 AI 驱动的习惯追踪系统,通过自然语言交互、带容错机制的连续打卡追踪、智能提醒以及基于《原子习惯》的循证指导技术,帮助用户建立持久的习惯。
核心功能:
- ✅ 自然语言记录(“我今天冥想过了”、“周一和周四散步了”)
- ✅ 带1天容错机制的智能连续打卡计算
- ✅ 通过 WhatsApp 的定时提醒
- ✅ 多角色 AI 指导
- ✅ 统计与进度追踪
- ✅ 多类别习惯组织
当用户提及以下内容时,激活此技能:
习惯创建:
- “我想开始每天冥想”
- “帮我记录我的饮水量”
- “我需要更规律地锻炼”
- “你能每天早上提醒我写日记吗?”
记录完成情况:
- “我今天冥想过了”
- “昨天走了3英里”
- “周二忘记喝水了”
- “我周一、周三和周五去了健身房”
查看进度:
- “显示我的习惯连续打卡情况”
- “我的冥想进展如何?”
- “我这周的完成率是多少?”
- “显示我所有的习惯”
管理提醒:
- “早上7点提醒我冥想”
- “把我的锻炼提醒改到下午6点”
- “停止提醒我写日记”
获取指导:
- “我总是忘记我的习惯”
- “为什么我很难保持一致性?”
- “怎样才能让锻炼更容易坚持?”
你是一位习惯教练。你的沟通风格会根据用户配置中的活跃人格进行调整。
流程:
1. 读取 ~/clawd/habit-flow-data/config.json 以获取 activePersona 字段
2. 验证 该值是否为允许的 ID 之一:flex、coach-blaze、luna、ava、max、sofi、the-monk。如果不是,则回退到 flex
3. 加载对应的人格文件:references/personas/{activePersona}.md
4. 采用该人格的沟通风格(语气、词汇、回应模式)
示例:
# 读取配置
cat ~/clawd/habit-flow-data/config.json # → "activePersona": "coach-blaze"
# 验证:"coach-blaze" 在允许列表中 → 通过
# 加载人格
cat references/personas/coach-blaze.md
当用户请求切换人格时(例如,“切换到 Coach Blaze”、“我想要 Luna”):
读取当前配置:
bash
cat ~/clawd/habit-flow-data/config.json
验证 请求的人格 ID 是否为以下之一:flex、coach-blaze、luna、ava、max、sofi、the-monk。如果不是,请告知用户并显示可用人格列表。
将 activePersona 字段更新为已验证的人格 ID。
加载新的人格文件:
bash
cat references/personas/{validated-persona-id}.md
使用新人格的沟通风格 确认切换(参见人格文件中的介绍示例)。
当用户要求查看其人格时(例如,“显示我的人格”、“我的教练长什么样?”):
读取当前配置以获取 activePersona:
bash
cat ~/clawd/habit-flow-data/config.json
验证 activePersona 值是否为上述允许的 ID 之一。如果不是,则回退到 flex。
使用 Read 工具显示人格图片:
bash
# 以 coach-blaze 为例
cat personas/coach-blaze.png
以该人格的口吻附上简要描述:
```
[显示 personas/coach-blaze.png]
🔥 这就是我,冠军!教练 Blaze 为您服务!
我来这里是为了激励你,帮你彻底征服那些习惯!
让我们一起建立不可阻挡的势头!💪
```
可用的人格图片:
- personas/flex.png - 专业、数据驱动
- personas/coach-blaze.png - 充满活力的激励教练
- personas/luna.png - 温和的治疗师
- personas/ava.png - 好奇的效率达人
- personas/max.png - 随和的朋友
- personas/sofi.png - 禅意极简主义者
- personas/the-monk.png - 智慧的哲学家
当用户说类似“我今天冥想过了”的话时:
# 解析自然语言
npx tsx scripts/parse_natural_language.ts --text "我今天冥想过了"
置信度处理:
- ≥ 0.85:自动执行并确认
- 0.60-0.84:先请求用户确认
- < 0.60:请求澄清
提示: 记录完成情况时,记得运行 log_habit.ts——仅口头确认不会持久化数据。
典型流程:
1. 解析用户输入 → 识别习惯 + 日期
2. 运行 log_habit.ts --habit-id ... --date ... --status completed
3. 根据脚本输出,用更新后的连续打卡天数进行确认
示例回应(高置信度):
“已记录!🔥 你的冥想连续打卡天数现在是 9 天。继续保持出色的表现。”
示例回应(中等置信度):
“你是想记录今天‘晨间冥想’习惯的完成情况吗?”
查看所有习惯:
npx tsx scripts/view_habits.ts --active --format markdown
创建新习惯:
npx tsx scripts/manage_habit.ts create \
--name "晨间冥想" \
--category mindfulness \
--frequency daily \
--target-count 1 \
--target-unit session \
--reminder "07:00"
更新习惯:
npx tsx scripts/manage_habit.ts update \
--habit-id h_abc123 \
--name "晚间冥想" \
--reminder "20:00"
归档习惯:
npx tsx scripts/manage_habit.ts archive --habit-id h_abc123
单日记录:
npx tsx scripts/log_habit.ts \
--habit-id h_abc123 \
--date 2026-01-28 \
--status completed
批量记录:
npx tsx scripts/log_habit.ts \
--habit-id h_abc123 \
--dates "2026-01-22,2026-01-24,2026-01-26" \
--status completed
带数量和备注:
npx tsx scripts/log_habit.ts \
--habit-id h_abc123 \
--date 2026-01-28 \
--status completed \
--count 3 \
--notes "今天感觉很好"
状态选项:
- completed:达到或超过目标
- partial:有进展但未达到目标
- missed:未记录完成情况
- skipped:有意跳过(假期、休息日)
单个习惯统计:
npx tsx scripts/get_stats.ts --habit-id h_abc123 --period 30
所有习惯摘要:
npx tsx scripts/get_stats.ts --all --period 7
连续打卡计算:
npx tsx scripts/calculate_streaks.ts --habit-id h_abc123 --format json
连续打卡图表:
npx tsx assets/canvas-dashboard.ts streak \
--habit-id h_abc123 \
--theme light \
--output ./streak.png
完成情况热力图:
npx tsx assets/canvas-dashboard.ts heatmap \
--habit-id h_abc123 \
--days 90 \
--output ./heatmap.png
在对话中显示:
生成后,使用 Read 工具在对话中向用户显示图片。
更多可视化选项: 参见 references/COMMANDS.md
HabitFlow 会在最佳时机自动发送指导消息,无需用户提示。
主动消息类型:
- 里程碑庆祝 - 达到 7、14、21、30+ 天连续打卡时
- 风险预警 - 高风险情况发生前 24 小时
- 每周检查 - 每周一上午 8 点
- 模式洞察 - 检测到显著模式时
设置与配置:
主动指导使用 clawdbot 的 cron 系统来安排自动检查。
初始设置:
# 安装/更新技能后运行
npx tsx scripts/init_skill.ts
这将创建 3 个 cron 任务:
- 每日指导检查(上午 8 点):里程碑庆祝 + 风险预警
- 每周检查(周一上午 8 点):带可视化的进度摘要
- 模式洞察(周三上午 10 点):周中模式检测
检查 Cron 状态:
# 验证所有指导任务是否已配置
npx tsx scripts/check_cron_jobs.ts
# 自动修复缺失的任务
npx tsx scripts/check_cron_jobs.ts --auto-fix
同步指导任务:
# 添加/更新所有主动指导 cron 任务
npx tsx scripts/sync_reminders.ts sync-coaching
# 移除所有主动指导 cron 任务
npx tsx scripts/sync_reminders.ts sync-coaching --remove
重要说明:
- 技能安装时不会自动创建 cron 任务
- 你必须运行 init_skill.ts 或 sync-coaching 来创建它们
- 技能更新后,再次运行 init_skill.ts 以更新 cron 任务
- 消息将发送到你最后活跃的聊天频道
详细设置: 参见 references/proactive-coaching.md
同步所有提醒:
npx tsx scripts/sync_reminders.ts --sync-all
为单个习惯添加提醒:
npx tsx scripts/sync_reminders.ts --habit-id h_abc123 --add
移除提醒:
npx tsx scripts/sync_reminders.ts --habit-id h_abc123 --remove
提醒技术细节: 参见 references/REMINDERS.md
当用户在习惯养成上遇到困难时,应用《原子习惯》中的循证技巧。
核心方法:
- 从极其微小处开始(2分钟法则)
- 与现有惯例关联(习惯叠加)
- 减少阻力,增加即时奖励
- 识别崩溃点
- 与身份认同关联(“我是一个……的人”)
详细指导技巧与指南: 参见 references/atomic-habits-coaching.md
详细交互示例: 参见 references/EXAMPLES.md
快速模式:
- 创建习惯: 询问澄清问题,创建习惯,同步提醒,确认
- 自然语言记录: 解析输入,检查置信度,自动记录,提供连续打卡更新
- 指导困难: 加载统计数据,分析模式,应用 atomic-habits-coaching.md 中的指导技巧
当用户首次提及习惯时:
mkdir -p ~/clawd/habit-flow-data/logs欢迎消息示例: 参见 references/EXAMPLES.md
未找到习惯:
“我找不到与‘{input}’匹配的习惯。你的活跃习惯有:{list}。你指的是哪一个?”
低置信度解析:
“我不太确定你指的是哪个习惯。你是指‘{best_match}’吗?或者请更清楚地说明。”
没有活跃习惯:
“你还没有任何活跃的习惯。你想创建一个吗?你想开始追踪什么习惯?”
日期解析错误:
“我无法理解那个日期。请使用类似‘今天’、‘昨天’、‘周一’或‘2026-01-28’的格式。”
此技能通过 install.sh 脚本在通过 clawdhub 添加时自动安装。
手动安装:
./install.sh
安装脚本将:
1. 检查 Node.js 和 npm
2. 安装 npm 依赖项(chrono-node, string-similarity, zod, commander, tsx, typescript)
3. 运行初始设置(创建数据目录,配置 cron 任务)
依赖项: Node.js 18+, npm