隐藏成就系统 — 你不知道条件的隐藏成就,触发时弹出。嵌入 /good-night 自动检查。
隐藏成就系统。成就条件不提前告知用户,触发时才弹出。
~/Desktop/Notes/Personal/Analytics/achievements.json~/Desktop/Notes/Personal/Analytics/unlocked_achievements.json{
"achievements": [
{
"id": "first_blood",
"name": "First Blood",
"description": "完成第一个 Decision Journal 复盘",
"icon": "🩸",
"category": "meta",
"check": "decision_review_count >= 1",
"unlocked": false
}
]
}
{
"unlocked": [
{
"id": "first_blood",
"date": "2026-03-15",
"context": "复盘了 VRC binary threshold 决策"
}
]
}
| ID | Name | Icon | 条件 | 难度 |
|---|---|---|---|---|
| paper_machine | Paper Machine | 📄 | 一天内写 2000+ 字论文内容 | ⭐⭐ |
| experiment_streak_3 | Lab Rat | 🐀 | 连续 3 天提交实验 | ⭐⭐ |
| experiment_streak_7 | Mad Scientist | 🧪 | 连续 7 天提交实验 | ⭐⭐⭐ |
| midnight_oil | Midnight Oil | 🕯 | 22:00 后还在写代码 | ⭐ |
| cross_pollinator | Cross-Pollinator | 🐝 | 一周内读了 3 个不同领域的论文 | ⭐⭐ |
| ID | Name | Icon | 条件 | 难度 |
|---|---|---|---|---|
| gym_streak_3 | Getting There | 💪 | 连续 3 天健身 | ⭐⭐ |
| gym_streak_7 | Iron Will | 🏋️ | 一周健身 5 次 | ⭐⭐⭐ |
| leg_day | Never Skip | 🦵 | 做了 leg day(最容易跳过的) | ⭐ |
| ID | Name | Icon | 条件 | 难度 |
|---|---|---|---|---|
| first_blood | First Blood | 🩸 | 第一次 Decision Journal 复盘 | ⭐ |
| idea_machine | Idea Machine | 💡 | Idea Bank 积累 10 个 ideas | ⭐⭐ |
| inbox_zero | Inbox Zero | 📭 | Things Today 全部完成 | ⭐⭐ |
| early_bird | Early Bird | 🐦 | 10:00 前就开始工作 | ⭐ |
| task_streak_5 | On a Roll | 🎳 | 连续 5 天完成所有 Things Today 任务 | ⭐⭐⭐ |
| ID | Name | Icon | 条件 | 难度 |
|---|---|---|---|---|
| first_submit | Ship It | 🚀 | 提交一篇论文 | ⭐⭐⭐ |
| hundred_tasks | Centurion | 💯 | Things Logbook 累计完成 100 个任务 | ⭐⭐ |
| decision_calibrated | Oracle | 🔮 | Decision Journal 校准误差 < 10% | ⭐⭐⭐ |
| ID | Name | Icon | 条件 | 难度 |
|---|---|---|---|---|
| perfect_day | Perfect Day | ✨ | 任务全完成 + 健身 + 早睡 + 写了论文 | ⭐⭐⭐⭐ |
| night_owl_reversal | Reformed | 🦉→🐦 | 连续 7 天 23:00 前结束工作 | ⭐⭐⭐ |
| zero_day_recovery | Bounce Back | 🔄 | 前一天 0 任务完成,今天 5+ 完成 | ⭐⭐ |
/good-night 时:
achievements.json 和 unlocked_achievements.json🏆 Achievement Unlocked: [icon] [name] — [description]unlocked_achievements.json第一次使用时,创建 achievements.json(包含所有成就定义)和空的 unlocked_achievements.json。