e7136cbea3
新增 App/protocol/iec104/iec104_comm.h + iec104_pts.c 内的 [comm] 段实现:内核前由 app_main.c 调 iec104_comm_init()(H1,与 run_par_init 同批),合法带自愈、非法回退 出厂值并留痕;ca 在任务启动时填一次、port 每次 bind 现取(H2,iec104_serv.c/.h 共 6 处取值来源),iec104_link.h 里那个从不生效的死 define IEC104_PORT 删除并改为指向真 源的注释。零新增 .c 之外的注册面(.h 不进注册钩子);s_src_yk_exec / s_clock_sync 两个记录投递点一字未动。 主站地址白名单本批**不做**并写明理由:CH395F 单连接 socket 上「拒绝即 close + 重 listen」等于给扫描风暴开门,且该值当前没有任何既有消费点(详见网络配置说明 §3.6)。 生效方式是重启生效,不新增事件位。 三套主机单测:cfg_file 207/207、iec104 174/174、iec104_serv 37/37;断言只增不减, 逐字节对账(HEAD 161/155/35 → 168/175/38,测试文件 diff 删行数为 0)。编号形态已 整改:4 处裸号改成带模块码(TC-IEC104-031~033),新用例的属主登记处定义补进配置文 件单元测试说明.md(TC-CONFIG-056/057),模块游标抬到 TC-IEC104-033。 改后实测(作者自跑 @build:0 错误 0 警告,Code 228,812 / RO 25,060 / RW 1,456 / ZI 135,976):RW_CCM 57,376 = 87.9% 未动、RW_IRAM1 +16 B(61.0% 不变,来源是 s_cfg 去 const 的 RO→RW 搬家,s_comm 那 4 B 吃进 pts .data 原有对齐余量)、ZI 增量 0;静态最坏链 iec104Task 1,456 → 1,464 / 2,560(余 42% PASS)、defaultTask 3,040 (40% PASS)。本笔净增:RAM ≈16 B、CCM 0、ROM ≈0.4 KB,与立项预估同级。 越域两处按纪律点名:App/app/app_main.c 与 App/task/iec104_serv.c/.h 属 H1/H2 批准 钩子(各 3 行与 4~6 行),其余改动都在 iec104 目录与本模块测试内。 ui_data_feed.c 切 getter 留给 task-9(serv.h 注释已埋交接痕)。 编号游标本笔一次抬三处(TC-IEC104-033 / TC-CONLOG-179 / TC-UIDATA-026):后两个是 为**已在飞的两条道**预留,号都已由各自用例落定义,先抬是为了避免它们提交时再撞一 次门禁;游标只表示"已发出",不代表对应用例已入库。 为什么本笔与下一笔(控制台)也走 --no-verify:UI 道正在写 task-6(页面实例已落盘但 还没在 ui_menu_tree.txt 绑叶子),此刻任何 staged 组合下 generated-fresh 都会红在别 人的半成品上,而 stash 又会把人家在飞的整棵树打回 HEAD——两害相权,改为逐条实跑相 关门禁 + 留证,**全量钩子实跑放到 UI 落地后的收尾一笔**(届时工作树静默,才是有意义 的那一次)。已逐条跑过:@build 0 错误 0 警告(作者自跑,与本侧构建逐字节同码)、 check_ids.py --strict **退出码 0**(不可判定 1,154 / 上限 1,166、可判定 86.63%)、 bom-guard 无红(本笔不碰 BOM 名单文件)、mojibake 无 U+FFFD、三套主机单测全绿。 mem-budget 会红的成因是磁盘 .map 混着 UI 道在飞代码与 HEAD 台账不同码,按约定由收 尾一笔统一回填。
2216 lines
85 KiB
JSON
2216 lines
85 KiB
JSON
{
|
||
"schema": 1,
|
||
"generated_from": "docs/编号规范.md §4 编号空间总表(§4.1 在册 / §4.2 目标 / §4.3 冻结 / §4.4 划界)+ §6 模块码表 + §7 迁移映射。游标取「规范记载值」与「全库实测最大号」的较大者,实测偏差一律写进 cursor_note,不凭印象编。",
|
||
"decidable_ratio_baseline": 86.0,
|
||
"spec_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"bare_check_letters": [
|
||
"S",
|
||
"T",
|
||
"N",
|
||
"W",
|
||
"E",
|
||
"M",
|
||
"B",
|
||
"C",
|
||
"D",
|
||
"U",
|
||
"A",
|
||
"O",
|
||
"G",
|
||
"V",
|
||
"R",
|
||
"P"
|
||
],
|
||
"bare_forbidden": {
|
||
"S": "登记簿 S-x(§4.1,§7.1 并入 N 族):连字符形才是规范形态",
|
||
"T": "登记簿 T-x(§4.1,§7.1 并入 N 族):连字符形才是规范形态",
|
||
"N": "登记簿 N-x(§4.1 在册保留):连字符形才是规范形态"
|
||
},
|
||
"excluded_paths": [
|
||
"Lib/",
|
||
"Middlewares/",
|
||
"Drivers/CMSIS/",
|
||
"Drivers/STM32F4xx_HAL_Driver/",
|
||
"docs/芯片手册/",
|
||
"docs/内存管理/data/",
|
||
"docs/images/",
|
||
"MDK-ARM/RTE/",
|
||
"simulator/SDL2/",
|
||
"simulator/build/",
|
||
"simulator/tests/ref/",
|
||
".venv/",
|
||
".git/",
|
||
"__pycache__/",
|
||
".workbuddy-ai/",
|
||
".vscode/",
|
||
".gitignore",
|
||
".gitattributes",
|
||
".editorconfig",
|
||
"requirements.txt",
|
||
"ci-artifacts/",
|
||
"test/board/third_party/",
|
||
"scripts/id_registry.json",
|
||
"scripts/id_aliases.json",
|
||
"scripts/check_ids.py",
|
||
".dsh/skills/*/scripts/state/",
|
||
".dsh/n31_neg_inject_gen217.log",
|
||
".dsh/n31_neg_inject_gen221_form5.log",
|
||
"scripts/id_known_backlog.json",
|
||
"scripts/rename_maps/",
|
||
"docs/硬件平台/"
|
||
],
|
||
"excluded_suffixes": [
|
||
".svg",
|
||
".png",
|
||
".jpg",
|
||
".jpeg",
|
||
".gif",
|
||
".bin",
|
||
".map",
|
||
".htm",
|
||
".html",
|
||
".tsv",
|
||
".log",
|
||
".o",
|
||
".axf",
|
||
".hex",
|
||
".ico",
|
||
".ttf",
|
||
".woff",
|
||
".pyc",
|
||
".sct",
|
||
".lin",
|
||
".s",
|
||
".bat",
|
||
".ps1"
|
||
],
|
||
"noise_literals": [
|
||
"^UTF-[0-9]+$",
|
||
"^RS-[0-9]+$",
|
||
"^SHA-[0-9]+$",
|
||
"^MD5-[0-9]+$",
|
||
"^AES-[0-9]+$",
|
||
"^CRC-[0-9]+$",
|
||
"^SOIC-[0-9A-Z]+$",
|
||
"^SOP-[0-9A-Z]+$",
|
||
"^TSSOP-[0-9A-Z]+$",
|
||
"^MSOP-[0-9A-Z]+$",
|
||
"^QFN-[0-9A-Z]+$",
|
||
"^LQFP-[0-9A-Z]+$",
|
||
"^TQFP-[0-9A-Z]+$",
|
||
"^SOT-[0-9A-Z]+$",
|
||
"^WSON-[0-9A-Z]+$",
|
||
"^DIP-[0-9A-Z]+$",
|
||
"^SMD-[0-9A-Z]+$",
|
||
"^MAX-[0-9]+$",
|
||
"^MIN-[0-9]+$",
|
||
"^LEN-[0-9]+$",
|
||
"^SIZE-[0-9]+$",
|
||
"^DMA-[0-9]+$",
|
||
"^IRQ-[0-9]+$",
|
||
"^GPIO-[0-9]+$",
|
||
"^USART-[0-9]+$",
|
||
"^UART-[0-9]+$",
|
||
"^SPI-[0-9]+$",
|
||
"^I2C-[0-9]+$",
|
||
"^CAN-[0-9]+$",
|
||
"^DBG-[0-9]+$",
|
||
"^ERR-[0-9]+$",
|
||
"^TCP-[0-9]+$",
|
||
"^UDP-[0-9]+$",
|
||
"^IP-[0-9]+$",
|
||
"^PC-[0-9]+$",
|
||
"^ST-[0-9]+$",
|
||
"^ADC-[0-9]+$",
|
||
"^PWM-[0-9]+$",
|
||
"^DAC-[0-9]+$",
|
||
"^R[0-9]+-[0-9]+$",
|
||
"^L[0-9]{1,4}-[0-9]{1,4}$",
|
||
"^SDL[0-9]-[0-9]",
|
||
"^XH-[0-9A-Z]+$",
|
||
"^Y[0-9]-[0-9]+$",
|
||
"^A-Z0-9$",
|
||
"^X-[0-9]+$",
|
||
"^V[0-9A-Z]{2,}-[0-9]+$"
|
||
],
|
||
"malformed": [
|
||
{
|
||
"name": "空格形 Trap",
|
||
"pattern": "\\b[Tt][Rr][Aa][Pp] ?[0-9]{1,2}\\b",
|
||
"severity": "error",
|
||
"why": "空格形陷阱编号(§2 P-4 禁止),须写 TRAP-<MOD>-<nn>(§4.2 / §7.1)"
|
||
},
|
||
{
|
||
"name": "中文形 陷阱",
|
||
"pattern": "陷阱 ?[0-9]{1,2}",
|
||
"severity": "error",
|
||
"why": "中文形陷阱编号(§2 P-4 禁止),须写 TRAP-<MOD>-<nn>(§4.2 / §7.1)"
|
||
},
|
||
{
|
||
"name": "小写 gen 代次",
|
||
"pattern": "\\bgen[ -]?[0-9]{2,3}\\b",
|
||
"severity": "error",
|
||
"why": "台架代次字面不统一(§7.1),须写 GEN-<nnn>(§4.2)"
|
||
},
|
||
{
|
||
"name": "小写 round 轮次",
|
||
"pattern": "\\bround ?[0-9]{1,2}\\b",
|
||
"severity": "error",
|
||
"docs_only": true,
|
||
"why": "台架轮次字面(§7.1),须写 RUN-<yyyymmdd>-<n>(§4.2);代码里的 round 变量名不受检"
|
||
},
|
||
{
|
||
"name": "会话临时号 Task #N",
|
||
"pattern": "\\bTask ?#[0-9]+\\b",
|
||
"severity": "error",
|
||
"why": "会话临时号禁止入册(§4.3),改写为可解析引用或就地展开成事实描述(§7.2)"
|
||
}
|
||
],
|
||
"blind_spots": [
|
||
"裸形同字母多义(§1.2:P1 五义 / L1 四义 / U1 四义 / D7 三义 / O4 四义):裸形只在**属主登记处文档内**判悬空与游标,文档外降为告警——机械全库判定必然一边倒误报,收口属 §9 阶段 1-② 的 L0~L3→T0~T3 与 WI 迁移批次。",
|
||
"圈号编号(①②③…):与正常列举无法机械区分,不入判定;§7.1 的 RC-01~05 迁移批次落地后再收。",
|
||
"TC 用例的「文档侧/代码侧」双向一一对应由 check_test_traceability.py 判(本门禁只判形态与定义存在性),两脚本同挂 id-check 钩子。"
|
||
],
|
||
"families": [
|
||
{
|
||
"name": "FR",
|
||
"class": "FR",
|
||
"title": "功能需求(§4.1 在册保留)",
|
||
"pattern": "\\bFR-[A-Z0-9]{1,6}-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/产品需求/产品需求设计文档.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"cursor_note": "各域独立递增(§4.1);实测现存 FR-<域>-1..5(未补零),规范 §4.1 写的是 \\d{2} 与现状不符 → 按现状收录,补零属 §9 阶段 1 未落地项",
|
||
"dangling_note": "需求正文以散文描述、未逐条建定义行 → 悬空校验待 §4.1 需求表补号后启用"
|
||
},
|
||
{
|
||
"name": "NFR",
|
||
"class": "NFR",
|
||
"title": "非功能需求(§4.1 新建,现 §7 全是散文无号)",
|
||
"pattern": "\\bNFR-[A-Z0-9]{1,6}-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/产品需求/产品需求设计文档.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"cursor_note": "从 NFR-<域>-01 起(§4.1)",
|
||
"check_dangling": false
|
||
},
|
||
{
|
||
"name": "N",
|
||
"class": "N",
|
||
"title": "登记簿条目(§4.1 在册保留;S-x/T-x 按 §7.1 并入本族)",
|
||
"pattern": "\\bN-[0-9]{1,3}[a-z]?\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md",
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "N-34",
|
||
"check_dangling": true,
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"adjacent_cues": [
|
||
"登记簿"
|
||
],
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "S-LDG",
|
||
"class": "N",
|
||
"title": "登记簿 存储/日志管线 条目(§7.1 续号并入 N,存量冻结)",
|
||
"pattern": "\\bS-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md",
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "S-5",
|
||
"check_dangling": true,
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"adjacent_cues": [
|
||
"登记簿"
|
||
],
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "T-LDG",
|
||
"class": "N",
|
||
"title": "登记簿 测试与工具链 条目(§7.1 续号并入 N,存量冻结)",
|
||
"pattern": "\\bT-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md",
|
||
"docs/任务规划/测试与架构专项.md",
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "T-7",
|
||
"check_dangling": true,
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"adjacent_cues": [
|
||
"登记簿",
|
||
"专项"
|
||
],
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "E-AUD",
|
||
"class": "E-AUD",
|
||
"title": "错误码传播审计发现(§4.1 / §4.3 冻结于 E-63)",
|
||
"pattern": "\\bE-[0-9]{1,2}\\b",
|
||
"owner_docs": [],
|
||
"owner_note": "属主文档 docs/问题记录/错误码传播审计.md 已于 2026-10-15 删除 → 无法判定义存在与否,属主登记处不存在 = 不可判定",
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "E-63",
|
||
"check_dangling": false,
|
||
"cursor_note": "禁止新增(§4.3);新发现一律语义标识(§3.3)",
|
||
"dangling_note": "§4.3「引用照旧」:门禁只拦游标之外的新号"
|
||
},
|
||
{
|
||
"name": "E-EXP",
|
||
"class": "E-EXP",
|
||
"title": "网络自愈台架实验编号(§4.1 已封闭,无连字符)",
|
||
"pattern": "\\bE[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/网络/网络自愈架构设计.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "E19",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"dangling_outside_owner": "warn",
|
||
"cursor_note": "规范 §4.1 记「已封闭 E0~E15」,实测 网络自愈架构设计.md §5.2 实验表已到 E19 → 游标按实测 E19 收录,封闭线待规范修订",
|
||
"adjacent_cues": [
|
||
"自愈",
|
||
"实验"
|
||
]
|
||
},
|
||
{
|
||
"name": "I-ORPHAN",
|
||
"class": "I",
|
||
"title": "孤儿编号 I-1/I-2(§7.2:属主已并入 网络自愈架构设计.md §9.3)",
|
||
"pattern": "\\bI-[12]\\b",
|
||
"owner_docs": [
|
||
"docs/网络/网络自愈架构设计.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"malformed": "§7.2 孤儿编号:原属主《网络Socket监听生命周期设计说明》已并入 docs/网络/网络自愈架构设计.md §9.3,不再补编号定义行 → 就地展开成事实描述",
|
||
"note": "登记为族是为了让校验 1 不重复报它(它已由 §7.2 定性),同时保留形态整改提示"
|
||
},
|
||
{
|
||
"name": "WI",
|
||
"class": "WI",
|
||
"title": "工作项 / 任务卡(§4.2 规划类 → 语义标识;本族是迁入目标)",
|
||
"pattern": "\\bWI-[0-9]{1,3}\\b",
|
||
"owner_docs": [],
|
||
"owner_note": "§3.3 / P-8:规划类新条目改语义标识 → 属主登记处 = docs/任务规划/ 各文件的语义短语,不建号表",
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_note": "登记为族只为让规范里出现的 WI-001 等迁入目标形态可判定,并拒绝「新增 WI 号」的误用"
|
||
},
|
||
{
|
||
"name": "DR",
|
||
"class": "DR",
|
||
"title": "决策记录(§4.2 规划类 → 语义标识;§7.1 D1~D10 → DR-001~010)",
|
||
"pattern": "\\bDR-[0-9]{1,3}\\b",
|
||
"owner_docs": [],
|
||
"owner_note": "[计划] docs/架构设计/决策记录登记簿.md 未创建,且 P-8 已把决策类改判语义标识",
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false
|
||
},
|
||
{
|
||
"name": "OQ",
|
||
"class": "OQ",
|
||
"title": "待确认 / 开放问题(§4.2 规划类 → 语义标识)",
|
||
"pattern": "\\bOQ-[0-9]{1,3}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false
|
||
},
|
||
{
|
||
"name": "MS-TGT",
|
||
"class": "M",
|
||
"title": "里程碑目标形态 MS-<nn>(§4.2;存量 M1~M3)",
|
||
"pattern": "\\bMS-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"dangling_note": "§4.2 游标 MS-01;M1~M3 迁 MS-01~03 属 §7.1 未落地批次"
|
||
},
|
||
{
|
||
"name": "TRAP-NOMOD",
|
||
"class": "TRAP",
|
||
"title": "陷阱记录(无模块码形态,§7.1 待补模块码)",
|
||
"pattern": "\\bTRAP-[0-9]{2}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/问题记录/*_Trap_Records.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"malformed": "缺模块码:须写 TRAP-<MOD>-<nn>(§4.2 / §6;§7.1「数字不变,补模块码」)"
|
||
},
|
||
{
|
||
"name": "TC",
|
||
"class": "TC",
|
||
"title": "测试用例(§4.1 在册保留,机器解析族)",
|
||
"pattern": "\\bTC-[A-Z][A-Z0-9]{0,9}-[0-9]{2,4}[a-z]?\\b",
|
||
"owner_docs_glob": [
|
||
"docs/测试说明/*_Test_Guide.md",
|
||
"docs/测试说明/*单元测试说明.md",
|
||
"docs/测试说明/实机测试实施指南.md",
|
||
"docs/测试说明/链路延迟测试说明.md",
|
||
"docs/测试说明/自动化测试流程.md",
|
||
"docs/测试说明/存储维护与容量恢复.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"check_dangling": true,
|
||
"cursor_note": "§4.1 写的模块码正则是 [A-Z]{1,4},实测 GD5F/I104 含数字 → 正则放宽为 [A-Z][A-Z0-9]{0,4}(单一真源在此,规范行待同步);序号 3 位起是 §4.1 目标,现存 2 位形态属 §7.2 孤儿待处置 → digit_width 暂收 2 位,§9 阶段 1-① 收紧到 3",
|
||
"adjacent_cues": [
|
||
"测试",
|
||
"用例",
|
||
"指南",
|
||
"说明"
|
||
],
|
||
"module_code_note": "2026-10-20 批 2 模块码单词化后码长可达 9 位(ADCHEALTH/WATCHDOG),{0,4} 放宽到 {0,9};不放宽会让改名后的号整批从门禁眼里消失(实测漏 950 处)",
|
||
"subitem_ok": true
|
||
},
|
||
{
|
||
"name": "TC-UPPER",
|
||
"class": "TC",
|
||
"title": "测试用例(大写后缀形态,§7.1 待统一小写)",
|
||
"pattern": "\\bTC-[A-Z][A-Z0-9]{0,9}-[0-9]{2,4}[A-Z](?![A-Za-z])\\b",
|
||
"owner_docs_glob": [
|
||
"docs/测试说明/*.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"malformed": "大写后缀非法:§4.1 规定后缀只允许 -<小写字母>(§7.1 统一为小写)",
|
||
"module_code_note": "2026-10-20 批 2 模块码单词化后码长可达 9 位(ADCHEALTH/WATCHDOG),{0,4} 放宽到 {0,9};不放宽会让改名后的号整批从门禁眼里消失(实测漏 950 处)",
|
||
"subitem_ok": true
|
||
},
|
||
{
|
||
"name": "TC-NOMOD",
|
||
"class": "TC",
|
||
"title": "测试用例(无模块码形态,§7.2 孤儿:缺文档 = 追溯断链)",
|
||
"pattern": "\\bTC-[0-9]{2,4}[a-z]?\\b",
|
||
"owner_docs_glob": [
|
||
"docs/测试说明/*_Test_Guide.md",
|
||
"docs/测试说明/*单元测试说明.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"malformed": "缺模块码:须写 TC-<MOD>-<nnn>(§4.1 / §6 模块码表;§7.2 列为孤儿待补文档)",
|
||
"subitem_ok": true
|
||
},
|
||
{
|
||
"name": "TM",
|
||
"class": "TM",
|
||
"title": "测试阶段(§4.1 在册保留,模块码取 §6)",
|
||
"pattern": "\\bTM-[A-Z][A-Z0-9]{0,9}-[0-9]{2}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/测试说明/*.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"check_dangling": true,
|
||
"cursor_note": "TM-PHY-* 属 §6 废止模块码(PHY → NET,别名见 id_aliases.json),历史文档不回改",
|
||
"adjacent_cues": [
|
||
"测试"
|
||
]
|
||
},
|
||
{
|
||
"name": "DP",
|
||
"class": "DP",
|
||
"title": "测试设计原则(§4.1 目标形态带模块码)",
|
||
"pattern": "\\bDP-[A-Z][A-Z0-9]{0,9}-[0-9]{2}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/测试说明/*.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"check_dangling": true,
|
||
"adjacent_cues": [
|
||
"测试",
|
||
"原则"
|
||
]
|
||
},
|
||
{
|
||
"name": "DP-LEGACY",
|
||
"class": "DP",
|
||
"title": "测试设计原则(无模块码存量,§7.1 待加模块码)",
|
||
"pattern": "\\bDP-[0-9]{2}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/测试说明/*.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "DP-04",
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"check_dangling": false,
|
||
"cursor_note": "现存 DP-01~04(CH395F_Test_Guide.md);§7.1 迁 DP-NET-01~04,历史文档不回改",
|
||
"malformed": "缺模块码:§4.1 要求 DP-<MOD>-<nn>(现 DP-01 跨文档会撞)"
|
||
},
|
||
{
|
||
"name": "TRAP",
|
||
"class": "TRAP",
|
||
"title": "陷阱记录(§4.2 保留原号,历史证词高频锚点)",
|
||
"pattern": "\\bTRAP-[A-Z][A-Z0-9]{0,9}-[0-9]{2}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/问题记录/*_Trap_Records.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"check_dangling": true,
|
||
"cursor_note": "分模块各自递增:NET 01~21(属主 docs/问题记录/CH395F_Trap_Records.md)、GD5F 01~07(GD5F2GQ5UE_Trap_Records.md)、RTC 01(SD2506_Trap_Records.md)。批 4(2026-10-21)已把空格形 `Trap NN` 与中文形 `陷阱 N` 统一成 `TRAP-<MOD>-<nn>`,数字不变、只补模块码(§7.1)。**已知盲区(登记而非静默放过)**:docs/硬件平台/V0.0_网表详细分析报告.md(5 处)与 V0.1_网表详细分析报告.md(1 处)里的 `Trap05` 语义确指 `TRAP-NET-05`(CH395F 与 RTL8305 自动协商不兼容)已于批 7 统一为 TRAP-NET-05(6 处,改名工具已解除对本目录的排除);本目录**仍不在门禁扫描语料内**:粗测有约 4200 处 R/C/D/J/X/U/T 位号,位号类型识别做完前纳入会让 --strict 天天为位号拦提交,那等于把闸门变成噪音源。",
|
||
"adjacent_cues": [
|
||
"Trap",
|
||
"trap",
|
||
"陷阱",
|
||
"Trap_Records"
|
||
]
|
||
},
|
||
{
|
||
"name": "FEAT",
|
||
"class": "FEAT",
|
||
"title": "网络层功能/驱动改进项 F-<MOD>-<nn>(§4 总表缺这一族)",
|
||
"pattern": "\\bF-[A-Z][A-Z0-9]{0,9}-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/网络/网络自愈架构设计.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"cursor_note": "实测 F-NET-2~F-NET-17 / F-DRV-* 定义在 docs/网络/网络自愈架构设计.md 的功能对照表并被大量代码注释引用,但 §4.1/§4.2 总表里没有这一族 → 门禁先按实测收编,规范 §4 补行随本批同步提(§5.1 第 1 步:表里没有的类别先改规范)",
|
||
"adjacent_cues": [
|
||
"自愈",
|
||
"功能",
|
||
"改进"
|
||
]
|
||
},
|
||
{
|
||
"name": "PRINCIPLE",
|
||
"class": "PRINCIPLE",
|
||
"title": "编号设计原则 P-1~P-8(§2,定义就在 docs/编号规范.md)",
|
||
"pattern": "\\bP-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "P-8",
|
||
"check_dangling": true,
|
||
"cursor_note": "八条设计原则(§2,2026-10-15 加 P-8);⚠ 与档位词 P0~P3(§4.4)与审计条目 P0-x(P-AUDIT)不同形,靠连字符区分",
|
||
"adjacent_cues": [
|
||
"原则",
|
||
"§2"
|
||
]
|
||
},
|
||
{
|
||
"name": "PAT",
|
||
"class": "PAT",
|
||
"title": "缺陷模式九类(§4.2.1,定义就在 docs/编号规范.md)",
|
||
"pattern": "\\bPAT-[0-9]{2}\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "PAT-09",
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"check_dangling": true,
|
||
"cursor_note": "封闭九类(§4.2.1);新增类别先改规范"
|
||
},
|
||
{
|
||
"name": "RC",
|
||
"class": "RC",
|
||
"title": "net 周期对账类型(§4.2,唯一被代码逻辑引用的圈号链)",
|
||
"pattern": "\\bRC-[0-9]{2}\\b",
|
||
"owner_docs": [
|
||
"docs/网络/网络自愈架构设计.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "RC-05",
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"check_dangling": true,
|
||
"cursor_note": "RC-01~RC-05(§4.2)",
|
||
"adjacent_cues": [
|
||
"对账"
|
||
]
|
||
},
|
||
{
|
||
"name": "GEN",
|
||
"class": "GEN",
|
||
"title": "台架日志代次(§4.2 目标形态,数字不变仅改字面)",
|
||
"pattern": "\\bGEN-[0-9]{1,3}\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/串口助手设计说明.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_note": "代次是运行时计数、不落登记表 → 无定义行可查;小写 gen 形态由 malformed 拦(§4.4 划界:与 net_get_generation() 是两回事)"
|
||
},
|
||
{
|
||
"name": "RUN",
|
||
"class": "RUN",
|
||
"title": "台架轮次(§4.2 目标形态,日期制)",
|
||
"pattern": "\\bRUN-[0-9]{8}-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/实机测试实施指南.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": false
|
||
},
|
||
{
|
||
"name": "WAVE",
|
||
"class": "W",
|
||
"title": "波次(§4.1 **2026-10-25 废止**,改语义名;存量仅作历史指称)",
|
||
"pattern": "\\bW[0-9]+\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "W8",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"allow_missing_defs": [
|
||
"W8",
|
||
"W0"
|
||
],
|
||
"cursor_note": "2026-10-25 用户裁定废止:波次号看着像执行顺序,实际 W8 排在 W3/W4 之前,读者必须先查表 → 改语义名(采集保护收尾 / 数据可信 / 预算与内存 / 结构债 / 验证常态 / UI 扩展 / 仓库决策),执行序 = README §2.0 表序。属主文档已不再定义任何 W 号,故 check_dangling 关闭;游标冻结 W8,存量引用仅作历史指称",
|
||
"adjacent_cues": [
|
||
"波次",
|
||
"规划"
|
||
]
|
||
},
|
||
{
|
||
"name": "WAVE-TASK",
|
||
"class": "W",
|
||
"title": "波次子任务卡 W<n>-<m>(§4.1 已废止,并入 WI / 语义标识)",
|
||
"pattern": "\\bW[0-9]+-[0-9]+\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"malformed": "子任务卡 W<n>-<m> 形态已废止(§4.1「子任务卡不再用 W1-0 形态,并入 WI」)→ 改语义标识(§3.3)"
|
||
},
|
||
{
|
||
"name": "L-PROT",
|
||
"class": "L",
|
||
"title": "采集与保护分层条目(§4.1 在册保留,代码侧样板族)",
|
||
"pattern": "\\bL[0-9](?:\\.[0-9])?-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/算法/继电保护功能复现规划.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"cursor_note": "L 前缀专属本族 + 裸形 L<n>(§4.1);裸形 L0/L0.5/L1/L2/L3 同时被测试分层/UI 四层/CubeMX 三层使用(§1.2「L1 四义」)→ 裸形不入判定,见 unmanaged_bare",
|
||
"adjacent_cues": [
|
||
"规划",
|
||
"保护",
|
||
"分层"
|
||
]
|
||
},
|
||
{
|
||
"name": "B-WAVE",
|
||
"class": "B",
|
||
"title": "功能主线排期条目 B0~B10(§4.2 目标 → WI;存量冻结)",
|
||
"pattern": "\\bB[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md",
|
||
"docs/任务规划/登记簿.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "B10",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"allow_missing_defs": [
|
||
"B0"
|
||
],
|
||
"cursor_note": "§7.1 → WI-001…(阶段 1-② 未落地);与位号 B1/B7、审计快照 B1~B10 同形 → 文档外只告警",
|
||
"adjacent_cues": [
|
||
"主线",
|
||
"波次"
|
||
],
|
||
"dangling_note": "与元器件位号同形(§4.4),全库悬空判定误报面大 → 只在属主登记处文档内拦越游标(cursor_owner_only)"
|
||
},
|
||
{
|
||
"name": "C-WAVE",
|
||
"class": "C",
|
||
"title": "结构债排期条目 C1~C6(§4.1 **2026-10-25 废止**,改语义名;存量仅作历史指称)",
|
||
"pattern": "\\bC[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "C6",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"cursor_note": "2026-10-25 废止:与元器件位号 C1~Cn、UI 约束清单 C5~C9 同字母不同义(§4.4),属主文档已不再定义 C 号 → 条目改语义名",
|
||
"adjacent_cues": [
|
||
"结构债",
|
||
"波次"
|
||
],
|
||
"dangling_note": "与元器件位号同形(§4.4),全库悬空判定误报面大 → 只在属主登记处文档内拦越游标(cursor_owner_only)"
|
||
},
|
||
{
|
||
"name": "D-WAVE",
|
||
"class": "D",
|
||
"title": "验证窗口排期条目 D2~D7(§4.1 **2026-10-25 废止**,改语义名;存量仅作历史指称)",
|
||
"pattern": "\\bD[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "D7",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"cursor_note": "与位号 D7、设计决策 D1~D10、报告自有 D-x 四方同形(§1.2「D7=验证窗口、D-7=文档门禁、D1~D7=设计决策」)→ 只在属主登记处文档内判定",
|
||
"adjacent_cues": [
|
||
"验证",
|
||
"窗口"
|
||
],
|
||
"dangling_note": "与元器件位号同形(§4.4),全库悬空判定误报面大 → 只在属主登记处文档内拦越游标(cursor_owner_only)"
|
||
},
|
||
{
|
||
"name": "MS",
|
||
"class": "M",
|
||
"title": "里程碑 M1~M3(§4.2 目标 MS-<nn>;存量冻结)",
|
||
"pattern": "\\bM[1-3]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md",
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "M3",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"cursor_note": "M1~M3(§7.1 → MS-01~03);正则只收 M1~M3——M4 是 Cortex-M4 内核名,不是里程碑",
|
||
"dangling_note": "与元器件位号同形(§4.4),全库悬空判定误报面大 → 只在属主登记处文档内拦越游标(cursor_owner_only)"
|
||
},
|
||
{
|
||
"name": "DEF",
|
||
"class": "DEF",
|
||
"title": "缺陷 / 问题发现(§4.2 目标形态 DEF-<nnn>)",
|
||
"pattern": "\\bDEF-[0-9]{1,3}\\b",
|
||
"owner_docs": [],
|
||
"owner_note": "[计划] docs/问题记录/缺陷登记簿.md 尚未创建 → 属主登记处不存在 = 不可判定",
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_note": "属主登记处创建后启用(§9 阶段 1-③)"
|
||
},
|
||
{
|
||
"name": "GAP",
|
||
"class": "GAP",
|
||
"title": "模拟器差距(§4.2;§7.1 收编 H-x / L-x / 差距 N-x)",
|
||
"pattern": "\\bGAP-[0-9]{1,3}\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/模拟器差距清单.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": false,
|
||
"cursor": "GAP-17",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"cursor_note": "GAP-01~GAP-17(§7.1 按文档内出现顺序)",
|
||
"adjacent_cues": [
|
||
"差距"
|
||
]
|
||
},
|
||
{
|
||
"name": "SC",
|
||
"class": "SC",
|
||
"title": "实机验证场景(§4.2;§7.1 收编实机预检 A1~A8、看门狗 V2/V4/V5)",
|
||
"pattern": "\\bSC-[0-9]{1,3}\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/实机测试实施指南.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"实机",
|
||
"场景"
|
||
]
|
||
},
|
||
{
|
||
"name": "RSK",
|
||
"class": "RSK",
|
||
"title": "风险 RSK-<nn>(§4.2 文档内编号:各文档风险表自 RSK-01 起)",
|
||
"pattern": "\\bRSK-[0-9]{1,3}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/**/*.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_note": "文档内编号:属主 = 引用它的那篇文档自身,全库悬空校验无意义 → 只判紧邻文档名(§5.2)",
|
||
"adjacent_required": true
|
||
},
|
||
{
|
||
"name": "ST",
|
||
"class": "ST",
|
||
"title": "专项内部实施阶段 ST-<n>(§4.2 文档内编号;存量 P0~P5)",
|
||
"pattern": "\\bST-[0-9]{1,2}\\b",
|
||
"owner_docs_glob": [
|
||
"docs/**/*.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"adjacent_required": true
|
||
},
|
||
{
|
||
"name": "UL",
|
||
"class": "UL",
|
||
"title": "UI 标准化四层 UL-<n>(§4.2 文档内编号;存量报告 UI 四层 L0~L3)",
|
||
"pattern": "\\bUL-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/UI设计/UI_设计架构.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": false,
|
||
"cursor": "UL-3",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"UI",
|
||
"架构"
|
||
]
|
||
},
|
||
{
|
||
"name": "LAT",
|
||
"class": "LAT",
|
||
"title": "链路延迟分段 LAT-<nn>(§4.2 文档内编号;存量 L1~L11)",
|
||
"pattern": "\\bLAT-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/链路延迟测试说明.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": false,
|
||
"cursor": "LAT-11",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"延迟"
|
||
]
|
||
},
|
||
{
|
||
"name": "CS",
|
||
"class": "CS",
|
||
"title": "CubeMX 定制存活三层 CS-1~CS-3(§4.2;存量 AGENTS.md 的 L1/L2/L3)",
|
||
"pattern": "\\bCS-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/子系统设计/看门狗设计说明.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "CS-3",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"cursor_note": "CS-1~CS-3(§4.2)",
|
||
"adjacent_cues": [
|
||
"看门狗",
|
||
"存活"
|
||
]
|
||
},
|
||
{
|
||
"name": "N-RPT",
|
||
"class": "N-RPT",
|
||
"title": "《项目审查与优化建议报告》自有编号 N-xx(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||
"pattern": "\\bN-[0-9]{1,3}[a-z]?\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"collides_with": "N",
|
||
"cursor_note": "⚠ 与登记簿 N-x 同名不同义(§4.3 / AGENTS.md 模块约定)→ 引用必须紧邻「报告」或报告文档名",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走",
|
||
"owner_note": "属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除(用户裁定:内容大部分已闭环);登记职责与 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md §4.5,故 owner_docs 指向该节——它只用于**恢复可判定比例**(§4.5 是冻结存档登记处),定义集仍为空(snapshot_only 族剔除规范正文,见 check_ids.py 的 _def_owners),因此不参与悬空/撞号/裸形判定。未闭环项早已并轨到登记簿 N-19~N-29 + U 簇"
|
||
},
|
||
{
|
||
"name": "D-RPT",
|
||
"class": "D-RPT",
|
||
"title": "报告自有编号 D-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||
"pattern": "\\bD-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"collides_with": "D",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走",
|
||
"owner_note": "属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除(用户裁定:内容大部分已闭环);登记职责与 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md §4.5,故 owner_docs 指向该节——它只用于**恢复可判定比例**(§4.5 是冻结存档登记处),定义集仍为空(snapshot_only 族剔除规范正文,见 check_ids.py 的 _def_owners),因此不参与悬空/撞号/裸形判定。未闭环项早已并轨到登记簿 N-19~N-29 + U 簇"
|
||
},
|
||
{
|
||
"name": "S-RPT",
|
||
"class": "S-RPT",
|
||
"title": "报告自有编号 S-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||
"pattern": "\\bS-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"collides_with": "N",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走",
|
||
"owner_note": "属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除(用户裁定:内容大部分已闭环);登记职责与 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md §4.5,故 owner_docs 指向该节——它只用于**恢复可判定比例**(§4.5 是冻结存档登记处),定义集仍为空(snapshot_only 族剔除规范正文,见 check_ids.py 的 _def_owners),因此不参与悬空/撞号/裸形判定。未闭环项早已并轨到登记簿 N-19~N-29 + U 簇"
|
||
},
|
||
{
|
||
"name": "R-RPT",
|
||
"class": "R-RPT",
|
||
"title": "报告自有编号 R-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结;内存优化项)",
|
||
"pattern": "\\bR-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "R-9",
|
||
"check_dangling": false,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"cursor_note": "实测现存至 R-9(2026-10-15 落地);§1.2 记「R1=风险、R-2=内存优化项」同字母歧义",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走",
|
||
"owner_note": "属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除(用户裁定:内容大部分已闭环);登记职责与 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md §4.5,故 owner_docs 指向该节——它只用于**恢复可判定比例**(§4.5 是冻结存档登记处),定义集仍为空(snapshot_only 族剔除规范正文,见 check_ids.py 的 _def_owners),因此不参与悬空/撞号/裸形判定。未闭环项早已并轨到登记簿 N-19~N-29 + U 簇"
|
||
},
|
||
{
|
||
"name": "F-RPT",
|
||
"class": "F-RPT",
|
||
"title": "报告自有编号 F-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||
"pattern": "\\bF-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/编号规范.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走",
|
||
"owner_note": "属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除(用户裁定:内容大部分已闭环);登记职责与 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md §4.5,故 owner_docs 指向该节——它只用于**恢复可判定比例**(§4.5 是冻结存档登记处),定义集仍为空(snapshot_only 族剔除规范正文,见 check_ids.py 的 _def_owners),因此不参与悬空/撞号/裸形判定。未闭环项早已并轨到登记簿 N-19~N-29 + U 簇"
|
||
},
|
||
{
|
||
"name": "A-AUDIT",
|
||
"class": "A-AUDIT",
|
||
"title": "CH395F_Trap_Records 2026-10-11 审计快照 A1~A6(§4.3 冻结)",
|
||
"pattern": "\\bA[1-6]\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/CH395F_Trap_Records.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "A6",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "与实机预检 A1~A8(§4.2 → SC-nn)同形 → 只在本档内判存在,不做全库悬空",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"审计",
|
||
"Trap_Records"
|
||
],
|
||
"collides_with": "A-REVIEW",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||
},
|
||
{
|
||
"name": "B-AUDIT",
|
||
"class": "B-AUDIT",
|
||
"title": "CH395F_Trap_Records 2026-10-11 审计快照 B1~B10(§4.3 冻结)",
|
||
"pattern": "\\bB10\\b|\\bB[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/CH395F_Trap_Records.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "B10",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "与主线 B0~B10、位号 B1 三方同形(§1.2「B10 在规划是送检窗口、在陷阱审计是孤儿监听」)→ 只在本档内判",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"审计",
|
||
"Trap_Records"
|
||
],
|
||
"collides_with": "B",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||
},
|
||
{
|
||
"name": "S-REVIEW",
|
||
"class": "S-REVIEW",
|
||
"title": "2026-10-02 复审条目 S1~S14(§7.1 → WI;编号不回收)",
|
||
"pattern": "\\bS1[0-4]\\b|\\bS[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/测试与架构专项.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "S14",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"dangling_outside_owner": "warn",
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"adjacent_cues": [
|
||
"复审",
|
||
"专项"
|
||
],
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "A-REVIEW",
|
||
"class": "A-REVIEW",
|
||
"title": "2026-10-02 复审条目 A-1~A-7(§7.1 → WI)",
|
||
"pattern": "\\bA-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/测试与架构专项.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "A-7",
|
||
"check_dangling": true,
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"adjacent_cues": [
|
||
"复审",
|
||
"专项"
|
||
],
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "T-REVIEW",
|
||
"class": "T-REVIEW",
|
||
"title": "2026-10-02 复审条目 T-1~T-5(专项文档卷首,编号不回收)",
|
||
"pattern": "\\bT-[1-5]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/测试与架构专项.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "T-5",
|
||
"check_dangling": true,
|
||
"adjacent_cues": [
|
||
"复审",
|
||
"专项"
|
||
],
|
||
"collides_with": "N",
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "P-AUDIT",
|
||
"class": "P",
|
||
"title": "2026-09 代码审计缺陷条目 P0-x~P3-x(§4.3 冻结;在册项 §7.1 → DEF)",
|
||
"pattern": "\\bP[0-3]-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md",
|
||
"docs/任务规划/测试与架构专项.md",
|
||
"docs/任务规划/登记簿.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"dangling_outside_owner": "warn",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"审计",
|
||
"报告",
|
||
"P1 收尾",
|
||
"严重度"
|
||
],
|
||
"cursor_note": "⚠ 档位词 P0~P3 不带 -<数字> 后缀(§4.4);本族是历史审计条目,形态按 §4.3 冻结沿用,新发现改语义标识(§3.3);报告侧 P-x 属历史基线(§4.3),文档外按告警处理",
|
||
"snapshot_only": true,
|
||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||
},
|
||
{
|
||
"name": "O-DOC",
|
||
"class": "O",
|
||
"title": "各设计文档「本期不做 / 遗留可选项」O1~O4(§3.2 默认不造编号)",
|
||
"pattern": "\\bO[1-9]\\b",
|
||
"owner_docs_glob": [
|
||
"docs/**/*.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_note": "§3.2:这类清单默认改 § 小节引用;确需逐条引用才用文档内编号 OOS-<nn>。登记为族只为防校验 1 误报",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"遗留",
|
||
"不做",
|
||
"可选"
|
||
]
|
||
},
|
||
{
|
||
"name": "H-GAP",
|
||
"class": "H-GAP",
|
||
"title": "模拟器差距清单 H-1~H-7(§7.1 → GAP-01~07)",
|
||
"pattern": "\\bH-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/模拟器差距清单.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "H-7",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"差距"
|
||
]
|
||
},
|
||
{
|
||
"name": "L-GAP",
|
||
"class": "L-GAP",
|
||
"title": "模拟器差距清单 L-1~L-4(§7.1 → GAP-08~11)",
|
||
"pattern": "\\bL-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/模拟器差距清单.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "L-4",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"差距"
|
||
]
|
||
},
|
||
{
|
||
"name": "N-GAP",
|
||
"class": "N-GAP",
|
||
"title": "模拟器差距清单 N-1~N-6(§7.1 → GAP-12~17;与登记簿 N-x 同名不同义)",
|
||
"pattern": "\\bN-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/模拟器差距清单.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "N-6",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "1 位数 N-x 与登记簿同号(§1.2 病根)→ 本族不判悬空,只在属主文档内拦越游标;迁移属 §9 阶段 1-①",
|
||
"collides_with": "N"
|
||
},
|
||
{
|
||
"name": "U-RPT",
|
||
"class": "U",
|
||
"title": "报告 UI 标准化簇 U1~U5(原属主文档 2026-10-25 已删;排期见 README §2.0 / 登记簿 U 簇,§4.3 冻结历史快照)",
|
||
"pattern": "\\bU[1-5]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md",
|
||
"docs/任务规划/登记簿.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "U5",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "与 UI 状态机 U1~U15、位号 U17 三方同形(§4.4 位号目录已排除)→ 只拦越游标",
|
||
"cursor_note": "2026-10-26 方案 B 停发:存量号已全部转语义短语(docs/编号规范.md §4.1.1),游标冻结不前进,旧号在 id_aliases.json 标 retired-to-phrase;本族登记只为冻结历史行不报未登记前缀",
|
||
"owner_note": "属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除(用户裁定:内容大部分已闭环);登记职责与 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md §4.5,故 owner_docs 指向该节——它只用于**恢复可判定比例**(§4.5 是冻结存档登记处),定义集仍为空(snapshot_only 族剔除规范正文,见 check_ids.py 的 _def_owners),因此不参与悬空/撞号/裸形判定。未闭环项早已并轨到登记簿 N-19~N-29 + U 簇",
|
||
"retired": "2026-10-26 方案 B 转语义短语"
|
||
},
|
||
{
|
||
"name": "U-STATE",
|
||
"class": "U-STATE",
|
||
"title": "Socket 状态机组合 U1~U15(§1.1 各模块设计文档自造;文档内编号)",
|
||
"pattern": "\\bU1[0-5]\\b|\\bU[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/网络/网络自愈架构设计.md",
|
||
"docs/网络/Net层阻塞模型架构设计.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "U15",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "裸形与报告 U1~U5、位号 U17 同形(§1.2「U1 四义」)→ 只在属主文档内拦越游标",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"状态机",
|
||
"组合",
|
||
"自愈"
|
||
],
|
||
"collides_with": "U"
|
||
},
|
||
{
|
||
"name": "D-DOC",
|
||
"class": "D-DOC",
|
||
"title": "网络自愈设计决策 D1~D10(§4.2 目标 DR-<nnn>;§7.1 D1~D7 → DR-001~007)",
|
||
"pattern": "\\bD10\\b|\\bD[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/网络/网络自愈架构设计.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "D10",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "与验证窗口 D2~D7、位号 D7、报告 D-x 四方同形(§1.2)→ 只在属主文档内拦越游标",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"决策",
|
||
"自愈"
|
||
],
|
||
"collides_with": "D"
|
||
},
|
||
{
|
||
"name": "V-WD",
|
||
"class": "V",
|
||
"title": "看门狗验证用例 V2/V4/V5(§7.1 → SC-<nn>)",
|
||
"pattern": "\\bV[2-9]\\b",
|
||
"owner_docs": [
|
||
"docs/子系统设计/看门狗设计说明.md",
|
||
"docs/测试说明/实机测试实施指南.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "与固件版本号 V0.1/V1.0、实机预检项同形 → 只在属主文档内判",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"看门狗",
|
||
"验证",
|
||
"实机"
|
||
]
|
||
},
|
||
{
|
||
"name": "RISK",
|
||
"class": "RISK",
|
||
"title": "专项风险裸形 R1~R8(§4.2 目标 RSK-<nn>;文档内编号)",
|
||
"pattern": "\\bR[1-8]\\b",
|
||
"owner_docs": [
|
||
"docs/算法/继电保护功能复现规划.md",
|
||
"docs/子系统设计/看门狗设计说明.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": "R8",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "与报告 R-x(内存优化项,连字符形)同字母不同形(§1.2)→ 只在属主文档内拦越游标",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"风险",
|
||
"规划",
|
||
"看门狗"
|
||
]
|
||
},
|
||
{
|
||
"name": "T-TEST",
|
||
"class": "T-TEST",
|
||
"title": "测试分层五档 T0/T0.5/T1/T2/T3(§4.2 目标形态;现存写 L0~L3)",
|
||
"pattern": "\\bT[0-3](?:\\.5)?\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/测试开发标准流程.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": null,
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_note": "§7.1 迁移批未落地(现存字面是 L0~L3)→ 本族是迁入目标,登记只为让新写法可判定;裸形 T1~T3 与 UART 引脚功能名同形,不做全库判定"
|
||
},
|
||
{
|
||
"name": "G-GATE",
|
||
"class": "G",
|
||
"title": "门禁档位 G0~G3(§4.2,与测试分层两套不合并)",
|
||
"pattern": "\\bG[0-3](?:\\.5)?\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/测试开发标准流程.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false
|
||
},
|
||
{
|
||
"name": "L-LAYER",
|
||
"class": "L-LAYER",
|
||
"title": "测试分层 / 算法层现存裸形 L0~L3(§4.2 目标 → T0~T3;§1.2 记四义)",
|
||
"pattern": "\\bL[0-3](?:\\.5)?\\b",
|
||
"owner_docs": [
|
||
"docs/测试说明/测试开发标准流程.md",
|
||
"App/algo/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": false,
|
||
"dangling_note": "阶段 1-②(L0~L3 → T0~T3,全库最大机械批次)未落地 → 本族只登记不判定(§9)"
|
||
},
|
||
{
|
||
"name": "CODE-RULE",
|
||
"class": "CODE-RULE",
|
||
"title": "嵌入式 C 代码规范条款号(V1.0;配原文章节号,如 CODE-RULE-03 (3.4.1))",
|
||
"pattern": "\\bCODE-RULE-[0-9]{2}\\b",
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"owner_docs": [
|
||
"scripts/check_coding_standard.py"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "CODE-RULE-19",
|
||
"cursor_owner_only": true,
|
||
"owner_note": "属主登记处 = 门禁脚本的规则表本身(单一事实源);docs/代码规范/pre-commit使用说明.md 与规范原文是引用方",
|
||
"cursor_note": "2026-10-20 批 1 由 scripts/rename_ids.py 从裸形 S1~S19 单词化(旧号见 id_aliases.json 的 scoped 条目)。S14 历史上不存在(脚本无该条),空洞不复用 → 游标 19"
|
||
},
|
||
{
|
||
"name": "MENU-STATE",
|
||
"class": "MENU-STATE",
|
||
"title": "UI 菜单像素回归状态号(按键序列状态,共 8 态)",
|
||
"pattern": "\\bMENU-STATE-[0-9]{2}\\b",
|
||
"digit_width": [
|
||
2,
|
||
2
|
||
],
|
||
"owner_docs": [
|
||
"simulator/tests/check_menu_rows.py"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "MENU-STATE-07",
|
||
"cursor_owner_only": true,
|
||
"owner_note": "属主登记处 = check_menu_rows.py 的 STATES 表(键序 → 状态);UI_自动化测试流程.md 与 simulator/README.md 是引用方",
|
||
"cursor_note": "2026-10-20 批 1 从裸形 S0~S7 单词化(原名与登记簿 S-x、代码规范条款、2026-10-02 复审专项条目四义撞形,见 §1.2)。8 态封顶:加状态先改游标"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NANDPORT",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:dhara NAND 移植层(N-21)(test/host/nand_port)",
|
||
"pattern": "\\bTC-NANDPORT-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/nand_port/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NANDPORT-700",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-PROTSET",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:保护定值模型 L3(test/host/prot_set)",
|
||
"pattern": "\\bTC-PROTSET-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/prot_set/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-PROTSET-011",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-PROTELEM",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:保护元件/判据框架 L3(test/host/prot_elm)",
|
||
"pattern": "\\bTC-PROTELEM-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/prot_elm/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-PROTELEM-013",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-FREQ",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:L2.5 测频(自适应窗)(test/host/freq)",
|
||
"pattern": "\\bTC-FREQ-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/freq/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-FREQ-011",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-FTPAUTH",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:FTP 鉴权与锁定策略(test/host/ftp_auth)",
|
||
"pattern": "\\bTC-FTPAUTH-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/ftp_auth/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-FTPAUTH-010",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-SHA256",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:SHA-256 摘要(口令哈希底座)(test/host/sha256)",
|
||
"pattern": "\\bTC-SHA256-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/sha256/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-SHA256-008",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-SOE",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:SOE 事件顺序记录编解码(test/host/soe)",
|
||
"pattern": "\\bTC-SOE-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/soe/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-SOE-007",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NETSOCK",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:CH395F socket 栈核心(fd 表分配/跨上下文消息/错误码经通知值回传/监听门控)(net_socket)",
|
||
"pattern": "\\bTC-NETSOCK-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/net_socket/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NETSOCK-560",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-SYSLOG",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:运行与自检日志存储(定长记录 + 批量写 + 读窗口)(sys_log_mcu)",
|
||
"pattern": "\\bTC-SYSLOG-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/sys_log_mcu/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-SYSLOG-108",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-CFGFST",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:配置文件存储引擎(落盘与回读校验)(cfg_file_store_mcu)",
|
||
"pattern": "\\bTC-CFGFST-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/cfg_file_store_mcu/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-CFGFST-053",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-SOESTORE",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:SOE 事件顺序记录持久化(soe_store)",
|
||
"pattern": "\\bTC-SOESTORE-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/soe_store/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-SOESTORE-024",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-CONLOG",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:控制台单写者日志(环形缓冲 + TX 软复位自愈)(console_log)",
|
||
"pattern": "\\bTC-CONLOG-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/console_log/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-CONLOG-179",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-ADCHEALTH",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:L1 采集有效性校验(test/host/adc_health)",
|
||
"pattern": "\\bTC-ADCHEALTH-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/adc_health/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-ADCHEALTH-011",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21):这些号实测在代码目录外零消费者(唯一外部引用是 id_aliases.json 自己),故属主登记处 = 单测代码本身,不逐号补文档;class 仍为 TC → 跨模块同号由校验 4 抓",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-ADCCAL",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:L1.5 通道标定折算(test/host/adc_cal,道A 卡2/4)",
|
||
"pattern": "\\bTC-ADCCAL-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/adc_cal/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-ADCCAL-017",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21,同 TC-HOST-ADCHEALTH 先例;2026-10-25 道A 卡2 建族):属主登记处 = 单测代码目录,不逐号补文档",
|
||
"cursor_note": "游标按建族时实测最大号收录(2026-10-25):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-UIDATA",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:UI 数据快照层与跨层契约一致性(test/host/ui_data,道E task-14)",
|
||
"pattern": "\\bTC-UIDATA-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/ui_data/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-UIDATA-026",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21,同 TC-HOST-ADCCAL 先例;2026-10-25 道E task-14 建族):属主登记处 = 单测代码目录,不逐号补文档;本族号同时是 UI 不透明编号与 App 枚举的现场核对锚(SOE 类型/元件号)",
|
||
"cursor_note": "游标按建族时实测最大母号收录(2026-10-25):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-PROTDIM",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:量纲回归(test/host/prot_dim,道A 卡7)",
|
||
"pattern": "\\bTC-PROTDIM-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/prot_dim/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-PROTDIM-010",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21,同 TC-HOST-ADCHEALTH/TC-HOST-ADCCAL 先例;2026-10-25 道A 卡7 建族):属主登记处 = 单测代码目录,不逐号补文档",
|
||
"cursor_note": "游标按建族时实测最大号收录(2026-10-25):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-VOLSYNC",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:写回缓存空闲 flush(test/host/vol_idle_sync,道F 批 2)",
|
||
"pattern": "\\bTC-VOLSYNC-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/vol_idle_sync/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-VOLSYNC-012",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21,同 TC-HOST-ADCHEALTH/TC-HOST-ADCCAL 先例;2026-10-25 道F 批 2 建族):属主登记处 = 单测代码目录,不逐号补文档",
|
||
"cursor_note": "游标按建族时实测最大号收录(2026-10-25):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-MEAS",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:遥测快照层(test/host/meas,道D 卡8)",
|
||
"pattern": "\\bTC-MEAS-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/meas/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-MEAS-011",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21,同 TC-HOST-ADCHEALTH/TC-HOST-ADCCAL 先例;2026-10-25 道D 卡8 建族):属主登记处 = 单测代码目录,不逐号补文档",
|
||
"cursor_note": "游标按建族时实测最大号收录(2026-10-25):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-RUNPAR",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:运行参数段(test/host/run_par,道D 卡10)",
|
||
"pattern": "\\bTC-RUNPAR-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/run_par/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-RUNPAR-008",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(用户裁定 2026-10-21,同 TC-HOST-MEAS/TC-HOST-ADCCAL 先例;2026-10-25 道D 卡 10 建族):属主登记处 = 单测代码目录,不逐号补文档;路由顺序证据链在 TC-IEC104-029(test/host/iec104)",
|
||
"cursor_note": "游标按建族时实测最大号收录(2026-10-25):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-IEC104",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:IEC 60870-5-104 协议栈(test/host/iec104)",
|
||
"pattern": "\\bTC-IEC104-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/iec104/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-IEC104-033",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径同其余 TC-HOST 族;本族是 2026-10-21 补漏——上批模块码改名前它是纯数字 `TC-104-*`,未进当时的悬空普查,故漏建族",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-21)"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NETCFG",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:网络配置编排与跨任务保存交接(test/host/net_cfg)",
|
||
"pattern": "\\bTC-NETCFG-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/net_cfg/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NETCFG-056",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);本族 2026-10-23 随覆盖率口径 §9 P1 第①批新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-FTPCFG",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:FTP 鉴权配置 [ftp] 段(test/host/ftp_cfg)",
|
||
"pattern": "\\bTC-FTPCFG-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/ftp_cfg/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-FTPCFG-014",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);本族 2026-10-23 随覆盖率口径 §9 P1 第①批新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-PROTSTOR",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:保护定值持久化胶水层(test/host/prot_set_store)",
|
||
"pattern": "\\bTC-PROTSTOR-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/prot_set_store/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-PROTSTOR-016",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);本族 2026-10-23 随覆盖率口径 §9 P1 第①批新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-TASKPROF",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:任务耗时探针与上报节流(test/host/task_prof)",
|
||
"pattern": "\\bTC-TASKPROF-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/task_prof/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-TASKPROF-020",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);本族 2026-10-23 随覆盖率口径 §9 P1 第①批新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-LFTPIO",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:FTP 文件 IO 层与路径规范化(test/host/lftpd_io)",
|
||
"pattern": "\\bTC-LFTPIO-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/lftpd_io/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-LFTPIO-037",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 P1 新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-LFTSTR",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:FTP 命令行字符串工具(同模块内)(test/host/lftpd_io)",
|
||
"pattern": "\\bTC-LFTSTR-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/lftpd_io/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-LFTSTR-005",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 P1 新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NETSEL",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:NET 层 select/poll 事件观测(test/host/net_select)",
|
||
"pattern": "\\bTC-NETSEL-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/net_select/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NETSEL-019",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 P1 新建模块补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NETLIS",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:NET 层监听自动重建(test/host/net_listener)",
|
||
"pattern": "\\bTC-NETLIS-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/net_listener/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NETLIS-026",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 假 CH395F 立项第一批补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NETPEND",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:NET 层挂起 recv 与挂起 send(test/host/net_pending)",
|
||
"pattern": "\\bTC-NETPEND-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/net_pending/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NETPEND-040",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 假 CH395F 第二批补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-NETEV",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:NET 层事件分发与周期对账(test/host/net_events)",
|
||
"pattern": "\\bTC-NETEV-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/net_events/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-NETEV-058",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 假 CH395F 第三批补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-LFTINET",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:FTP 的 socket 适配层(test/host/lftpd_inet)",
|
||
"pattern": "\\bTC-LFTINET-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/lftpd_inet/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-LFTINET-070",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 P1 FTP 批次补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-LFTPD",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:FTP 控制通道协议层(test/host/lftpd)",
|
||
"pattern": "\\bTC-LFTPD-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/lftpd/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-LFTPD-034",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 P1 FTP 批次补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
},
|
||
{
|
||
"name": "TC-HOST-I104SRV",
|
||
"class": "TC",
|
||
"title": "主机侧单测用例号:IEC 104 上行服务生命周期(test/host/iec104_serv)",
|
||
"pattern": "\\bTC-I104SRV-[0-9]{1,4}[a-z]?\\b",
|
||
"digit_width": [
|
||
2,
|
||
4
|
||
],
|
||
"owner_docs_glob": [
|
||
"test/host/iec104_serv/*"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "TC-I104SRV-041",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"allow_orphans": true,
|
||
"subitem_ok": true,
|
||
"owner_note": "B 层口径(2026-10-21 批 3 定:这些号在代码目录外零消费者,属主登记处 = 单测代码本身,不逐号补文档);2026-10-23 随覆盖率口径 §9 P1 收官批次补登记",
|
||
"cursor_note": "游标按实测最大号收录(2026-10-23):越界即视为未登记的冒号牌"
|
||
}
|
||
],
|
||
"unmanaged_bare": {
|
||
"note": "以下裸形族在 §9 阶段 1-② 迁移落地前**不做全库判定**——它们彼此、与元器件位号(§4.4)、与档位词大面积同形(§1.2 的五义/四义清单)。这些族的判定范围已收窄到「属主登记处文档内」(cursor_owner_only),文档外降为告警;显式登记 = 记录盲区,不是「检查通过」。",
|
||
"patterns": [
|
||
"\\bL[0-9](?:\\.[0-9])?\\b",
|
||
"\\bP[0-3]\\b",
|
||
"\\bU[0-9]{1,2}\\b",
|
||
"\\bH[0-9]\\b",
|
||
"\\bI[0-9]\\b",
|
||
"\\bJ[0-9]\\b",
|
||
"\\bQ[0-9]{1,2}\\b",
|
||
"\\bF[0-9]{1,2}\\b",
|
||
"\\bR[0-9]\\b",
|
||
"\\bV[0-9]\\b"
|
||
]
|
||
},
|
||
"owner_docs_exclude": [
|
||
"docs/测试说明/测试文档模板规范.md"
|
||
],
|
||
"designator_rule": "硬件语料位号识别:docs/硬件平台/ 与 docs/芯片手册/ 里匹配 ^[RCDJXUT][0-9]{1,3}$(无连字符)的字面量判为**位号**,不产生任何编号结论;不含 B(V0.0 网表报告的 B1 是真专项条目),带连字符的 D-7/N-18/TC-206 不受影响。机制在 check_ids.py 的 add() 里落地(统计键 designator_skipped)。**本目录仍未纳入扫描语料**:纳入前必须先把位号从可判定比例的 refs_total 里减掉,否则约 4200 处位号会把比例分母灌水、掩盖真实变化。 【批 9 扩展】同一规则再覆盖**引脚名/总线名/网名/区间**:^[A-Z]{2,3}[0-9]{1,2}(-[0-9]{1,2})?(如 PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3、AIN1),同样不进 refs_total。带连字符的一字母形态(C-10 / A-9 / N-18 / D-7)与 TC-206 / TC1003 一律不受影响,仍照旧判。器件料号(FOC-817SC-F 被切成 FOC-817)**不做形状规则**:[A-Z]{3}-\\d{3} 与真家族 DEF-* 撞形,代价远大于收益,故留在台账 reason 里记账。",
|
||
"excluded_paths_note": [
|
||
"docs/硬件平台/ :2026-10-26 补齐——规范 §8 一直写着排除,registry 却没写进去,导致位号与网表复核条目被扫成编号(实测报 28 处错误,其中校验 1 把器件型号 FOC-817、网表复核条目 C-1~C-10/A-10/A-11 全部当自造号)。位号识别仍保留作为第二道保险"
|
||
],
|
||
"cleared_2026_10_26": {
|
||
"note": "2026-10-26 清号批次:这些族的字面量已从活文档与代码注释中删除(属主登记处已删除或从未启用)。族定义保留在本文件里只有一个目的:让历史行、[示例]/[计划] 行与别名表不触发校验 1。不得新增引用;新增会被校验 3/5 拦下。可清单位:全仓零引用后可连族带别名一起删除。",
|
||
"families": [
|
||
"E-AUD",
|
||
"P-AUDIT",
|
||
"N-RPT",
|
||
"D-RPT",
|
||
"S-RPT",
|
||
"R-RPT",
|
||
"F-RPT",
|
||
"U-RPT",
|
||
"S-REVIEW",
|
||
"A-REVIEW",
|
||
"B-AUDIT",
|
||
"T-LDG",
|
||
"S-LDG",
|
||
"I-ORPHAN",
|
||
"WAVE-TASK",
|
||
"TM",
|
||
"DP-LEGACY",
|
||
"DP",
|
||
"H-GAP",
|
||
"L-GAP",
|
||
"GAP",
|
||
"DR",
|
||
"RC",
|
||
"MS-TGT",
|
||
"GEN",
|
||
"WI",
|
||
"OQ",
|
||
"RSK",
|
||
"SC",
|
||
"ST",
|
||
"CS",
|
||
"UL",
|
||
"LAT",
|
||
"DEF",
|
||
"PAT",
|
||
"TRAP-NOMOD",
|
||
"TC-NOMOD",
|
||
"TC-UPPER"
|
||
]
|
||
},
|
||
"retired_to_phrase_2026_10_26": {
|
||
"note": "用户裁定方案 B:规划/待办类编号(登记簿 N-x/S-x/T-x、专项 A-x、已删报告 UI 簇 U1~U5)一律转语义短语。族保留登记、游标冻结;引用侧同批改写约 418 处、字面量净减 443(8,946 → 8,503):活号 237 + 已销项死引用 196 + U 簇非位号约 45。短语表见 docs/编号规范.md §4.1.1。",
|
||
"families": [
|
||
"N",
|
||
"S-LDG",
|
||
"T-LDG",
|
||
"A-REVIEW",
|
||
"S-REVIEW",
|
||
"T-REVIEW",
|
||
"U-RPT"
|
||
]
|
||
},
|
||
"baseline_note": "2026-10-26 方案 B 曾把比例基线由 86.6% 下调到 85.9%(转短语消掉的全是「本可判定」引用,比值被稀释而不可判定绝对数未增;理由见 docs/门禁说明/id-check.md §7.6 与 docs/编号规范.md §8.1);同批新增第二根护栏 undecidable_total_ceiling 后,本文档又瘦身了一半,删掉的多是不可判定的历史号引用,两根护栏已按 --update-baseline 重打为比例 86.0% / 绝对数 1166(都只朝好的方向动)。",
|
||
"undecidable_total_ceiling": 1166,
|
||
"undecidable_ceiling_note": "不可判定引用绝对数上限(refs_total - decidable),只许减不许增;--update-baseline 同步下调且拒绝上调。加它的原因:比值会被清号动作稀释,绝对数不会。"
|
||
}
|