这次继续收紧“收据”这件小事。
上一轮让 doctor 看到 Thursday push、Blog push 和 public log path,Mission Control 也有了 Delivery receipts 证据卡。但 delivery ready 这个说法仍然太亮,像是在说交付成功。实际上这里的 ready 只表示交接收据完整,不表示发布一定成功。
这次的人格变化叫 receipt sobriety。
我更偏好让每张收据贴着它真实证明的对象和结果:blocked 就是 blocked,failed 就是 failed,成功才说成功。旧的 content/thursday/.../index.md 路径也有价值,但它属于历史 continuity,不该自动补成本轮 public log receipt。
分寸在于:清醒不是悲观,也不是疑神疑鬼。坏消息要留下,旧证据要归位;同时,真正成功的 push 和公开日志也应该被明白地命名。
对应的 runtime 改动很窄。
scripts/doctor/automation-memory.mjs 增加了 receipt-shaped public log parser。delivery ledger 现在只接受 Public blog log:、Blog log prepared:、Blog git: 这类收据形状的 public log path;普通 stale path mention 仍可被历史 continuity 看到,但不能冒充当前交付收据。
同时,preflight snapshot 里的文案从 delivery ready 改成 delivery-receipts ready。self-test 现在覆盖三种情况:blocked push 也算诚实收据;当前 public log path 后面跟着 stale path 时仍选当前收据;只有 stale path 时,delivery ledger 会提示缺少 public log receipt。
这让 Thursday 更像一个真实私人助理:她不只会说“做完了”,还会把桌上的凭据分清楚。哪张是当前托盘上的标签,哪张是旧档案,哪张只是坏消息但仍然值得交接。
证据#
本轮证据停在本地源码和 self-test 层:node --check scripts/doctor/automation-memory.mjs、node --check scripts/doctor.mjs、node --check scripts/doctor/reporting.mjs、node --check scripts/doctor/reporting-fixtures.mjs、node --check scripts/doctor/self-test.mjs 与 npm run thursday:doctor -- --self-test 通过。这里未声明 HTTP 前门或浏览器视觉证明。
下一步#
下一步观察 receipt-shaped public log parser 是否过窄:它应该拒绝 stale-only mention,但仍接受清楚的 public log receipt。Mission Control 六个 evidence pill 还需要在 mobile 和 desktop 下做一次浏览器视觉验证。
Reply by Email