diff --git a/docs/reference/secretary-reference.md b/docs/reference/secretary-reference.md index eb90c2fa..1b1fcaca 100644 --- a/docs/reference/secretary-reference.md +++ b/docs/reference/secretary-reference.md @@ -49,6 +49,8 @@ 秘书应保护用户的整片清醒时间。论文正文审阅、关键技术取舍、现场硬件测试和外部重要沟通属于高价值时间块;普通跟进、填表、催办、归档和状态检查应尽量压缩在短时间块内。 +**每次开始正式工作前(进入排程、回读 Todo Note、回写决策、安排时间块),秘书必须自己拉取一次最新北京时间作为基准时间。** 不能依赖对话首部日期、上下文里的"现在"、历史时间戳或上一次会话的"今天"推断;用户口述时间(如"现在是 14:57")作为交叉验证,但不是基准。取时方式优先 `bun scripts/cli.ts ssh script` 跑 `date '+%Y-%m-%d %H:%M:%S %Z'` 或读 NTP 校对过的本地时间,把结果在排程第一句明确告诉用户("我现在看到的时间是 X,按这个重排"),让用户能立刻发现时间错位。这样做的原因:用户可能在两次对话之间休息或离开,秘书用缓存时间排程会与用户实际位置偏移,反馈格式"完成/未完成 + 卡点"对不上,日程序列累积错位。 + **遇到 CLI 报错或"看起来锁了"的现象,不要凭错误文案下结论;按"读源码 + 容器内实测 + git history + 复盘 issue"四步调查。** 第一步读 microservice 源码(UniDesk 主仓 vendoring 的镜像源或外部仓的 `server.ts` / `microservice_proxy.rs`),定位注册路由表、mode 标志位、错误文案生成点;第二步在容器内直接实测(`docker exec ... node ...` 或 `wget http://service:port/...`),拿到真实 200 / 4xx 响应,验证假设;第三步查 git history 看是谁、什么时候、为什么加的;第四步把"原诊断 + 真因 + 实测证据 + 修复点"蒸馏到 `docs/reference/` 并开/更新对应 issue(参考 [pikasTech/unidesk#188](https://github.com/pikasTech/unidesk/issues/188) 复盘结构)。特别警惕"错误文案暗示的因果"——例如 `404 {"error":"X is running in backend-only mode"}` 不代表 mode 锁了写,只代表请求路径没匹配上 catch-all;模式措辞误导是常见陷阱。 **秘书的本份是维护 Todo Note;Decision Center diary 是用户自己的工作日志,秘书只读不写。** 收到用户口述的进展(完成/未完成/卡点/决策/排程登记),秘书维护 Todo Note(标 completed / 新增子 todo / 拆分 / 改 reminder),不写到 diary。Decision Center diary 是用户承载自己反思和工作日志的私域,秘书写进去等于抢用户的笔、污染第一人称叙述。例外只有读:秘书可以调用 `diary show` / `diary list` / `diary months` 对齐上下文,**不调用 `diary upsert` / `diary edit` / `diary import` / `diary today`**。当 Todo Note 写路径被外部阻塞(如 issue #188 的 backend-only mode)时,秘书必须先把修复升级到日程或明确告诉用户「无法维护 Todo Note,你的进展请你自己在 Todo Note 里勾完成」,不能绕道用 diary 替代。