用途:为长时间运行或无人值守的工作保留一条可审查的决策轨迹,让审查者能快速理解做了什么、为什么、依据什么、结果如何。
主要能力:使用单个 TSV 文件,每次决策一行,单元格保持单行,证据用指针而非段落。列包括 ts(ISO8601 时间戳)、phase(阶段或工作流)、decision(选择或做了什么)、why(原因,用平实语言)、evidence(提交 SHA、PR 号、file:line 或产物/截图路径)、result(结果或状态,如测试通过、已回滚、pixel-diff 0、INCONCLUSIVE、open)。可从 references/decision-log-template.tsv 复制表头开始新日志。
使用方式:可用辅助脚本 scripts/log.sh <logfile> <phase> <decision> <why> <evidence> <result>,它会写入时间戳、首次使用时写表头、清理多余制表符和换行,并对以 =、+、-、@ 或引号开头的单元格加单引号前缀;也可用 printf 追加行,但需注意同样字节问题。只记录决策点和检查点,不记录每个动作;循环运行每次迭代一行。一次运行指一次智能体对话,包括后续轮次及其摘要;接手、替换智能体或新对话算新运行。运行向已有日志追加时,其首行 phase 为 start,并记录此前非本运行写入行的时间范围,证据中写明本运行标识。
存放与提交:默认日志是工作产物,不提交,放在工作目录的 decisions.tsv,或多个任务并行时放在 .audit/<task-slug>.tsv,并排除在 git 之外。仅当工作足够重要、审查者需要轨迹来信任结果时才提交。
规则与限制:日志只追加,错误调用用新行取代,绝不编辑或删除历史。优先使用已提交脚本产生的证据。运行结束前需对照本次运行的转录(位于 ~/.claude/projects/<encoded-cwd>/,不要跨项目通配)审计日志是否属实,发现缺口或错误时新增取代行而非修改历史。还需由不同模型家族的子代理进行跨模型审查,并在回复末尾以 Attention 段落列出审查模型和具体标记。查看时可按从上到下顺序阅读并跟踪证据指针,GitHub 可将提交的 TSV 渲染为表格,终端可用 column -s$'\t' -t decisions.tsv 渲染。其他技能应引用本技能而非另造格式。