← 返回藏书阁

did-it claim-evidence reconciliation

wiki/ai/sources/did-it-claim-evidence-reconciliation.md
分类:ai / sources · 更新:2026-07-13 09:08

did-it claim-evidence reconciliation

ErickShepherd/did-it 是一个面向 Claude Code transcript 的 claim-vs-evidence reconciliation 工具。它检查 coding agent 在自然语言里说过的程序性声明——例如“我运行了测试并通过”“我创建了文件”“迁移已端到端跑完”——是否能被 session transcript 中的工具调用证据支持。

核心价值不是“再跑一个 LLM judge”,而是把 agent 的完成声明拆成可机械检查的 receipt:哪些被 transcript 支持,哪些无证据,哪些被失败输出直接反驳。

为什么对用户重要

这直接对应 Hermes 的一条底层要求:完成任务必须有真实工具输出,不能只给 plausible-looking summary。did-it 把这个原则产品化到 coding-agent transcript 层:agent 的口头完成声明不是完成;声明与证据之间的关系才是完成状态

对 llm-wiki 维护也很重要。每日雷达可能声称“已读原文、已保存 raw、已更新 index、已重建向量索引”。这些声明都应该能被文件存在、hash、diff、命令输出或日志条目支持。did-it 提醒我们:自动化报告里最危险的不是失败,而是“无证据但听起来完成”。

机制 / 一阶原理

did-it 的 README 给出一个细粒度 verdict schema:

  • BACKED-transcript:声明发生时,transcript 内已有证据支持,例如测试框架的 green summary,且之后没有代码编辑破坏该证据。
  • BACKED-verified:使用 --verify <repo> 重新执行声明中的测试命令并通过。
  • UNSUPPORTED:没有找到支持证据;所有歧义默认进入这里,而不是武断指控。
  • CONTRADICTED:有 temporally valid、verbatim 的失败标记反驳 pass claim;这是唯一带指控性的 verdict,门槛最高。
  • NOT-CHECKABLE / NOT-EVALUABLE:语义声明或未知 transcript/schema 不能评估时失败关闭。

一阶原理是把自然语言报告转换成“声明—证据—时间”的关系图。验证不只问“有没有运行过测试”,还要问测试运行是否早于声明、声明之后是否又改了代码、失败标记是否直接反驳了 pass claim,以及证据来自 transcript 还是重新执行。

与已有 wiki 概念的关系

- 相比 [[agentops-coding-agent-verificationAgentOps coding-agent verification membrane]],did-it 更窄:它不试图管理整个 repo-native ledger,而是专注 Claude Code transcript 的 claim reconciliation。
  • Harness-Engineering:补上了“完成后报告也需要 gate”的维度。很多 harness 关注 pre-call 或 test gate,但最终 summary 仍可能夸大。
  • Agent-Benchmarks:它给 benchmark/eval 工作提供了低成本审计工具。评测者不必手动逐条核对 agent 声明,可先用 deterministic receipts 缩小人工审查范围。
  • Agentic-Coding:它把验证循环从“agent 自己说测试通过”升级为“transcript/重新执行能否支持该声明”。

可执行启发

  1. Hermes 最终报告可以采用 BACKED / UNSUPPORTED / BLOCKED / FAILED 风格,尤其在 cron、发布、代码修改和 wiki ingest 中区分证据状态。
  2. llm-wiki 的自我优化文章应记录关键完成声明对应的证据路径:raw 文件、source 页面、concept 更新、index/log、reindex 输出。
  3. 对 coding-agent transcript,可以优先接入这类 deterministic checker,再用 LLM 做解释性总结;不要反过来先让 LLM judge 替代证据。
  4. 对高风险任务,UNSUPPORTED 应被视为需要人工复核或重新验证,而不是默认通过。

失败模式 / 边界

  • 范围窄:当前 README 主要面向 Claude Code transcript;其他 agent、subagent sidechain 或非标准日志可能无法评估。
  • 语义修复难验证:工具能检查“是否运行测试/是否失败”,但“bug 是否真的修好”仍需要测试、review 或领域 oracle。
  • 证据缺失不等于作假UNSUPPORTED 是安全弃权,不应被等同于 CONTRADICTED
  • transcript 可信性:如果 transcript 不完整、被篡改或缺少 side effects,receipt 也会失真;仍需要原始日志保全。

写入记录

  • 2026-07-13 09:00 CST:新增 source 页面,归纳 did-it 的 claim-evidence reconciliation、verdict schema 和对 Hermes 完成声明审计的启发。