From 2b478588a7308867d49c2ba59e80f7273a798424 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Fri, 30 Oct 2026 09:14:49 +0800 Subject: [PATCH] =?UTF-8?q?docs(task-worktree=20skill):=20=E8=A1=A5?= =?UTF-8?q?=E3=80=8C=E5=8F=AA=E6=94=B9=E6=B3=A8=E9=87=8A=E4=B9=9F=E5=88=B7?= =?UTF-8?q?=E7=BA=A2=E4=BD=93=E7=A7=AF=E5=90=8C=E7=A0=81=E5=87=AD=E8=AF=81?= =?UTF-8?q?=E3=80=8D=E5=AE=9E=E6=B5=8B=E5=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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/)。 --- .dsh/skills/task-worktree/reference/pitfalls.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.dsh/skills/task-worktree/reference/pitfalls.md b/.dsh/skills/task-worktree/reference/pitfalls.md index 8b5954f2..2588b076 100644 --- a/.dsh/skills/task-worktree/reference/pitfalls.md +++ b/.dsh/skills/task-worktree/reference/pitfalls.md @@ -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)。**以主工作树(集成点)