4a4ad6bc5f
现状口径:/keil-build 与 /serial-boot-test 是 DSH 会话的技能调用名, 不是 shell 命令;「名 + 命令行参数」的命令形态改为可执行体 run_boot_test.py 的真实调用。 - AGENTS.md:别名说明重写为「技能调用名不是 shell 命令」,两条目改 「编译(/keil-build)」「串口回归(/serial-boot-test)」 - keil-build / serial-boot-test 两 skill 调用名与示例同步;task-worktree 方案文档去掉 @build/@test 惯例从句;@task 保留(不在点名范围) - 123 文件现状陈述全改;台架捕获、变更记录/时间线、rename 映射输入 等 41 行历史证据保留旧名 - gen_memory_svg.py 6 处措辞随改,3 张 SVG 产物同批重跑 - 顺手补并行方案同行漏网计数 51→52 钩子 验证:提交期快钩子对 123 文件实跑全 Passed;check_doc_links --all rc=0(3038 处、无法判定 0);check_mermaid --all rc=0;YAML 解析 52 钩子不变;skill-size rc=0;py_compile 全过;字节卫生零漂移。
4.9 KiB
4.9 KiB
Pitfalls(自 SKILL.md 外置)
本文由 id-family-semantic-migration 的 SKILL.md「Pitfalls」一节逐字外置而来(渐进展开:主文件只留索引与指针)。步骤号沿用原文,未重编。
- 拿门禁计数当中文字面量族的口径 → 得出「0 处待改」的假归零(实测该族真实站点 288 处 / 56 文件);先跑自建扫描器报「站点 / 文件」,并在交付里写明该族不在语料内、门禁判不到。
- 给无机器识别面的族登记
id_aliases.json→ 中文前缀不进语料,登记了机器也看不见,只制造「有门禁兜底」的错觉;执行面是 §4.1.1 停发行 + §9.3 换算表 + 评审。反过来,有识别面的族不登记别名 → 门禁把旧号引用判成悬空。 - 拿 grep 计数跟人吵口径:先拿实测三口径,再谈拆单;两套计数不一致不是有人算错(见上表)。形似噪声号并进总数 → 把 132 处里程碑噪声算进 420 处待改,动手就改坏
docs/芯片手册/原文。 - heredoc 里嵌 Python 正则 / 中文 →
invalid escape sequence与语法错;脚本落文件再跑。中文正则用 raw 串 +\uXXXX:非 raw 串的"\b"会被解成退格符,正则静默失配不报错。 - 扫描没排除
.git→.git/COMMIT_MSG_*.txt的 GBK 乱码历史被当残留,越清越多;靠控制台看中文 → 一律写 UTF-8 报告文件再解析,判乱码统计EF BF BD字节数。 - 凭记忆敲
old串 → 中文引号与 ASCII 双引号形态不同,命中 0;回读原文取真身,断言前先看git status自证文件未变。 - 替换后不做同句重复检测 → 留下「运行参数段(「数据可信」运行参数段交付)」这类句子(实测 12 行);同一短语两种空格形态不归一 → 全仓口径漂移(归一前先
git grep -c -F数各形态)。 - 换算表里复述字面量 → 讲规则的文档变成自己的引用站点(规范本身在门禁语料里)。
| head之后读$?→ 永远是 0,把「还有残留」当「已归零」。- 占位符泄漏:为躲转义把反引号写成
«/»再全文替换,落盘后必须核占位符残留 = 0(实测 22 行泄漏到本节之外,含不是自己写的行)。 - 删行前不核证据属主、不查当初为什么保留 → 要么删掉唯一记录,要么把已撤销的「✅ 保留行」例外当常态。
- 涨点归因拿 diff 新增行 grep 形态 → 把存量上下文当增量;把上一轮现值当本回合实测、未跑净室归因就报具体归因对象 = 猜测。
- 全局查找替换:跨族撞号(
S3三义)。必走rename_ids.py映射表 + 显式 scope + 干跑;无识别面族则逐处手写 + 断言命中数。 - 未分类就动手:把变压器位号、Mermaid 节点名、数学记号、gitlint 规则名当编号改坏硬件资料;位号目录进
excluded_paths,记号进噪声表。 - 按简称匹配文件清单 → 误报 8 个文件丢失;比对前展开真实路径。
- 复现不了队友的合并指纹就怀疑丢文件:先问口径(自定义顺序不可复现),改落自有逐文件 16 位基线并把跨道文件单列。
- 替换 token 含
**加粗标记 → 命中数断言 0;取反引号最小形态。 - 只改生成器文案不重跑产物 →
generated-fresh必红(实证0f7b5a87同类);「反正就是注释,不影响图」是错的,该文本进产物。 grep 'A\|B'空返回当文件干净:交替竖线在多层 bash 引号里被吃掉,是探针坏不是文件干净 → 反证为空的搜索必须换grep -F复测。- 一次 run_code 串
5 × wait_agent(118000)≈ 590s 整段 abort、进度全丢;且一次串多条长中文send_message也撑爆 120s(发出 1 条后 abort,剩余未发)。轮询上限 4×118s,长消息拆开发。 - 游标整型比较静默不生效(字符串形态);抬完用
--strict与 plain 双验。 git add目录路径带进别道文件、git add -A卷进在飞改动;撤销自己的改动只按文件点名git restore scripts/archive/id_gate/id_registry.json,不碰同树其它道文件。- amend 被 gitlint B1 拦:正文行 >80,别把 ASCII 双引号写成正文首字符。
- 改「只动注释」要拿机器证据:
/keil-build0 错 0 警且Program Size与改前逐字节同数(本回合真跑,引用历史提交正文自报的数字不算证据),别口头承诺。 - 冻结历史与原始证据不改:boot 串口日志等采集现场是冻结证据,改了就是篡改;历史「修改记录」行按裁定保持改名后形态(号已全仓退役,留一个查无此号的引用比留改过名的条目更坏)。
*.uvprojx抖动不入库;ci-artifacts/里的 spec 与扫描中间产物收尾删掉,别当交付物留下。