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 全过;字节卫生零漂移。
31 lines
4.9 KiB
Markdown
31 lines
4.9 KiB
Markdown
# 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-build` 0 错 0 警且 `Program Size` 与改前**逐字节同数**(本回合真跑,引用历史提交正文自报的数字不算证据),别口头承诺。
|
||
- **冻结历史与原始证据不改**:boot 串口日志等采集现场是冻结证据,改了就是篡改;历史「修改记录」行按裁定保持改名后形态(号已全仓退役,留一个查无此号的引用比留改过名的条目更坏)。
|
||
- **`*.uvprojx` 抖动不入库**;`ci-artifacts/` 里的 spec 与扫描中间产物收尾删掉,别当交付物留下。
|