docs(task-worktree skill): 补「只改注释也刷红体积同码凭证」实测坑

done testdoc 撞上的一次新型红:size-gate 的判据是索引 blob 指纹,不是体积数字。
全库路径同步顺带改了 20 个 .c/.h 的注释,Program Size 逐项没变,凭证照样报
「不同码」。处置比 C 节补绿链短:合并后 done 自己那次 @build 已 0 错 0 警,
只需 ram_baseline.py --update 重写 scripts/size_attestation.json,
不 --write 动内存受管快照(数字没变就去改受管区=给别的在飞分支造冲突面)。

连带登记第二个坑:done 在「分支已合入」的路径上于门禁之前就 return,
补完凭证重跑不会替你复绿,落主干后的全量证据要自己跑 ci_local.py
(实测 47 runner / 3896 断言全绿)与主树 check_doc_links.py --all
(实测 215 个文档 / 2993 处章节引用 rc=0)。

只加 reference/pitfalls.md 一条,SKILL.md 正文一字未动(受插件写侧
65536 字节上限,深规程一律进 reference/)。
This commit is contained in:
2026-10-30 09:14:49 +08:00
parent 8f5ac7f5d0
commit 2b478588a7
@@ -60,6 +60,20 @@
同理 `done` 的重生成步骤会 `[skip] 未找到 .map,跳过内存快照同步(需先 @build)`。
**处置**:新空间第一次提交前先 `@build` 一次(`build` 锁自动排队,与别的树串行)。与上一条
的区别要分清:上一条是「有 `.map` 但是旧的」,本条是「根本没有 `.map`」,处置动作不同。
- **⚠ 只改注释里的文档路径,也会把「体积同码凭证」刷红**(2026-10-30 实测,`done testdoc`):
`scripts/check_size_gate.py` 的判据是**索引 blob 指纹**(实测 1466 个文件),**不是体积数字**——
那笔全库路径同步顺带改了 20 个 `.c/.h` 的注释,`Program Size` 逐项没变
(Code=246160 / RO-data=29816 / RW-data=2036 / ZI-data=149700),凭证照旧红:
`本次代码(指纹 172c6c78b8fb…,1466 文件)与体积测量(指纹 1ed4267c77f6…,2026-10-30T01:15:01)不同码`。
**处置比上一条那条补绿链短**:合并后 `done` 自己那次 `@build` 已 0 错 0 警,此时只需
`ram_baseline.py --update` 重写凭证(改的是 `scripts/size_attestation.json`;同日同数字时
`ram_baseline.tsv` 连趋势行都不会新增),**别顺手 `--write` 去动内存受管快照**——数字没变就改受管区,
等于给别的在飞分支造冲突面(台账归属口径见 `mem-budget` skill)。
**判据顺序**:先比 `Program Size` 与合并前是否逐项相同 → 相同就只补凭证;不同才走 C 节第 5 步全链。
连带的第二个坑:`done` 对「分支已合入」的路径**在门禁之前就 return**(`cmd_done` 里
`already and ahead == 0` 那条分支直接清场),所以补完凭证重跑 `done` **不会替你复绿**——
落主干后的全量证据得自己跑:`scripts/ci_local.py`(实测 47 runner / 3896 断言全绿)
+ 主树 `check_doc_links.py --all`(实测 215 个文档 / 2993 处章节引用 rc=0)。
- **⚠ 增量构建可能不重链 → `.map` 数字瞬态不一致**(2026-10-12 实测):
`@build` 若判定无需重链,`.map` 保持旧值,此时 `--write` 生成的快照是**瞬态值**
(实测同一份源码两次读到 223,560 与 223,724,差 164 B)。**以主工作树(集成点)