ZON
ZON
Best Minds Board Private
Stage Summary · 2026-03-17
Todo × Diary × Obsidian

真实现状、关键缺口与最佳实践路线

这份复盘不是继续讲愿景,而是把 todo.zondev.topdiary.zondev.top、Obsidian 同步脚本、线上响应头、当前 schema 和最近同步摘要 对齐后,重新回答四个问题:你真正想做的是什么,现在已经实现了哪些,还差哪些,以及怎样以最低维护成本把它完善成统一的 LifeOS 驾驶舱。

Jason Fried / DHH:界面要安静,职责要分层 Kent Beck:先固定可演化边界,再加功能 Google SRE:同步先做预算、观测、回滚
Live Stack
Hybrid
生产实际是 Vercel 静态壳 + Cloudflare Worker API + D1。
Live Views
3
Overview / Focus / Editor 都已上线,不再只有单一列表页。
Current Sync
25
最近一次自动同步是 25 incoming / 25 unchanged / 0 changed。
Recommended Cadence
2h
白天 diff sync,夜里 full reconcile;不做逐条实时双写。

你的真实目标

不是再做一个 todo 页面

你真正要的是一个统一决策台:它能明确告诉你今天的 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 不拆层,后面任何首页改版都会拖着解析逻辑一起重写。

已经实现的部分

Verified

线上站点已可用

2026-03-17 实测 todo.zondev.topdiary.zondev.top 都返回 HTTP 200。

Verified

密码登录已收口

密码从环境变量读取,服务端在未配置时会直接报错,不再回退到默认值;登录页也已支持明文查看眼睛按钮。

Verified

CRUD + D1 已跑通

当前 Worker 侧已经有 tasks 表、增删改查 API、会话 cookie 与 D1 存储。

Verified

三种页面模式已经分层

Overview 负责聚合浏览,Focus 负责单任务理解,Editor 负责纯文本优先编辑。

Verified

文本优先模型已成型

body_text 已入库,系统能从正文里抽取 status / priority / date / tags / creator 类信息。

Verified

Obsidian 自动同步已存在

已有 launchd watcher + 定时兜底;最近摘要是 25 条 unchanged,说明链路稳定但范围还偏窄。

Current Production Topology
Browser todo.zondev.top diary.zondev.top Vercel Shell 静态 HTML / UI 线上响应头已验证 Worker API /api/* 重写到 Workers 会话 / CRUD / auth D1 tasks table body_text persisted Obsidian Sync launchd watcher + fallback cron 目前只读 _active + lanes.md Diary Views Public Board / Task Ops / Priority 已 live,但尚未接到统一底座 materialize to cloud
关键结论:当前不是“Cloudflare 或 Vercel 二选一”,而是已经形成了混合架构。

一句话判断

你已经把“一个可用的 todo 产品”做出来了,但还没有把它做成“你的主任务操作系统”。

  • 产品层:登录、CRUD、编辑、部署、同步已经成立。
  • 系统层:真正的主任务真相、Diary 证据流、review 回写、Top1 唯一化,仍然是分散的。
  • 因此当前 todo 更像“可用的旁路驾驶舱”,还不是“唯一操作入口”。

关键缺口

缺口 现在的真实情况 为什么关键 最佳实践
同步源太窄 当前同步脚本只覆盖 02-Projects/_active02-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。

四条不可动原则

要点 1 · 先定 canonical truth

Theme Views Canonical Truth

Obsidian 与 Diary 是事实层,Todo 是操作层。只要这个边界清楚,后面换视图、换样式、换交互都不会伤到根。

要点 2 · 先做读模型,再做写回

Sources Read Model Views

现在最该补的是统一输入,不是自动双写。先把 TODO-Inbox、Today-Focus、review、Diary 引用读进来,再谈编辑结果写回。

要点 3 · 同步先有预算,再追求快

Rows Read Rows Write safe headroom safe headroom

白天 2h diff + 夜间 reconcile 的策略已经足够。真正需要保护的是你的注意力预算和冲突预算,而不是机器速度。

要点 4 · 首页先回答决策,再回答浏览

signals decision action feedback

首页第一屏只放 Top1、Human-only、AI-ready、Blocked。列表、长文和原始文本都退到下一层,不抢你的判断力。

最佳实践架构

Recommended Layer Split
Canonical Sources Obsidian TODO-Inbox / Today-Focus / Reviews / Diary daily entries / Task Ops / Manual input Materializers parse markdown, normalize ids, extract tags/date/owner, resolve diary task refs, build event history Unified Entities task / daily_entry / score / execution_event / project / source_doc / relation Renderers overview / focus / editor / quadrant / timeline Decision Logic Top1 / AI-ready / human-only / blocked / stale Theme Tokens light / compact / print / future redesigns
你后续想持续改样式,这个四层拆法是最稳的,不然任何改版都会牵一发动全身。

正确的角色划分

  • Obsidian:任务原文、上下文、项目语义、长期真相。
  • Diary:每日评分、总结、当天出现的任务证据、状态变化痕迹。
  • Task Ops:执行流水与提醒,不做最终真相。
  • Todo Board:聚合、排序、透视、行动入口与人工决策驾驶舱。
  • AI Governance:补标签、做归类、判断 AI-ready 与 human-only、推荐 Top1,但不直接覆盖原文。

核心原则:Todo 管“看什么、先做什么、从哪里进”,但不应该单独垄断“事实是什么”。

推荐同步策略

结论:不做实时同步,做“本地即时记录,云端批量 materialize”。你担心的免费额度问题是对的,但现阶段没有必要因此把系统做成粗糙版。

Recommended Cadence
Local Cloud Board 08:00 10:00 14:00 18:00 22:00 write in Obsidian / Diary diff sync diff sync diff sync diff sync materialize views notify on change 02:10 nightly full reconcile
推荐默认:白天每 2 小时 diff,同步后再生成视图;夜里单独做一次全量对账。

为什么这个频率合适

  • 你现在的同步规模还是 25 条级别,2 小时一次在体感上已经接近实时。
  • 同步预算要按“最多改多少、失败后怎么补偿、通知会不会打扰”来算,而不是按“能不能更快”来算。
  • 当前 Worker / D1 的免费额度对这种 2h diff + nightly full reconcile 的量级很宽松,真正稀缺的是你的注意力预算。
  • 建议默认 no-op 不通知,只在 change / failure / conflict 时出提醒。

推荐参数:08:00-22:00 每 2 小时一次 diff sync;02:10 full reconcile;保留手动 Sync now 作为显式高优先级入口。

Sync Swimlane
Obsidian / Diary Materializer Todo Board edit / capture normalize + merge refresh views
把“记录事实”和“生成云端视图”拆开,系统就会稳定很多,也更容易扩展到 Diary 和 review。

首页应该怎么改

首页的第一屏不该是列表

  • Top1 卡:今天唯一必须你亲自推进的任务。
  • Human-only 瓶颈:只能你做、且当前阻塞最大的 3 项。
  • AI-ready 队列:可以交给 AI 的澄清、整理、初稿、跟进任务。
  • 阻塞 / stale:超过 N 天未变化、但仍被系统判为高重要的任务。

第二屏再放可视化透镜

  • 四象限:重要且紧急 / 重要不紧急 / 紧急不重要 / 低价值。
  • 时间轴散点图:横轴截止日期,纵轴重要性或阻塞度,点大小代表影响范围。
  • 来源热力:Diary、Today-Focus、review、manual、AI 各自产生了什么。
  • 关系图:哪些任务被同一篇 Diary、同一个项目、同一段执行流水引用。
Recommended Home Layout
Top1 唯一主任务 + 为什么是它 next action / owner / due Human-only 必须你亲自做的瓶颈 限制数量,不超过 3 AI-ready 能立即分派给 AI 的队列 clarify / summarize / draft Quadrants 重要 × 紧急 Timeline Scatter 截止日期 × 重要性 / 阻塞度
当前列表页可以保留,但应该降级成二级视图;首页先回答决策问题,再回答浏览问题。
AI / Human Split Board
AI-ready Human-only Blocked / Waiting
这块是你后面接入 AI 治理逻辑的最好落点,不需要把 AI 逻辑塞回原始任务正文里。

推荐推进顺序

阶段 目标 要做什么 完成标志
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 拆开,让你后面可以批量换风格。 同一套数据可切换多个样式壳而不重写业务逻辑。
Maturity Ladder
Seed sync Read-model Cockpit home Round-trip Unified LifeOS Hub
不要跳着做。只要按这个台阶往上走,复杂度和风险都会是可控的。

最终判断

你现在最该坚持的判断

todo 有潜力成为统一入口,但前提是它做“驾驶舱”,不是做“唯一原始仓库”。

这条判断一旦定下来,后面的技术路线就很清晰:先统一读模型,再做决策首页,再做 round-trip,再做样式系统化。

一句话优先级

先接真实数据,再改首页;先做 read-model,再做双向写回;先做预算治理,再做实时幻想。

如果按这条顺序推进,你的免费额度、安全性、未来可演化性都会更稳。

基于代码、同步摘要与线上验收,重新核定 todo.zondev.top 当前真实完成度,并给出把 Todo、Diary、Obsidian 收口成统一 LifeOS 驾驶舱的最佳实践路线。
— One small system