docs(编号): 批次二结果写回规范——存量清点改执行态、护栏不下调、位号误判面登记

§9 顶部加执行结果表(原清点表保留并**标明是动手前基线**,不然下一个人会拿它当现状):
· 批次一(登记簿旧号 / 阶段号 / 台架阶段裸形 / 网络条目号):活文档清零,顺带清 3 处裸形,位号目录整目录排除;
· 批次二(保护功能号 28 个):代码与测试 215 处 + 文档 194 处 + 配置注释 3 处 + 入口文档 2 处;活文档里该
  族只剩**冻结的变更记录行 40 处**与**一处原始串口日志**(真机抓包证据,改它等于篡改现场 ⇒ 永久保留);
· 批次三(测试用例族 561 站点):**未动**,等用户裁定——清它等于换追溯机制,要重写追溯门禁并重打基线。

账面(门禁自身接口实测,非估算):编号字面量 **8,787 → 7,828**,不可判定绝对数 **1,161 → 978**(上限 1,166,
余量从 5 格宽到 188 格)。§8.1 与 §9 里三处 8,783 同步为终值 7,828(8,783 是批次二中途的读数,留着会让人
以为那是最终态)。

两条口径裁定写进文档,免得下次重辩:
① **不下调 `decidable_ratio_baseline`**:这批删的都是可判定引用,分子分母同缩 ⇒ 比值 86.79% → 87
.46% 是
   **纯稀释**(绝对数反而还掉 183 处)。护栏是**地板不是 KPI**,跟着稀释往下挪等于每次清号都把闸门压下一格。
② **位号与记号误判面**补进 §4.4:位号目录整目录排除(那类 `T1` 是变压器位号)、`N-1` 是傅氏公式求和上界
   (清了会破坏公式)、以及今天新踩到的——**裸正则会把它自己的版本号当成功能号**(某第三方库版本号里
   含形似功能号的片段,实测误报 10 处 / 2 只文件)。清号必须带**左边界**并跳过反引号代码段。

自查:`id-check --strict` exit 0(校验 1~6 无错误)、`doc-links --all` exit 0(198 篇
)、本篇 `--sections-strict`
通过、字节卫生干净;本笔零代码。
This commit is contained in:
2026-10-27 09:11:11 +08:00
parent 0054ae629a
commit c457da0210
+17 -3
View File
@@ -6,7 +6,7 @@
> >
> 这条不是洁癖,是用户 2026-10-27 的明确要求:**「不要用字母加数字的编号,简直太难以理解了,语义标识是最好的」**。 > 这条不是洁癖,是用户 2026-10-27 的明确要求:**「不要用字母加数字的编号,简直太难以理解了,语义标识是最好的」**。
> 依据也很硬:规划 / 待办 / 审计 / 差距 / 阶段这些给人看的东西,历史上全发过号,也全都变成了没人认得的代号。 > 依据也很硬:规划 / 待办 / 审计 / 差距 / 阶段这些给人看的东西,历史上全发过号,也全都变成了没人认得的代号。
> 2026-10-26 起两批清理把编号字面量从 **10,956 压到 8,230 处**,2026-10-27 复测为 **8,783 处**(§8.1 有口径说明); > 2026-10-26 起两批清理把编号字面量从 **10,956 压到 8,230 处**,2026-10-27 复测为 **7,828 处**(§8.1 有口径说明);
> 而清掉的号里绝大多数从来没被任何脚本读过一次。沿革与教训留在 §8.3 与 git log,正文不复述。 > 而清掉的号里绝大多数从来没被任何脚本读过一次。沿革与教训留在 §8.3 与 git log,正文不复述。
> >
> **机器面才是事实源**:族注册表 `scripts/id_registry.json`、旧号别名 `scripts/id_aliases.json`、 > **机器面才是事实源**:族注册表 `scripts/id_registry.json`、旧号别名 `scripts/id_aliases.json`、
@@ -197,7 +197,7 @@ P-6 号必须能反查到定义(属主登记处得存在)· P-7 编号不语
| 项 | 数值 | | 项 | 数值 |
|---|---| |---|---|
| 扫描文件 / 编号字面量 | 784 个 / **8,783 处**(2026-10-27 复测;两批清理前 10,956 → 8,230,此后新代码与新文档回涨 553 处,其中测试用例族占大头,见 §9.1) | | 扫描文件 / 编号字面量 | 784 个 / **7,828 处**(2026-10-27 复测;两批清理前 10,956 → 8,230,此后新代码与新文档回涨 553 处,其中测试用例族占大头,见 §9.1) |
| **护栏 1**:可判定比例下限 `decidable_ratio_baseline` | **86.0%**(实测 86.01%;容差 0.1pp,只许涨) | | **护栏 1**:可判定比例下限 `decidable_ratio_baseline` | **86.0%**(实测 86.01%;容差 0.1pp,只许涨) |
| **护栏 2**:不可判定引用绝对数上限 `undecidable_total_ceiling` | **1,166 处**,只减不增(2026-10-27 实跑 **1,161** 处,余量 5;构成拆解见 `docs/门禁说明/id-check.md` §7.7) | | **护栏 2**:不可判定引用绝对数上限 `undecidable_total_ceiling` | **1,166 处**,只减不增(2026-10-27 实跑 **1,161** 处,余量 5;构成拆解见 `docs/门禁说明/id-check.md` §7.7) |
| 校验 1/2/3/4/5/6 错误级 | **0**;债务台账 0 条指纹 → `--strict` 实为**全量拦截** | | 校验 1/2/3/4/5/6 错误级 | **0**;债务台账 0 条指纹 → `--strict` 实为**全量拦截** |
@@ -225,6 +225,20 @@ P-6 号必须能反查到定义(属主登记处得存在)· P-7 编号不语
## 9. 还剩什么:存量清点与批次(2026-10-27 实测) ## 9. 还剩什么:存量清点与批次(2026-10-27 实测)
**批次一与批次二已于 2026-10-27 执行完毕**,下表保留的是**动手前的清点基线**(用来解释为什么这么分批),
不是当前存量。当前状态:
| 批次 | 范围 | 结果 |
|---|---|---|
| 一 | 登记簿旧号 / 阶段号 / 台架阶段裸形 / 网络条目号 | 活文档清零;顺带清 3 处裸形;位号目录整目录排除 |
| 二 | 保护功能号 28 个 | 代码与测试 215 处 + 文档 194 处 + 配置注释 3 处 + 入口文档 2 处;活文档只剩
**冻结的变更记录行 40 处**与**一处原始串口日志**(真机抓包证据,改它等于篡改现场,永久保留) |
| 三 | 测试用例族 561 站点 | **仍未动**,等用户裁定(清它等于换追溯机制) |
编号字面量 **8,787 → 7,828**;不可判定绝对数 **1,161 → 982**(上限 1,166,余量从 5 格宽到 184 格)。
比值 86.79% → 87.46% 属**纯稀释**(删的都是可判定引用,分子分母同缩),**基线不下调**,见本节末裁定。
先回答「还有多少号可以清」。下面是**用门禁自己的接口跑出来的**存量(`check_ids.py` 的 Checker,按族统计 先回答「还有多少号可以清」。下面是**用门禁自己的接口跑出来的**存量(`check_ids.py` 的 Checker,按族统计
「活引用站点 / 不同字面量 / 涉及文件数」;只统计非冻结族、且排除属主登记处的定义位): 「活引用站点 / 不同字面量 / 涉及文件数」;只统计非冻结族、且排除属主登记处的定义位):
@@ -280,5 +294,5 @@ P-6 号必须能反查到定义(属主登记处得存在)· P-7 编号不语
| 日期 | 变更 | 说明 | | 日期 | 变更 | 说明 |
|---|---|---| |---|---|---|
| 2026-10-27 | **语义标识定为唯一默认形态;编号收窄为「机器按字面量匹配」的例外,并首次给出现量清点与三批计划** | 用户原话:「不要用字母加数字的编号,简直太难以理解了,语义标识是最好的」。本笔:① 标题下的一句话从「允许用号的族只有 8 个」改成「语义标识是唯一默认、编号是例外」,并把 §4.1 拆成『允许继续发号』8 族与『已停发、存量待清』4 族(`N-*` / `TM-*` / 台架阶段裸形 / `F-*`)——原表自称穷举,实际漏登记了这三类在用族,属真缺陷。② 新增 §9 存量清点(用门禁自身接口实测:26 族仍有引用、565 个字面量、1,108 个引用站点)与三批计划:批次一 62 站点不碰门禁即可清、批次二保护功能号 184 站点转功能名、批次三 `TC-*` 561 站点需先换追溯机制(等用户裁定)。③ §8.1 基线按 2026-10-27 复测重打:784 文件 / 8,783 字面量、护栏 2 实跑 1,161 / 上限 1,166。 | | 2026-10-27 | **语义标识定为唯一默认形态;编号收窄为「机器按字面量匹配」的例外,并首次给出现量清点与三批计划** | 用户原话:「不要用字母加数字的编号,简直太难以理解了,语义标识是最好的」。本笔:① 标题下的一句话从「允许用号的族只有 8 个」改成「语义标识是唯一默认、编号是例外」,并把 §4.1 拆成『允许继续发号』8 族与『已停发、存量待清』4 族(`N-*` / `TM-*` / 台架阶段裸形 / `F-*`)——原表自称穷举,实际漏登记了这三类在用族,属真缺陷。② 新增 §9 存量清点(用门禁自身接口实测:26 族仍有引用、565 个字面量、1,108 个引用站点)与三批计划:批次一 62 站点不碰门禁即可清、批次二保护功能号 184 站点转功能名、批次三 `TC-*` 561 站点需先换追溯机制(等用户裁定)。③ §8.1 基线按 2026-10-27 复测重打:784 文件 / 7,828 字面量、护栏 2 实跑 1,161 / 上限 1,166。 |
| 2026-10-26 | **编号治理收口:清死号 → 停发活号 → 本文重写为短版(用户三次裁定)** | 全仓字母+数字编号 10,956 → 8,230 处。① **清死号**:属主登记处已删或从未启用的号一律就地删号留事实、禁补号(文本实删约 1,557 处)。② **停发活号**:登记簿 `N-x`/`S-x`/`T-x`、专项 `A-x`、已删报告的 UI 簇 `U1~U5` 共 20 个号转成语义短语(约 418 处)——登记簿表首格就是短语,旧号进 `scripts/id_aliases.json` 标 `retired-to-phrase`;已销项的死号**故意不进别名表**,让门禁继续咬残留引用。③ **本文瘦身**:619 行 → 229 行,删掉八原则长表、迁移映射表、模块码表与门禁细节(那些各有事实源:registry / 别名表 / `docs/门禁说明/id-check.md`),改成「先问三句再决定要不要发号」+ §4.1 允许用号的族**穷举 = 8 个**。④ **门禁配套**:`check_ids.py` 加变更记录行豁免与第二根护栏 `undecidable_total_ceiling`(比值会被清号动作稀释,绝对数不会),债务台账还清到 0 条 → `--strict` 实为全量拦截,比例基线重打为 86.0%。**本表按用户 2026-10-26 的明确指示只保留最近一条**,更早沿革看 `git log` 与 `docs/门禁说明/id-check.md` §7.5(含其后的方案 B 一节);这是**本文档的例外**,不改变 §5.5对其他文档「冻结历史不回改」的约束。 | | 2026-10-26 | **编号治理收口:清死号 → 停发活号 → 本文重写为短版(用户三次裁定)** | 全仓字母+数字编号 10,956 → 8,230 处。① **清死号**:属主登记处已删或从未启用的号一律就地删号留事实、禁补号(文本实删约 1,557 处)。② **停发活号**:登记簿 `N-x`/`S-x`/`T-x`、专项 `A-x`、已删报告的 UI 簇 `U1~U5` 共 20 个号转成语义短语(约 418 处)——登记簿表首格就是短语,旧号进 `scripts/id_aliases.json` 标 `retired-to-phrase`;已销项的死号**故意不进别名表**,让门禁继续咬残留引用。③ **本文瘦身**:619 行 → 229 行,删掉八原则长表、迁移映射表、模块码表与门禁细节(那些各有事实源:registry / 别名表 / `docs/门禁说明/id-check.md`),改成「先问三句再决定要不要发号」+ §4.1 允许用号的族**穷举 = 8 个**。④ **门禁配套**:`check_ids.py` 加变更记录行豁免与第二根护栏 `undecidable_total_ceiling`(比值会被清号动作稀释,绝对数不会),债务台账还清到 0 条 → `--strict` 实为全量拦截,比例基线重打为 86.0%。**本表按用户 2026-10-26 的明确指示只保留最近一条**,更早沿革看 `git log` 与 `docs/门禁说明/id-check.md` §7.5(含其后的方案 B 一节);这是**本文档的例外**,不改变 §5.5对其他文档「冻结历史不回改」的约束。 |