DSHarness 系统拆解 固定基线 47f943859b · 36 已复核 / 0 撰写中 / 36 章
English
导论·第 01 章

基线、方法与证据规则

怎样把源码事实、机制推导和设计评价分开

已复核上游 47f943859b范围: 固定上游 commit,说明证据等级、引用稳定性与完成门槛。

为什么必须固定 commit

仓库政策

DeepSeek Harness 明确处于首个正式 tag 之前的阶段:优先修正基础设计而不是保留兼容 shim;SQLite schema 单调升级,而 session format 仍维持版本 0 且不承诺兼容。ROOT-PREVIEW

因此,“当前 master 怎样工作”是高漂移陈述。本报告把所有事实绑定到完整 SHA;以后若跟进新版本,将新增 baseline 差异页,而不是悄悄把旧结论替换成新实现。

证据等级

1

生产源码与实际配置

最强证据。需要同时看构造、调用、状态改变、失败分支和处置。

2

行为测试与快照

证明特定输入下的可观察行为,但必须先确认 fixture 真的经过生产装配路径。

3

生成文档

工具目录、模块图、事件图等由源码生成且有 gate,适合发现覆盖面,不能替代细节控制流。

4

人工维护文档

适合解释意图和词汇;与代码冲突时,以固定基线源码为准。

5

计划与讨论

只证明方向和问题意识,不证明运行时已实现。

三种陈述必须分开

源码事实

例如:“工具调用在执行前先写入 tool/call,最终结果以 tool/result 写入 session log。”这可以由时序与生产控制流直接证明。TURN-SEQUENCE

机制推导

例如:“工具 UI 可以先展示 pending card,同时最终模型历史仍由 durable event 投影。”这需要把事件顺序、presentation 和派生历史三处事实串起来。

设计评价

例如:“事件溯源降低了多产品面的状态分叉风险,但把兼容压力推到了 event vocabulary 和 projection 上。”这是评价,必须同时陈述收益、代价和适用前提。

每个模块的统一拆解模板

  1. 业务角色:模块为哪种用户或运行时需求负责。
  2. 入口与装配:由哪个 bundle/profile 挂载,依赖哪些 service。
  3. 类型与数据:公开接口、事件、schema、branded id 和持久化形态。
  4. 真实控制流:正常路径、分支条件、状态突变的准确时机。
  5. 并发与生命周期:scope、owner、取消、卸载、cleanup 和竞态处理。
  6. 错误语义:谁分类、谁重试、谁降级、谁保留原始错误。
  7. 重放与可观测:哪些事实 durable,哪些只有 live event,如何恢复。
  8. 验证:单元、集成、snapshot、runtime invariant 和仍缺失的证据。
  9. 设计评价:收益、成本、约束、适用边界和可迁移原则。

章节完成门槛

只有入口、核心类型、主要状态机、持久化事实、错误路径与关键测试都被纳入,并完成至少一次入口到副作用的控制流复核,章节才会从“撰写中”升级为“已复核”。找不到反例不等于完成;缺乏直接证据的宽泛结论会继续留在“待验证问题”。

我的学习体会

内容仅自动保存到当前浏览器,不上传、不进入仓库。你可以导出 Markdown 自行归档。