301c3e5183
新增门禁本体 - scripts/check_ids.py:实现 docs/编号规范.md §8 八项校验;默认 warn-only, 唯一硬拦项是「可判定比例跌破基线」(防回退的本体) - scripts/id_registry.json:66 个前缀族,逐项来自 §4 总表 + 全库实测游标, 偏差一律写进 cursor_note,不凭记忆编造 - scripts/id_aliases.json:旧号 → 新号 / 作废标记(照搬 section_aliases.json 范式) - 顺带收编 check_test_traceability.py:正则补齐大写后缀与无模块码形态, 比对范围扩到 test/host 与 7 篇「单元测试说明.md」,另加 --board-only 回退旧口径 批 1 改名(用户授权解禁「不改写存量号」) - 代码规范条款 S1~S19 → CODE-RULE-nn:78 处 / 2 文件 - UI 像素回归状态 S0~S7 → MENU-STATE-nn:61 处 / 3 文件(冻结在 07) - 两族属主登记处 = 脚本自身的规则表 / STATES 表,文档只作引用方 - 新增 scripts/rename_ids.py(§7.3 规划脚本):映射表驱动、显式 scope、默认干跑、 自动写 scoped 别名,跳过 [示例]/[计划] 行与变更记录表,按原字节读写保 BOM 行尾 - 已应用映射表存档 scripts/rename_maps/batch1.json 作审计轨迹 有牙实测(证明门禁不是空转) - 注入 Z-99 / 裸形 / 悬空 / 越游标 / 未紧邻 / 跨文档重复定义 六例, 分别被校验 1/2/3/5/6/4 点名,--strict 退出码 1;临时档删除后工作树干净 验证与同步 - 可判定比例基线 82.3% → 82.7%(已 --update-baseline 入档);错误级 1312 → 1291 - ci_local.py 全绿(L0 + L0.5 共 1104 断言);ui-golden Passed; check_doc_links.py --all 无法判定 0 - 未改任何 C/H 源文件,故本次不需 @build - 文档:AGENTS.md 与 pre-commit使用说明.md 计数 36→37 并新增 §2.25 详解; 编号规范 §4.1 补两行、§8.1 落地记录、§8.2 规范与仓库偏差、§8.3 迁移批次记录
1393 lines
45 KiB
JSON
1393 lines
45 KiB
JSON
{
|
||
"schema": 1,
|
||
"generated_from": "docs/编号规范.md §4 编号空间总表(§4.1 在册 / §4.2 目标 / §4.3 冻结 / §4.4 划界)+ §6 模块码表 + §7 迁移映射。游标取「规范记载值」与「全库实测最大号」的较大者,实测偏差一律写进 cursor_note,不凭印象编。",
|
||
"decidable_ratio_baseline": 82.6,
|
||
"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/硬件平台/",
|
||
"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"
|
||
],
|
||
"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"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "N-34",
|
||
"check_dangling": true,
|
||
"cursor_note": "规范 §4.1 记游标 N-34;实测登记簿现存至 N-30(N-31 曾于 2026-10-14 被复用撞号,见 docs/任务规划/README.md §0)→ 新条目一律改语义标识(P-8),实需编号才取 N-34",
|
||
"adjacent_cues": [
|
||
"登记簿"
|
||
]
|
||
},
|
||
{
|
||
"name": "S-LDG",
|
||
"class": "N",
|
||
"title": "登记簿 存储/日志管线 条目(§7.1 续号并入 N,存量冻结)",
|
||
"pattern": "\\bS-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "S-5",
|
||
"check_dangling": true,
|
||
"cursor_note": "现存 S-3/S-4/S-5;§7.1 之后不再新增 S 号",
|
||
"adjacent_cues": [
|
||
"登记簿"
|
||
]
|
||
},
|
||
{
|
||
"name": "T-LDG",
|
||
"class": "N",
|
||
"title": "登记簿 测试与工具链 条目(§7.1 续号并入 N,存量冻结)",
|
||
"pattern": "\\bT-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/登记簿.md",
|
||
"docs/任务规划/测试与架构专项.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "T-7",
|
||
"check_dangling": true,
|
||
"cursor_note": "现存 T-7(复审 T-1~T-5 见 docs/任务规划/测试与架构专项.md 卷首)",
|
||
"adjacent_cues": [
|
||
"登记簿",
|
||
"专项"
|
||
]
|
||
},
|
||
{
|
||
"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/任务规划/W1-采集保护收尾.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,4}-[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": [
|
||
"测试",
|
||
"用例",
|
||
"指南",
|
||
"说明"
|
||
]
|
||
},
|
||
{
|
||
"name": "TC-UPPER",
|
||
"class": "TC",
|
||
"title": "测试用例(大写后缀形态,§7.1 待统一小写)",
|
||
"pattern": "\\bTC-[A-Z][A-Z0-9]{0,4}-[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 统一为小写)"
|
||
},
|
||
{
|
||
"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 列为孤儿待补文档)"
|
||
},
|
||
{
|
||
"name": "TM",
|
||
"class": "TM",
|
||
"title": "测试阶段(§4.1 在册保留,模块码取 §6)",
|
||
"pattern": "\\bTM-[A-Z][A-Z0-9]{0,4}-[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,4}-[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,4}-[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、GD5F 01~06、RTC 01~(§4.2);NET 域 2026-10-13 已全库重排连续",
|
||
"adjacent_cues": [
|
||
"Trap",
|
||
"trap",
|
||
"陷阱",
|
||
"Trap_Records"
|
||
]
|
||
},
|
||
{
|
||
"name": "FEAT",
|
||
"class": "FEAT",
|
||
"title": "网络层功能/驱动改进项 F-<MOD>-<nn>(§4 总表缺这一族)",
|
||
"pattern": "\\bF-[A-Z][A-Z0-9]{0,3}-[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 在册保留;裸形 W<n> 合法)",
|
||
"pattern": "\\bW[0-9]+\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": false,
|
||
"cursor": "W8",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": true,
|
||
"dangling_outside_owner": "warn",
|
||
"allow_missing_defs": [
|
||
"W8",
|
||
"W0"
|
||
],
|
||
"cursor_note": "游标 W8(§4.1);W2 已清空销项但槽位保留不复用(README §2.0 注)",
|
||
"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/任务规划/W1-采集保护收尾.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.2 目标 → WI;存量冻结)",
|
||
"pattern": "\\bC[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md",
|
||
"docs/任务规划/排期详述.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "C6",
|
||
"cursor_owner_only": true,
|
||
"check_dangling": false,
|
||
"dangling_outside_owner": "warn",
|
||
"cursor_note": "与元器件位号 C1~Cn、UI 约束清单 C5~C9 同形(§4.4)→ 只在属主登记处文档内判定",
|
||
"adjacent_cues": [
|
||
"结构债",
|
||
"波次"
|
||
],
|
||
"dangling_note": "与元器件位号同形(§4.4),全库悬空判定误报面大 → 只在属主登记处文档内拦越游标(cursor_owner_only)"
|
||
},
|
||
{
|
||
"name": "D-WAVE",
|
||
"class": "D",
|
||
"title": "验证窗口排期条目 D2~D7(§4.2 目标 → WI;存量冻结)",
|
||
"pattern": "\\bD[1-9]\\b",
|
||
"owner_docs": [
|
||
"docs/任务规划/README.md",
|
||
"docs/任务规划/排期详述.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/任务规划/W1-采集保护收尾.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(§4.3 冻结历史快照)",
|
||
"pattern": "\\bN-[0-9]{1,3}[a-z]?\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/项目审查与优化建议报告.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"dangling_outside_owner": "warn",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"collides_with": "N",
|
||
"cursor_note": "⚠ 与登记簿 N-x 同名不同义(§4.3 / AGENTS.md 模块约定)→ 引用必须紧邻「报告」或报告文档名"
|
||
},
|
||
{
|
||
"name": "D-RPT",
|
||
"class": "D-RPT",
|
||
"title": "报告自有编号 D-x(§4.3 冻结历史快照)",
|
||
"pattern": "\\bD-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/项目审查与优化建议报告.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"dangling_outside_owner": "warn",
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"collides_with": "D"
|
||
},
|
||
{
|
||
"name": "S-RPT",
|
||
"class": "S-RPT",
|
||
"title": "报告自有编号 S-x(§4.3 冻结历史快照)",
|
||
"pattern": "\\bS-[0-9]\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/项目审查与优化建议报告.md"
|
||
],
|
||
"scope": "doc-scoped",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"collides_with": "N"
|
||
},
|
||
{
|
||
"name": "R-RPT",
|
||
"class": "R-RPT",
|
||
"title": "报告自有编号 R-x(§4.3 冻结;内存优化项)",
|
||
"pattern": "\\bR-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/项目审查与优化建议报告.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": "R-9",
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
],
|
||
"cursor_note": "实测现存至 R-9(2026-10-15 落地);§1.2 记「R1=风险、R-2=内存优化项」同字母歧义"
|
||
},
|
||
{
|
||
"name": "F-RPT",
|
||
"class": "F-RPT",
|
||
"title": "报告自有编号 F-x(§4.3 冻结历史快照)",
|
||
"pattern": "\\bF-[0-9]{1,2}\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/项目审查与优化建议报告.md"
|
||
],
|
||
"scope": "global",
|
||
"frozen": true,
|
||
"cursor": null,
|
||
"check_dangling": true,
|
||
"adjacent_required": true,
|
||
"adjacent_cues": [
|
||
"报告",
|
||
"审查"
|
||
]
|
||
},
|
||
{
|
||
"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"
|
||
},
|
||
{
|
||
"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"
|
||
},
|
||
{
|
||
"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": "「编号不随条目删除而回收」(专项文档卷首)→ 已销项的号再被引用即悬空;⚠ 与登记簿 S-3/S-4/S-5 同号不同义(§1.2),也与 CI 步骤号 S3、代码规范条款号 S3 同形 → 文档外只告警",
|
||
"adjacent_cues": [
|
||
"复审",
|
||
"专项"
|
||
]
|
||
},
|
||
{
|
||
"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": "现存 A-4/A-5 行,其余已销项(编号不回收)",
|
||
"adjacent_cues": [
|
||
"复审",
|
||
"专项"
|
||
]
|
||
},
|
||
{
|
||
"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"
|
||
},
|
||
{
|
||
"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",
|
||
"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),文档外按告警处理"
|
||
},
|
||
{
|
||
"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(§4.3 冻结历史快照)",
|
||
"pattern": "\\bU[1-5]\\b",
|
||
"owner_docs": [
|
||
"docs/问题记录/项目审查与优化建议报告.md",
|
||
"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": "U1~U5 见报告 §6.5;W6 波次按此推进(docs/任务规划/README.md §2.0)"
|
||
},
|
||
{
|
||
"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 态封顶:加状态先改游标"
|
||
}
|
||
],
|
||
"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"
|
||
]
|
||
}
|