这份复盘不是继续讲愿景,而是把 todo.zondev.top、 diary.zondev.top、Obsidian 同步脚本、线上响应头、当前 schema 和最近同步摘要 对齐后,重新回答四个问题:你真正想做的是什么,现在已经实现了哪些,还差哪些,以及怎样以最低维护成本把它完善成统一的 LifeOS 驾驶舱。
你真正要的是一个统一决策台:它能明确告诉你今天的 Top1、什么能交给 AI、什么只能你做、什么只是噪音。
最佳实践是让 Todo 做驾驶舱,Obsidian 和 Diary 继续保存原始事实,Task Ops 保存执行流水。
你已经明确要求数据层和展示层抽屉式分离,这意味着四象限、时间轴、编辑器、评分卡都必须是 derived views。
| 你要的东西 | 正确定位 | 判断 |
|---|---|---|
| 统一入口 | todo.zondev.top = operating cockpit | 它应该回答“现在最该做什么”,而不是做所有原始内容的唯一仓库。 |
| Diary 评分、总结、任务引用 | Diary = daily evidence stream | Diary 负责“发生了什么”,Todo 负责“下一步做什么”。 |
| 四象限 / 时间轴 / AI-human 分类 | derived views | 这些是透镜,不应该反过来污染 canonical truth。 |
| 后续大改样式 | data / materializer / renderer / theme | 不拆层,后面任何首页改版都会拖着解析逻辑一起重写。 |
2026-03-17 实测 todo.zondev.top 与 diary.zondev.top 都返回 HTTP 200。
密码从环境变量读取,服务端在未配置时会直接报错,不再回退到默认值;登录页也已支持明文查看眼睛按钮。
当前 Worker 侧已经有 tasks 表、增删改查 API、会话 cookie 与 D1 存储。
Overview 负责聚合浏览,Focus 负责单任务理解,Editor 负责纯文本优先编辑。
body_text 已入库,系统能从正文里抽取 status / priority / date / tags / creator 类信息。
已有 launchd watcher + 定时兜底;最近摘要是 25 条 unchanged,说明链路稳定但范围还偏窄。
你已经把“一个可用的 todo 产品”做出来了,但还没有把它做成“你的主任务操作系统”。
| 缺口 | 现在的真实情况 | 为什么关键 | 最佳实践 |
|---|---|---|---|
| 同步源太窄 | 当前同步脚本只覆盖 02-Projects/_active 与 02-Projects/_meta/lanes.md。 |
这还不是你的 LifeOS 主任务池,TODO-Inbox、Today-Focus、review、Diary 引用都没有进入统一模型。 | 先扩成 read-model,不要急着做双向实时写回。 |
| Editor 还没 round-trip | 现在文本编辑主要写 D1,不会可靠地回写到 Obsidian 文件。 | 没有 round-trip,编辑页仍是平行系统,而不是主系统的一部分。 | 先做显式“写回此任务”动作,再做冲突策略,最后才考虑自动化。 |
| Diary 还只是相邻页面 | Diary 已经有 Public Board / Task Ops / Priority,但它们还不是 todo 的统一输入源。 | 你要的是收口,不是多个页面并存。 | 把 Diary 摘要、评分、任务引用 materialize 成统一实体。 |
| 首页还不是驾驶舱 | 当前首页更适合浏览和编辑后的任务列表,不是高层决策界面。 | 你真正想先看到的是 Top1、human-only 瓶颈、AI-ready 队列、阻塞和时间轴。 | 把列表退到二层,把决策卡片提到首页。 |
| 数据层和样式层耦合仍偏重 | 当前 UI 主要是单页 HTML;解析、展示、主题还没有完全拆开。 | 你后面会频繁换展示,若不拆层,每次换皮都要重做逻辑。 | 拆为 canonical data、materializers、renderers、theme tokens 四层。 |
| 没有公开的预算与冲突策略 | 同步能跑,但“多久同步、谁覆盖谁、失败如何补偿”还没有形成规则。 | 一旦 Diary、Todo、Obsidian 三边都能改,系统会开始失真。 | 定义 source-of-truth、sync budget、manual override、nightly reconcile。 |
Obsidian 与 Diary 是事实层,Todo 是操作层。只要这个边界清楚,后面换视图、换样式、换交互都不会伤到根。
现在最该补的是统一输入,不是自动双写。先把 TODO-Inbox、Today-Focus、review、Diary 引用读进来,再谈编辑结果写回。
白天 2h diff + 夜间 reconcile 的策略已经足够。真正需要保护的是你的注意力预算和冲突预算,而不是机器速度。
首页第一屏只放 Top1、Human-only、AI-ready、Blocked。列表、长文和原始文本都退到下一层,不抢你的判断力。
核心原则:Todo 管“看什么、先做什么、从哪里进”,但不应该单独垄断“事实是什么”。
结论:不做实时同步,做“本地即时记录,云端批量 materialize”。你担心的免费额度问题是对的,但现阶段没有必要因此把系统做成粗糙版。
推荐参数:08:00-22:00 每 2 小时一次 diff sync;02:10 full reconcile;保留手动 Sync now 作为显式高优先级入口。
| 阶段 | 目标 | 要做什么 | 完成标志 |
|---|---|---|---|
| Phase 1 | 把 todo 变成真正的 read-model | 把 TODO-Inbox、Today-Focus、weekly/monthly review、Diary 引用接入统一 materializer。 | 首页不再只显示项目种子任务。 |
| Phase 2 | 首页驾驶舱化 | 先做 Top1、Human-only、AI-ready、Blocked,再上四象限和时间轴。 | 你打开首页先看到的是决策卡,而不是普通列表。 |
| Phase 3 | Editor ↔ Obsidian round-trip | 增加显式写回动作、稳定 ID、冲突检测、人工确认。 | 在 todo 里编辑的文本可以可靠回写原文。 |
| Phase 4 | 统一治理逻辑 | 加 Top1 生成器、stale detector、AI-ready classifier、score aggregation。 | 系统开始主动帮助你收敛任务,而不是只展示任务。 |
| Phase 5 | 主题系统化 | 把 renderer 和 theme tokens 拆开,让你后面可以批量换风格。 | 同一套数据可切换多个样式壳而不重写业务逻辑。 |
todo 有潜力成为统一入口,但前提是它做“驾驶舱”,不是做“唯一原始仓库”。
这条判断一旦定下来,后面的技术路线就很清晰:先统一读模型,再做决策首页,再做 round-trip,再做样式系统化。
先接真实数据,再改首页;先做 read-model,再做双向写回;先做预算治理,再做实时幻想。
如果按这条顺序推进,你的免费额度、安全性、未来可演化性都会更稳。