收录标准(SKELETON §7):只收可双向举证的条目——文档侧与代码侧各给一个 path:line,两侧都由校验器核对。不收笔误、格式问题、以及显然无害的历史遗留。
这 3 条不是系统性扫描的结果,是写作 21 章过程中的顺手发现。一次针对 32945 行 markdown 的完整核对必然会找出更多。把本页当作「这类问题存在」的证据,不是「问题只有这些」的清单。
锚点之后上游已经往前走了,本书没有换锚点。截至 v1.2.0(06a4669,2026-10-13,锚点之后 1333 个提交):harness-v2 这一系没有切成默认路径,而是被整体删除了。删除前夕(f29ea3d),锚点上那 22 个抛错方法里 17 个已有实现、4 个被删除、1 个仍是桩;随后 7fd478a(2026-10-01) 把 AgentHarness、v4 会话栈与 harness 版压缩、工具连同设计文档一起从 pi-agent-core 移除,随 v1.0.0 发布。上游指向的后继 pi-durable 是另起的实验性设计,coding-agent 不依赖它;默认 CLI 仍然走 new Agent。所以:书里的判定在锚点版本上依然成立,而第 08 章那个「空壳」执行器,上游没有把它做完接上,而是放弃了。逐条变化见 第 08 章追记 与 漂移记录 · 上游后续。
下面是追记的证据,分两种写法。锚点之后、删除之前的那段历史只给提交级链接:相关文件在 v1.2.0 上已不存在,行级引用无法再被核对,本书不保留未经核对的行号。v1.2.0 上的现状用 @后 标记的行级引用,由 tools/check-citations.mjs 的 GATE 1b 逐行核对;提交链接的哈希与日期由 GATE 1d 对照 data/stats.json 核对。
85a2060(2026-08-11) 把 harness-v2.md 并入 harness.md,工作包重新编号;同日 5aeb06b(2026-08-11) 清空了 agent-harness.ts 里的 unavailable() 桩。到删除前夕 f29ea3d(2026-10-01),锚点上的 22 个抛错方法里 17 个在 packages/agent/src/harness/ 下有了方法定义,4 个被删除(peekAction、executeAction、runToCompletion、createLane),1 个仍是桩(watchSession)。同一时刻,coding-agent 里构造 AgentHarness 的 2 个文件全在 src/experimental/ 下。本书 2026-09 的上一版追记停在这个阶段(「大部分已实现,默认路径尚未切换」),已被下一条推翻。7fd478a(2026-10-01) 从 pi-agent-core 移除了 experimental harness:CHANGELOG.md:27,记在 CHANGELOG.md:23 的 Breaking Changes 下。在 v1.2.0 的 packages/*/src 里,提到 AgentHarness / HarnessNotImplemented / SliceNotImplemented 的文件数是 0。7472cda(2026-10-12) 又删除了 client / protocol / server 三个包和 coding-agent 的 experimental 会话 worker。@earendil-works/pi-durable。这个包早在 0801601(2026-09-18) 就已独立成包,早于删除;README 第一句就是 README.md:3。在 v1.2.0 上依赖它的包只有 env,coding-agent 不在其中。本书只核对了它不沿用 harness-v2 的 AgentHarness 与抛错桩(上一条的统计范围 packages/*/src 已包含这个包),没有核对它的设计。sdk.ts 构造 new Agent:sdk.ts:411(锚点时在第 294 行);CLI 写的会话格式仍是 v3:session-manager.ts:41。aa23e78(2026-09-07) 把仓库链接改成 earendil-works/pi;之后 security.md 又在文档重写中被重写。这次修复早于本书 2026-09 的上一版追记,当时漏记了。7fd478a(2026-10-01) 随 harness 一起删掉了 agent 包里那份压缩实现。收敛的方式是删除副本,不是本书当时预期的「coding-agent 迁到新 harness」。完整重锚需要逐行重核全书 159 处引用(按 path:line 去重),而第 07 / 08 / 19 章引用的文件大多已被删除——那等于写另一本书。锚定版本记录的恰好是一套上游造到一半、又放弃了的设计,本书选择保留它、只追记。刷新追记:同时改 tools/stats.sh 里的 UPSTREAM_TAG 与 UPSTREAM(40 位哈希),再跑 tools/build.sh;stats.sh 对追记叙述的每个前提都有 FATAL 判定,前提变了要先改判定和文字。