用途
该技能面向长时运行或无人值守的工作,目的是留下一份可供审查的决策痕迹。它要求维护一份唯一的决策日志,让评审者能够追溯每一步选择的原因和证据。
主要能力
日志格式
单一 TSV 文件,每次决策一行,单元格保持单行。证据是指针而非长段落。列包括:
- ts:ISO8601 时间戳。
- phase:阶段或工作流。
- decision:被选择或完成的事情,一行。
- why:用平实语言写的原因;若由某条原则驱动,直接说明,不用术语标签。
- evidence:可证明该决策的链接或路径,如 commit SHA、PR 编号、file:line、工件、trace 或截图路径;不可写成段落。
- result:结果或断言状态,如测试通过、已回滚、pixel-diff 0、INCONCLUSIVE、open。
可用 references/decision-log-template.tsv 的表头行创建干净日志。
写入方式
可使用辅助脚本 scripts/log.sh <logfile> <phase> <decision> <why> <evidence> <result>,它会写入时间戳、首次使用时写表头、清理多余的制表符与换行,并对以 =、+、-、@ 开头的单元格加单引号前缀。也可以用 printf 直接追加一行,但需注意同样的字符问题。
记录的是决策点与检查点,而非每个动作:选择的分叉、带验证结果的单元完成、带触发原因的方向调整或回滚、暴露的阻碍、修复的关口。循环运行时每次迭代一行。跳过琐碎和显而易见的内容。
运行与 start 行
一次运行指一次代理会话,包括其后来的轮次及其摘要。接管、替换代理或新对话都算新的一次运行。当一次运行向已有行的日志追加时,其第一行 phase 为 start;在其他运行的 start 行之后,该运行的首行也使用 start。因此,一次运行在后续轮次回到日志时,先读取日志末尾几行,看是否有其他运行写过。start 行需注明其之前、非本次运行所写的行的 ts 范围,其 evidence 需指明本次运行,例如线程 id。phase 为 start 不得作其他用途。
存放位置
默认日志是工作工件,不提交。放在工作目录的 decisions.tsv,或当多个任务并行时放在 .audit/<task-slug>.tsv,并排除在 git 之外。仅当工作复杂度足以让评审者需要该痕迹来信任结果时才提交。
规则
- 只追加。错误决策通过新增一行来取代,绝不编辑或删除历史。
- 优先使用由已提交脚本产生的证据,而非手工的一次性产物。
对照会话实录核对日志
运行结束时、交回之前,检查日志是否属实。使用 t3_thread_read(view: "activity",沿 nextPosition 直到 hasMore 为 false,并用 itemId 加 textOffset 找回被截断的条目)读取本次运行的线程。用 t3_thread_search 以本次运行的开场用户提示查找其 id。不要传入其他项目的 projectId,以免读到无关的私人对话。将本次运行的行与实际发生的事逐条比对。每一段行始于本次运行的某个 start 行(若日志由本次运行创建,则始于第一行),止于另一次运行的下一个 start 行:
- 检查每一行是否对应真实的决策或动作。
- 检查每一行的证据是否可解析,并显示该行所述内容。
- 影响了工作却未被记录的分叉、转向或放弃的方案属于缺口,应予补充。
修正日志而非叙事。核对绝不编辑或删除一行,即使是编造的。当某行既非真实决策也非真实动作,或其说法与证据有误时,新增一行来取代它,写明实际发生的事和可解析的指针。此核对不检查本次运行区段之外的行。若本次运行的工作表明其中某行有误,则像对待任何错误决策一样予以取代。
痕迹的跨模型审查
交回之前,启动一个名为 Trail reviewer 的 delegate_task 子任务,使用与完成工作者不同的模型家族(从 orchestrator_capabilities 中选取)。自我审查不能替代此步骤。其任务说明给出日志的绝对路径和本次运行的线程 id,并声明“只读:仅检查,不写入,不执行 git 命令”以及“不要委托”。子代理读取审计痕迹和运行会话实录(t3_thread_read 用 view: "activity",沿 nextPosition 直到 hasMore 为 false,并用 itemId 加 textOffset 找回被截断的条目),然后标出用户应注意之处。这不是重做工作,而是扫描次优或有风险的地方。按 poteto-mode 技能的 Subagents 一节,为任务选择每个子代理的推理级别与快速或标准速度。
需标出的情况:
- 记录时证据薄弱或缺失的决策。
- 会话实录中显示被跳过或声称完成却无证明的验证步骤。
- 事后看有风险的选择(过早、范围蔓延、掩盖症状)。
- 用户在随意浏览时可能漏掉的缺口。
每次运行若产生痕迹,其回复末尾都要有“Attention”段落。先单独一行写审查者模型(reviewed by <model>),然后列出每条指向具体行或时刻的提示。“No flags”是有效取值,模型名不是。
审阅痕迹
自上而下阅读,跟随证据指针,抽查。GitHub 会将提交的 TSV 渲染为表格。终端中可用 column -s$'\t' -t decisions.tsv 渲染。
组合使用
其他技能应将其审计痕迹指向此处,而不是另造格式。按名称引用它,让其拥有格式定义,不要重述各列。
限制与缺失信息
关于该技能的具体安装方式、支持平台、收费标准均暂未提供。文本主要描述日志格式、写入脚本、运行与 start 行约定、存放位置、只追加规则、会话核对流程及跨模型审查机制。