Files
STM32F4-Base/scripts/archive/id_gate/README.md
T
wandering1 1668842d61 chore(id-check): 退役全库编号语料审计(钩子 52 → 51)
第三步(用户裁定跳过观察期直接做)。第一步 bf2a5c21 把两根护栏转报告制,
第二步 a5832788 立起只查新增行的新门禁,本笔把旧的全库语料审计整体退役:
语义标识已是默认形态,这套 99 族语料不再有人需要维护。

移动(保留可复现性,不再进提交门禁):
- scripts/check_ids.py → scripts/archive/id_gate/check_ids.py
- id_registry.json(87.6 KB,99 族)/ id_aliases.json(187 KB)/ id_known_backlog.json
  一并归档;新写 archive README:为什么退役、现在用什么、怎么手工跑、归档纪律。
- 归档脚本改了自定位(仓库根往上 4 层、语料与脚本同目录)与一行退役横幅;
  从新路径实跑:811 文件 / 8,051 字面量,--strict rc=0。

钩子:删 id-check(52 → 51)。现役编号门禁只剩 id-check-new(只查新增行、零语料)。
声明数 51 = commit 阶段 50 + gitlint 1,三数已对齐(AGENTS / 门禁索引 / YAML)。

连带改动:
- rename_ids.py 的别名表路径指向归档(改名工具本身没退役);
- check_ids_new.py 排除面加 scripts/archive/(语料里全是编号字面量,天经地义);
- doc-links 跳过 .mnemon/ 与 ci-artifacts/(本地记忆状态与草稿,非项目文档)——
  语料搬家后这些目录里的旧路径引用会假红,它们本来就不该参与文档门禁;
- 全库 .md 里的旧路径引用改指 scripts/archive/id_gate/(含两份 skill 手册);
- id-check.md 加退役横幅并保留原文作留档;门禁索引把该行标成已退役;
- 编号规范 §8 改成「现行只有一道门禁」+ §8.1~§8.4 标为退役留档 + §8.5 ③ 置已完成;
  各加一条 2026-10-28 变更记录行。

验证(实测):YAML 口径 51 个钩子、id-check 不在其中;doc-links --all --sections-strict
通过(194 文档);mojibake / bom-guard / coding-standard / git diff --check 全 rc=0;
新门禁自检 5 正例 + 29 反例仍全过。
2026-10-28 12:38:38 +08:00

2.3 KiB
Raw Blame History

编号门禁·全库语料审计(已退役,2026-10-28 归档)

本目录是 2026-10-20 ~ 2026-10-28 期间在 pre-commit 里跑的那套全库编号审计, 连同它的两份语料一起搬进来,不再进提交门禁。

文件 是什么
check_ids.py 八项校验脚本(规范 §8)。手工复查存量编号现状时才跑
id_registry.json 99 族的注册表:形态正则 / 属主登记处 / 冻结 / 游标 / 两条护栏的数值
id_aliases.json 旧号 → 新号 / 作废(retired-to-phrase、void)的别名表,187 KB
id_known_backlog.json 债务台账(收口时已还清到 0 条)

为什么退役

实测拆账:单次运行只有 1.8 s,但近 80 笔提交里 61 笔改了语料 / 门禁 / 规范; 99 族里 78 族已冻结。真正值得机械守的只剩一件事——别新写一个自造编号, 而那件事不需要语料(判据只要「这个前缀我没见过」)。

现在用什么

  • 现行门禁:scripts/check_ids_new.py + 钩子 id-check-new —— 只查 git diff 新增行, 零语料。详解 docs/门禁说明/id-check-new.md。
  • 路线与验收条件:docs/编号规范.md §8.5(①②③ 三步的来龙去脉)。
  • 规范正文(仍然有效,只是不再全库机械校验):docs/编号规范.md §1 先问三句、§4.1 族总表。

怎么手工跑一次

& '.venv\Scripts\python.exe' scripts/archive/id_gate/check_ids.py            # 全库报告
& '.venv\Scripts\python.exe' scripts/archive/id_gate/check_ids.py --top 30   # 多看几条

退出码:0 = 无错误级 / 仅告警;1 = 有错误级(--strict 语义);2 = 环境错误。 注意:它扫的是 git ls-files,所以未跟踪文件不在扫描面(退役前的实测盲区)。

归档纪律

  • 这两份语料不再维护:不要为了让报告变绿去改 id_registry.json / id_aliases.json。
  • scripts/rename_ids.py 仍会往归档的 id_aliases.json 写条目(改名工具没退役)—— 那是它自己的账,与本目录的"冻结快照"性质不同,改名前先想清楚是否还要记这笔。
  • 真要恢复全库校验,先读 docs/编号规范.md §8.5 再决定,别直接把它塞回钩子。