Files
STM32F4-Base/scripts/archive/id_gate
wandering1 842d711ed6 refactor(编号): 测试验证层级去号——CI job / 门禁输出 / 命令行旗标换语义名 + ASCII 段名
用户裁定「我不想看到编号」。测试验证层级这一族的整族清退分三道并行:本笔是**代码与 CI 道**
(CI 步骤与门禁输出面),代码注释面另走、文档面由文档道走。

口径(旧 → 语义名 → ASCII 段名,段名只进日志/旗标/job id/文件名):
  L0 静态门禁 static | L0a 钩子解释器预检 preflight | L0b 提交信息门禁 commitmsg
  L0c 体积门禁 size | L0.5 主机侧纯逻辑单测 host-unit | L0.5c 覆盖率 coverage

- scripts/ci_local.py 43 站点:段标题与 [SUMMARY] 标签改 ASCII 段名(static: /
  host-unit:),函数 run_l0/run_l05 → run_static_gates/run_host_unit_tests,
  收尾「已跑:」列表用段名。旗标改 --static-only / --host-unit-only,**旧旗标
  --l0-only / --l05-only 保留为 argparse 别名**(肌肉记忆与既有脚本片段不断档,
  实测 --help 两名列出)。
- .gitea/workflows/ci.yml 42 站点:job id l0-gates → static-gates、
  l05-host-unit-tests → host-unit-tests;步骤名与 step-summary 标题改语义名;
  日志名 l0-pre-commit.log → static-pre-commit.log、l05-<模块>.log →
  host-unit-<模块>.log;::error::/::notice:: 文案同步。yaml.safe_load 核过
  两个 job id 与步骤名。
  host-unit-tests;步骤名与 step-summary 标题改语义名;日志名 l0-pre-commit.log →
  static-pre-commit.log、l05-<模块>.log → host-unit-<模块>.log;::error::/::notice::
  文案同步。yaml.safe_load 核过两个 job id 与步骤名。
- 门禁脚本 18 站点:check_registration(登记簿理由串 7)、check_test_coverage 5、
  README 8、check_generated_fresh 2、ram_baseline 2、check_size_gate 1、
  ci_find_python.ps1 2、ci_runner_bootstrap.ps1 2、.pre-commit-config.yaml 2、
  requirements.txt 1(保持纯 ASCII)。
- skills 7 站点:task-worktree(含 [SUMMARY] 样例两行)、mem-budget、ui-verify、
  task_worktree.py 的实跑标签。
- AGENTS.md 3 站点:CI 段「只跑静态门禁 + 主机侧纯逻辑单测」、自查命令段、
  「2026-10-11 静态门禁全灭」事件名。
- 归档:编号治理历史.md 新增 §10 换算表 + **撞族警示**(同形 L0/L1/L2/L3 还属 UI 设计
  令牌层 / UI 菜单层级 / 采集链 / 链路时延段 / CubeMX 三层 / 硬件位号与 FTP 应答字面量
  等六个族,其中 6 处在字符串字面量里,改了就是改行为——故全程只按行内置换、先判族)。
- docs/产品需求 §7.4 测试分层表:去号 + 顺带修掉上一批**错族替换疤**(该表 L1/L2 行曾被
  采集链层名「语义取数与有效性 / 全周傅氏相量」「保护判据」顶替,现按内容改写为板端测试
  套件 / 主机侧回归两行)。同文档 §1.5 G5 判据行同步。

门禁:ci_local --help 两面旗标并列;py_compile 7 个 .py 全过;yaml 解析通过;
check_ids_new --worktree rc=0;git diff --check 干净;17 个改动文件 FFFD=0、无 CR、
BOM 与原文件一致(含 requirements.txt 纯 ASCII)。本族无机器识别面(单字母+数字是
新增行门禁的自述盲区),口径来自自建逐行扫描器,复扫本族形态归零。
- 交接说明:文档道 teammate 在改 CI 指南时中断,剩余 9 处双写疤与 29 处 CI 标识
  (job id / 日志名 / 汇总行字面量)由 Lead 接手改完,逐处仍走断言式行内置换。
2026-10-28 17:46:52 +08:00
..

编号门禁·全库语料审计(已退役,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 再决定,别直接把它塞回钩子。