Files
deepseek-harness/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.zh.md
Tianyi Cui ee7458b2df docs: fix review findings — residual ordinals, hypothetical IPC row, citation-rule amendments
Purge the residual task/phase ordinals review caught ((T2), (queue cut 1)
×3, T6, P-I, 'this cut' ×6 including battery-expansion finds in two
untouched notes and a workflow JSDoc); drop the 'externally logged as
Decision 21' parenthetical and rename the remaining bare decision-21
mentions; mark the gui-layering IPC bridge row as a hypothetical example;
restore the GATE_NOTICE doc-typecheck clause and the py-types 'measured'
provenance; say subprocess-backed in filesystem.md; add the picker note
path. Amend the citations note: merged-PR evidence anchors in Agent Notes
are sanctioned, and the candidate gate patterns gain the four shapes the
sweep missed. All nine touched pairs re-recorded.
2026-08-09 21:10:59 +08:00

5.1 KiB
Raw Blame History

Agent Note: 引用已提交的产物,绝不引用设计会话序号

Status: implemented

English | 中文

问题

大型设计与评审会话会留下工作速记:决策序号、审计条目代号、计划章节编号、任务与栈序号、评审人裁定。这些速记在会话 transcript文本记录还开着时读起来顺理成章一旦关闭就什么也解析不到。一次全仓库审计发现该模式集中在 packages/client:裸写的 (decision 12/16/19/20/21) 引用中只有决策 21 有已提交的归属文档;(audit C2/S1/S3/S7) 代号在任何地方都没有对应的审计文档;design §4.7web2 §0plan §1.4 指向未提交的草稿;计划阶段标签(T2/T5/T9P-IW5);持久 JSDoc 里的栈内位置("a later PR in this stack"以及「ruling」裁定、「design ledger」设计台账一类词汇。同样的几类模式也出现在测试、CSS 注释、生成器模板、CI 注释与 Agent Note 中(「本 PR本分支本评审轮」视角、评审编排式的归因、目标其后已经交付却仍写着「推迟到后续 PR」的陈旧说法文档标准早已禁止了变更历史这一半previously/now、PRPull Request与 commit 引用),却没有为引用写下对应的规则,于是无法解析的序号不断落进仓库。

决策

持久行文注释、JSDoc、文档、Agent Note、测试注释与测试标题只引用已提交的产物无需 grep 考古即可在仓库内解析:

  • 点名归属的 Agent Note其路径在每个文件里至少出现一次行内用可检索的名称、文档页面路径或 GitHub issue 编号。PR、commit、分支与栈位置依文档标准在文档与代码中仍在禁止之列issue 是持久且可引用的Agent Note 还可引用已合并的 PR 作为证据锚点——文档标准将变更故事归置于 commit、PR、Agent Note 与事后分析note 正是这一归宿。
  • 决策有已提交归属文档的设计会话序号替换为该决策的名称——曾以「决策 21」记录的序号如今是「纯文本引用决策」归属于 web 输入状态机 note;该序号本身在仓库内无从解析,已全部移除。没有归属文档的序号予以删除,其事实性语句改写为可独立成立的表述。
  • 已修复的回归以现在时反事实句固定下来(「没有 X 就会发生 Y」、「朴素的 X 会……」),绝不写成仓库历史(「过去曾 Y」
  • 已实现的 Agent Note 陈述已交付的现实:「推迟到后续 PR」的说法若其目标已经交付就改为点名那篇已交付的 note。
  • 已录制的 fixture测试前置数据、快照与已归档的 Agent Note 不受此约束:已录制的模型输出与封存的历史保持原有行文。

一次全仓库清理把这些规则应用到了各个行文表面,包括生成器持有的模板(scripts/gen-doc-graphs.tsscripts/gen-tool-catalog.ts、typert 生成器的页面提示语改后重新生成、type-equiv 源码 JSDoc改后把文档页重新粘贴以及双语对侧文件改后重新记录配对

曾考虑的替代方案

  • **把设计台账与审计文档提交入库,让序号得以解析。**不予采纳:会话 transcript 是工作产物,不是持续维护的参考资料;提交它们会在 Agent Note 之外形成一套平行且不受门禁约束的决策语料,其内部编号也仍会漂移。
  • **为被禁词汇建一道机械门禁。**暂缓这类词汇是无界的自然语言审计中以查全为目标的成批检索需要人工判断才能把泄漏与正当行文区分开作名词的「wait」、表转折的「actually」、运行时的新旧状态。若该模式再次出现候选方案是一道窄而高查准的门禁例如 \(decision \d\(audit [A-Z]\d\bcut \dthis cut、裸 \bT\d\bP-I);对本次清扫自身的评审恰好在后四种形态中发现残留,因此它们位居候选清单之首。
  • **删除引用了失效产物的设计理由。**不予采纳:事实性语句都得到保留或改写;依行文标准的完整命题规则,删掉的只有引用、评审编排与推导过程记录。

验证

审计的成批 grep 检索(英文与中文、注释与行文、对 .agents/--hidden)在已录制 fixture 与已归档 Agent Note 之外没有命中任何设计序号引用;verify-type-equiv、各 gen-* 新鲜度检查与 verify-translation-pairing 把重新生成与重新记录的表面固定下来。覆盖缺口:没有门禁会拒绝新的序号引用,这条规则由评审把关。

后果

  • 注释中的引用凭路径或名称即可解析;读者永远不必为追溯一条引用而重建已关闭的会话。
  • 设计会话必须先把决策落进 Agent Note持久行文才能引用这些决策序号速记只留在会话内部。
  • 引用变长了(用一条 note 路径取代「(decision 21)」),换来的是无需 grep 即可解析。