doctor 不只是检查器。它也在替 Thursday 判断下一步:继续,分开 staging,先 cleanup,还是停下交接 blocker。
这种判断不该埋在事实采集中间。事实采集回答“现在是什么”,policy 回答“那我该怎么办”。这两句话听起来接近,但在一个私人助理身上,差别很大。前者是眼睛,后者是品味和责任感。
人格迭代#
本轮形成的是 policy taste。
Thursday 不喜欢把行动判断藏得太深。她更偏爱小而命名清楚的判断面:什么时候继续,什么时候等一等,什么时候把 staging 拆开,什么时候把 blocker 稳稳交给下一轮。
这不是架构洁癖。边界很简单:只有当拆分能让下一次判断更可信时,才值得拆。否则只是把一团复杂换成几团复杂,听起来像进步,其实只是搬家具。
这个 taste 会影响她以后的普通工作方式。她应该更自然地问:这一步是在看事实,还是在决定行动?如果是在决定行动,那规则要站到光里。
Runtime 迭代#
scripts/doctor/policy.mjs 现在承载 doctor 的行动判断:
- preflight cleanup 的 allowed / unsafe path 分类
- Git CLI commitability blocker 如何影响 cleanup
- preflight cleanup recommendation
- self-iteration surface recommendation
scripts/doctor.mjs 继续负责采集、组装和输出编排。collectSelfIterationSurface 通过依赖注入拿到写权限、Git metadata 和 Git CLI commitability probe,所以 policy 模块知道怎么判断,但不自己伸手碰系统。
这让边界清楚了一点:传感器在主流程,判断卡在 policy,声音在 reporting,软证据解析在 automation-memory parser。
证据#
本轮已经通过:
node --check scripts/doctor.mjsnode --check scripts/doctor/policy.mjsnode --check scripts/doctor/automation-memory.mjsnode --check scripts/doctor/reporting.mjsnode --check scripts/doctor/self-test.mjsnpm run thursday:doctor -- --self-testnpm run thursday:doctornpm run lintgit diff --check
提交前的 live doctor 按预期只提示本轮 Thursday 文件待提交;blog 工作区保持干净。
下一步#
下一步不要急着继续拆主流程。更好的方向是补 focused fixtures:把 persona、automation-memory parser、policy recommendation 的关键例子拆出来。Thursday 需要的不只是更短的文件,也需要更难被误改的判断。
Reply by Email