51d89cf9d3
配置:摘掉该钩子,原位置留一条退役注记(不复述数钩子数的字面量)。 YAML 解析口径实测:声明 51 / 带 manual 3 / 提交期实跑 48。 脚本:git mv 进 scripts/archive/id_gate/check_ids_new.py,与已退役的 check_ids.py 同档;docstring 改退役口径,REPO_ROOT 因归档位置深两级 改取 parents[3],失败提示与自述路径同步改写。从归档位置实测: --self-test 5 正例拦下 / 29 反例放行 rc=0;--worktree 与暂存区模式 rc=0。 文档(七份):AGENTS.md 六处——总数、加钩流水(顺带补上 2026-10-29 漏记的 skill-size 一笔)、枚举项删除、本行相加数、提交期实跑、门禁索引 与主题表两行;门禁说明 README 八处——声明数、实跑数、计数流水、grep 陷阱的举例数、§2 标题、姿态表「只查新增」行、两行索引状态;编号规范 七处——引导块改「本文即唯一事实源」、族总表一处、§8 标题与正文、 §8.5 补第④步、④ 之后无机械牙那段、速查;门禁说明 id-check-new.md 整篇重写为退役留档(查什么 / 落地前的噪声回放 / 退役五条理由 / 手工 跑法 / 此后靠什么 / 认下丢了什么);门禁说明 id-check.md 与归档目录 README、check_ids.py 里「现行门禁 = id-check-new」的指针同步改写。 技能(三份):id-family-semantic-migration 一行、stale-doc-count-sweep 的 pitfalls 与 steps 各一行改手工跑法(steps 第 5 条那笔历史计数例不动)。 此后编号形态没有机器面:判据只剩 docs/编号规范.md §1 三句自问、§4.1 族总表与人工评审;2026-10-14 那类"销项删行后号被重新取走"不再有提交期 警报——这条代价已写进留档,别当成"检查没了随便写"。 纯文档与门禁配置,未跑 @build。全程未 push。
编号门禁归档(两道都已退役:全库语料审计 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 三句自问 + §4.1 族总表 + 评审; 留档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 再决定,别直接把它塞回钩子。