# 编号门禁归档(两道都已退役:全库语料审计 2026-10-28、新增行检查 2026-10-29) 本目录是 2026-10-20 ~ 2026-10-29 期间在 `pre-commit` 里跑过的**两套编号门禁**,连同它们的 语料与白名单一起搬进来,**都不再进提交门禁**。2026-10-29 的裁定见每篇文末与其留档文档。 | 文件 | 是什么 | |---|---| | `check_ids.py` | 八项校验脚本(规范 §8)。手工复查存量编号现状时才跑 | | `check_ids_new.py` | 只查新增行的那道(2026-10-28 ~ 2026-10-29 在钩子里跑),2026-10-29 用户裁定退役后降为**手工形态普查**;`--self-test` 保留,`REPO_ROOT` 因归档位置深两级改取 `parents[3]` | | `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 族已冻结。真正值得机械守的只剩一件事——**别新写一个自造编号**, 而那件事不需要语料(判据只要「这个前缀我没见过」)。 ## 现在用什么 - **没有现行门禁**:接班的 `id-check-new`(只查新增行、零语料)也在 2026-10-29 被用户裁定退役, 脚本进本目录。编号形态此后无机器面,判据 = `docs/编号规范.md` §1 的默认答案(2026-10-29 起一律停发)+ §4.1 存量族表 + 评审; 留档 `docs/门禁说明/id-check-new.md`(拦下过什么、为什么退、手工怎么再跑)。 - **手工普查与恢复机器面**:`docs/编号规范.md` §8.5(退役流水在 `编号治理历史.md`)。 - **规范正文**(仍然有效,只是不再全库机械校验):`docs/编号规范.md` §1 默认答案、§4.1 存量族表。 ## 怎么手工跑一次 ```text & '.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 再决定,别直接把它塞回钩子。