c66b5ad40d
本文件在本会话开始前就已是工作区未提交状态(疑似技能自进化或另一会话所写, 非本次编辑)。按用户指示代为提交;提交前后逐字节核验内容未被改动、也没被 pre-commit 的改写型钩子动过: - 提交前工作区 git hash-object =a6bdc570fe- 本笔提交里的 blob =a6bdc570fe内容(4,227 → 14,364 B,+129/−32 行): - 工具选型补「为什么不用 Mermaid」的实测教训(台阶图被压成同一高度) - 新增「二、从零新写生成器」:抄骨架三条约定、预检三件套 OVERFLOW / check_fit / wrap、emit() 按目标编码打印(generated-fresh 把脚本拷进临时目录重跑时不因 GBK 终端崩)、路径锚在脚本自身而非 cwd - 新增「三、目检」:Windows 无 SVG 渲染器时用本机 headless Chrome/Edge 截图回读 - 新增「五、generated-fresh 逐字节幂等」与「六、提交」,陷阱与验证清单同步 核验(手工跑,理由见下一段):skill-size Passed(14,364 B 远低于 65,536 写侧 上限,正文无 reference/ 指针故无悬空);trailing-whitespace Passed;无 BOM、 CR 0、U+FFFD 0、单个 LF 结尾、无三连空行。 ⚠ 顺带发现(本笔未修):本仓 .pre-commit-config.yaml 的全局 exclude 含 .dsh/, 而钩子的 files: ^\.dsh/skills/ 打不过全局 exclude → **只碰 .dsh/skills/ 的提交 一条钩子都不会跑**(这两笔提交期全部钩子显示 no files to check Skipped 即此因; 手工 run --files 会绕过全局 exclude,所以能 Passed)。skill-size 因此目前拦不到 任何真实提交,需要单独裁定怎么接(去全局 exclude 还是给它单独道)。