docs(问题记录): 删除项目审查与优化建议报告,结论并入模块文档与编号规范
用户裁定:该报告大部分内容已闭环,可删除;仍有价值的迁到合适文档。删前逐条核对, 确认绝大多数结论在仓内早已有权威副本(LV_DRAW_SW_COMPLEX / osFlagsNoClear / SPI 分频 8 / 分层反向依赖存量基线等),只迁真正独有的四类内容: 1. 暂缓理由与重开条件(三条量化门槛)→ RAM 使用分析与优化方案 §4,并明确「本节是唯一 权威」,其它文档只留指针;同时把 10 处指向报告 §5.3 的重开条件引用改指该节。 2. 2026-10-22「常驻 vs 动态」三项诊断(静态前五块 43,462 B = 58%;动态面只有 heap_4, 故栈余量=CCM 余量;栈深主因是日志/配置写链)→ 同文档 §2.5。 3. `_fp_digits` 1,018 B 删不掉的机理与 F-6 根因修法(Q10 宏改单精度,−332 B,4.49e6 例 逐位等价)→ §2.6.4。 4. 「UI 侧缓冲进 CCM」要按 DMA 可达性二分(LVGL 池可进,帧缓冲/推流缓冲不可)→ 暂缓清单。 编号侧(报告曾是 6 个族的属主登记处): - 原报告 §9 的 26 行「号 → 现在详述于」对照表迁到 docs/编号规范.md 新增 §4.5,6 族 owner_docs 改指该节。规范正文含大量写法示例,直接当定义集会误伤,故 check_ids.py 新增 `_def_owners`:snapshot_only 族剔除规范正文,只恢复可判定、不参与悬空/撞号/裸形 /紧邻判定(实测若不分,裸形 S1 误报 238 条、S-3 与登记簿 S-3 误判重复定义)。 - 11 个已死号(N-03b/N-10~N-13/N-20/N-21/N-24/N-26/S-1/S-2)在 id_aliases.json 登记 status=void 并写明去处——它们被约 110 处代码注释与文档引用,原先只靠「报告里顺带提过 一句」才算有定义,报告一删就集体悬空。N-21/S-1/S-2 一号两义,注记已分别标明。 - 顺带修 id_aliases.json 的 note 被脚本累积重复 26 次;修 registry 里 3 处仍指向改名前的 任务卡文件名(W1-采集保护收尾.md / W8-数据可信.md),以及 iec104_master.py 两处同类注释。 门禁:check_ids --strict 通过(可判定 8747/10410 = 84.02%,基线由 82.6% 抬到 84.0%); check_doc_links --all --sections-strict 通过(177 文档);pre-commit 相关钩子全过。
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
实测可把误报压到 0);昵称式引用如「内存方案 §2.1」不校验。
|
||||
|
||||
豁免(不算失效,不报错):
|
||||
* 以 `[计划]` 前缀标记的路径(尚未创建的约定产物,见《项目审查与优化建议报告》D-3 建议)
|
||||
* 以 `[计划]` 前缀标记的路径(尚未创建的约定产物,源于 D-3 建议)
|
||||
* 含 `[示例]` 标记的行——引用报错样例 / 日志片段等含路径的引文
|
||||
* 引用附近(±40 字符)出现「未创建/尚未创建/已删除/待排期」等状态词
|
||||
* 含通配符 `*`、尖括号 `<模块>` 等占位符
|
||||
|
||||
+23
-16
@@ -141,6 +141,13 @@ class Checker(object):
|
||||
f["_re"] = re.compile(fam["pattern"])
|
||||
f["_full"] = re.compile("^(?:%s)$" % fam["pattern"])
|
||||
f["_owners"] = self._expand_owners(fam)
|
||||
# 定义集属主 ≠ 登记处属主。冻结历史快照族(snapshot_only)的登记处只能挂在
|
||||
# 规范正文(docs/编号规范.md §4.5 那种存档表)时,那张表**是存档不是定义**:
|
||||
# 规范里还混着大量写法示例(`N-99`、`S1`、`N-31`),若进定义集会同时打穿
|
||||
# 裸形判定(`S1` 被判成 `S-1` 的漏连字符,实测 238 条)与撞号判定(§4.5 的
|
||||
# `S-3` 与登记簿 S-3 被判重复定义)。因此只对快照族做这个剔除。
|
||||
f["_def_owners"] = ([o for o in f["_owners"] if o not in self.spec_docs]
|
||||
if fam.get("snapshot_only") else f["_owners"])
|
||||
f["_max"] = self._cursor_max(fam)
|
||||
self.families.append(f)
|
||||
# 长形态优先匹配:TC-UPPER 要先于 TC,避免大写后缀被当成合规
|
||||
@@ -210,7 +217,7 @@ class Checker(object):
|
||||
for rel in rels:
|
||||
self.read(rel)
|
||||
for fam in self.families:
|
||||
for owner in fam["_owners"]:
|
||||
for owner in fam["_def_owners"]:
|
||||
self.owner_docs.add(owner)
|
||||
self.owner_tokens[fam["name"]].update(
|
||||
m.group(0) for m in fam["_re"].finditer(self.read(owner)))
|
||||
@@ -298,7 +305,7 @@ class Checker(object):
|
||||
self._check_frozen(rel, lineno, literal, fam)
|
||||
self._check_dangling(rel, lineno, literal, fam)
|
||||
self._check_adjacent(rel, lineno, literal, fam, line, start)
|
||||
if rel not in fam["_owners"]:
|
||||
if rel not in fam["_def_owners"]:
|
||||
self.refs.setdefault(literal, set()).add(rel)
|
||||
|
||||
self._scan_malformed(rel, lineno, line)
|
||||
@@ -308,7 +315,7 @@ class Checker(object):
|
||||
if len(fams) == 1:
|
||||
return fams[0]
|
||||
for f in fams:
|
||||
if rel in f["_owners"]:
|
||||
if rel in f["_def_owners"]:
|
||||
return f
|
||||
for f in fams:
|
||||
if f.get("adjacent_required") and self._has_adjacent_cue(f, line, start):
|
||||
@@ -327,7 +334,7 @@ class Checker(object):
|
||||
if literal in self.owner_tokens[f["name"]]:
|
||||
return f
|
||||
for f in fams:
|
||||
if f.get("check_dangling") and f["_owners"]:
|
||||
if f.get("check_dangling") and f["_def_owners"]:
|
||||
return f
|
||||
for f in fams:
|
||||
if f["scope"] == "global":
|
||||
@@ -339,7 +346,7 @@ class Checker(object):
|
||||
for o in fam.get("owner_docs", []):
|
||||
stem = o.rsplit("/", 1)[-1]
|
||||
cues += [stem, stem.rsplit(".", 1)[0]]
|
||||
for o in fam["_owners"][:6]:
|
||||
for o in fam["_def_owners"][:6]:
|
||||
stem = o.rsplit("/", 1)[-1]
|
||||
cues += [stem, stem.rsplit(".", 1)[0]]
|
||||
out, seen = [], set()
|
||||
@@ -428,7 +435,7 @@ class Checker(object):
|
||||
def _check_frozen(self, rel, lineno, literal, fam):
|
||||
if not fam.get("frozen") or fam["_max"] is None:
|
||||
return
|
||||
if fam.get("cursor_owner_only") and rel not in fam["_owners"]:
|
||||
if fam.get("cursor_owner_only") and rel not in fam["_def_owners"]:
|
||||
# 裸形族(B5/C6/D7/M1/U3/R3/V5…)与位号、档位词、其它文档的同名清单大面积同形
|
||||
# (§1.2 五义/四义)→ 越游标只在属主登记处文档内判,文档外不判(见 unmanaged_bare)
|
||||
return
|
||||
@@ -442,7 +449,7 @@ class Checker(object):
|
||||
"该族已封闭,新条目改语义标识(§3.3);确需新号先改 docs/编号规范.md §4")
|
||||
|
||||
def _check_dangling(self, rel, lineno, literal, fam):
|
||||
if not fam.get("check_dangling") or not fam["_owners"] or rel in fam["_owners"]:
|
||||
if not fam.get("check_dangling") or not fam["_def_owners"] or rel in fam["_def_owners"]:
|
||||
return
|
||||
if rel in self.spec_docs:
|
||||
# 规范正文里的 `N-99`→`N-100`、`Trap 07` 这类是**写法示例**,不是引用
|
||||
@@ -463,14 +470,14 @@ class Checker(object):
|
||||
if base != literal and base in self.defined_all:
|
||||
self.stats["subitem_hits"] += 1
|
||||
return
|
||||
sev = fam.get("dangling_outside_owner", "error") if rel not in fam["_owners"] else "error"
|
||||
sev = fam.get("dangling_outside_owner", "error") if rel not in fam["_def_owners"] else "error"
|
||||
self.add(3, sev, rel, lineno, literal,
|
||||
"悬空引用:%s 在属主登记处(%s)查无定义,也不在别名表里(§8 校验 3)"
|
||||
% (literal, " / ".join(fam["_owners"][:2])),
|
||||
% (literal, " / ".join(fam["_def_owners"][:2])),
|
||||
"补定义行,或删引用(§5.5:销项 = 删行 + 清全库引用)")
|
||||
|
||||
def _check_adjacent(self, rel, lineno, literal, fam, line, start):
|
||||
if not fam.get("adjacent_required") or rel in fam["_owners"] or rel in self.spec_docs:
|
||||
if not fam.get("adjacent_required") or rel in fam["_def_owners"] or rel in self.spec_docs:
|
||||
return
|
||||
if "-" not in literal:
|
||||
# 只约束连字符形态的文档内编号:裸形(A2/B5/U3/D7)与位号、档位词大面积同形
|
||||
@@ -479,7 +486,7 @@ class Checker(object):
|
||||
if self._has_adjacent_cue(fam, line, start):
|
||||
return
|
||||
owner = fam["owner_docs"][0] if fam.get("owner_docs") else (
|
||||
fam["_owners"][0] if fam["_owners"] else "docs/<属主文档>.md")
|
||||
fam["_def_owners"][0] if fam["_def_owners"] else "docs/<属主文档>.md")
|
||||
self.add(6, "error", rel, lineno, literal,
|
||||
"文档内编号未紧邻文档名:%s 属「%s」,跨文档引用必须写全属主(§5.2 / §8 校验 6)"
|
||||
% (literal, fam["title"]),
|
||||
@@ -520,7 +527,7 @@ class Checker(object):
|
||||
allowed.add(frozenset((fam["class"], cw)))
|
||||
defs = defaultdict(list) # literal -> [(class, family_title, owner_doc)]
|
||||
for fam in self.families:
|
||||
for owner in fam["_owners"]:
|
||||
for owner in fam["_def_owners"]:
|
||||
for line in self.read(owner).splitlines():
|
||||
m = self.DEF_ANCHOR.match(line)
|
||||
if m and fam["_full"].match(m.group(1)):
|
||||
@@ -549,18 +556,18 @@ class Checker(object):
|
||||
|
||||
def check_orphans(self):
|
||||
for fam in self.families:
|
||||
if not fam.get("check_dangling") or not fam["_owners"]:
|
||||
if not fam.get("check_dangling") or not fam["_def_owners"]:
|
||||
continue
|
||||
if fam.get("allow_orphans"):
|
||||
# 属主登记处 = 代码的族(TC-HOST-*):号定义在测试函数上、本来就只在
|
||||
# 自己文件里出现,按"无人引用"报孤儿是纯噪音(118 条),显式声明不判
|
||||
continue
|
||||
for lit in sorted(self.owner_tokens[fam["name"]]):
|
||||
outside = {r for r in self.refs.get(lit, set()) if r not in fam["_owners"]}
|
||||
outside = {r for r in self.refs.get(lit, set()) if r not in fam["_def_owners"]}
|
||||
if not outside:
|
||||
self.add(7, "warn", fam["_owners"][0], 0, lit,
|
||||
self.add(7, "warn", fam["_def_owners"][0], 0, lit,
|
||||
"孤儿条目:%s 定义在 %s,全库无引用(§8 校验 7)"
|
||||
% (lit, fam["_owners"][0]),
|
||||
% (lit, fam["_def_owners"][0]),
|
||||
"确认已闭环可销项(§5.5),或补上引用")
|
||||
|
||||
# ---------- 报告 ----------
|
||||
|
||||
@@ -15,7 +15,7 @@ r"""
|
||||
自研生产源文件里有多少从未被任何主机单测编译过(未触及面 = 覆盖率的 0 分母盲区)。
|
||||
|
||||
为什么要它(2026-10-23,W5 验证常态):
|
||||
docs/问题记录/项目审查与优化建议报告.md §4.8 记的两处空白之一:无覆盖率口径——
|
||||
原评审报告 §4.8 记的两处空白之一(该报告 2026-10-25 已删除):无覆盖率口径——
|
||||
L0.5 只回答“跑过哪些 TC”,回答不了“生产源码里哪些行根本没进过”。用例数与 TC 追溯率
|
||||
会随时间上升,但覆盖率照的是另一类真相:**新增分支一行没测**(N-12/N-13 那类“读代码
|
||||
才发现”的缺陷,覆盖率是最便宜的机器照法)。
|
||||
@@ -67,7 +67,7 @@ r"""
|
||||
- **PDB 里的源路径大小写会漂**(盘符、VS 根),比对前先按仓库实际拼写归一,否则同一文件
|
||||
在基线里裂成两份。
|
||||
|
||||
设计依据:docs/测试说明/主机单测覆盖率口径.md;docs/问题记录/项目审查与优化建议报告.md §4.8 §5.5
|
||||
设计依据:docs/测试说明/主机单测覆盖率口径.md
|
||||
创建日期:2026-10-23
|
||||
"""
|
||||
|
||||
|
||||
+56
-8
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"generated_from": "docs/编号规范.md §7 迁移映射 + §4.3 冻结前缀;本表只登记**仓库里已实际出现**的旧字面量 → 现行字面量,不做尚未落地的批量改写(§7.2 阶段 1 一律保留存量)",
|
||||
"note": "旧号引用不因本表而改写:本表只让门禁把「旧号引用」判成可解析(校验 3 悬空引用 / 校验 4 重复定义)。批量改写属 §9 阶段 1,须逐批 dry-run + 三重复核(§7.3)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。",
|
||||
"note": "旧号引用不因本表而改写:本表只让门禁把「旧号引用」判成可解析(校验 3 悬空引用 / 校验 4 重复定义)。批量改写属 §9 阶段 1,须逐批 dry-run + 三重复核(§7.3)。 带 scope 的条目只在所列文件内生效(同一裸形字面量可能属多族,全局别名会把真撞号洗成已解析)。",
|
||||
"aliases": {
|
||||
"N-31": {
|
||||
"to": null,
|
||||
@@ -2706,7 +2706,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -2721,7 +2720,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -2736,7 +2734,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -2751,7 +2748,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -2766,7 +2762,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -2781,7 +2776,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -2796,7 +2790,6 @@
|
||||
"note": "GD5F 存储域:Trap 01~07 → TRAP-GD5F-01~07(属主文档 7 个标题行为定义位,其余为引用)(scripts/rename_ids.py 批:族 TRAP)|旧号仅在本批 scope 内指向新号;scope 外同字面量属其它族,不受本条影响",
|
||||
"scope": [
|
||||
"docs/问题记录/GD5F2GQ5UE_Trap_Records.md",
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/测试说明/GD5F2GQ5UE_Test_Guide.md",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c",
|
||||
"Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h",
|
||||
@@ -3102,6 +3095,61 @@
|
||||
"docs/硬件平台/V0.1_网表详细分析报告.md"
|
||||
],
|
||||
"note": "批 7:硬件网表报告里的裸形 Trap05 统一成 TRAP-NET-05(属主条目 docs/问题记录/CH395F_Trap_Records.md,语义 = CH395F 与 RTL8305 自动协商不兼容)。该目录仍不在门禁扫描语料内(约 4200 处位号噪声,位号类型识别未做前不纳入)。"
|
||||
},
|
||||
"N-03b": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "报告 N-03b(IWDG / `configASSERT` / 两个钩子 / 4 个 Fault 现场)——属主文档 docs/问题记录/项目审查与优化建议报告.md 已于 2026-10-25 删除。现行去处:docs/子系统设计/看门狗设计说明.md §4.4、§10.1/§10.2 + AGENTS.md「平台约束」"
|
||||
},
|
||||
"N-10": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "报告 N-10(UI accept 门控)——属主文档 2026-10-25 已删除。现行去处:docs/UI设计/RemoDispBus协议与接收设计说明.md §3、docs/子系统设计/看门狗设计说明.md §11.4;实施代码 Drivers/BSP/UI/ui_net_sink.c"
|
||||
},
|
||||
"N-11": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "报告 N-11(NAND 直 DMA 调用方缓冲 / CCM 迁移硬边界,登记簿曾用 N-26)——属主文档 2026-10-25 已删除。现行去处:docs/内存管理/内存内容分配策略.md §3 + §4 规则 R1~R4 + §8;代码三层 = gd5f2gq5ue.h 编译期窗口断言 → nand_ftl.c 启动期自检 → gd5f_dma_buf_ok() 运行时强制"
|
||||
},
|
||||
"N-12": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "报告 N-12(dhara 移植层 `is_free` 整页精度,登记簿曾用 N-21)——属主文档 2026-10-25 已删除。现行去处:docs/架构设计/STM32F4-Base存储架构说明.md §5.3 + 主机侧单测 test/host/nand_port/(含「旧算法只看页首 64 B」的对照用例)"
|
||||
},
|
||||
"N-13": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "报告 N-13(移植层 HAL 越界守卫 + `DHARA_E_CORRUPT_MAP`,登记簿曾用 N-21)——属主文档 2026-10-25 已删除。现行去处:docs/架构设计/STM32F4-Base存储架构说明.md §5.3 + Drivers/BSP/GD5F2GQ5UE/nand_ftl.c 的 `ftl_page_in_range` / `ftl_block_in_range` 注释"
|
||||
},
|
||||
"N-20": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "登记簿 N-20 = 报告 N-03c(`Error_Handler` 死循环统一降级),2026-10-15 销项删行。结论去处:docs/子系统设计/看门狗设计说明.md §4.4(含 `__builtin_return_address` 不可用的实证)+ Src/main.c 的 `USER CODE Error_Handler_Debug` 区注释"
|
||||
},
|
||||
"N-21": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "本号两义,均已死:① 登记簿 N-21 = 报告 N-12/N-13(dhara 移植层两条硬约束),2026-10-15 销项删行 → docs/架构设计/STM32F4-Base存储架构说明.md §5.3;② 报告 N-21(时钟/对时,已闭环)→ docs/编号规范.md §4.5。存量引用几乎都是①"
|
||||
},
|
||||
"N-24": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "登记簿 N-24 = 报告 N-16(日志读写放大:写侧合并 open/write/close + 读侧 8 条滑动窗口),2026-10-15 销项删行。结论去处:docs/子系统设计/运行与自检记录设计说明.md §4.4/§4.5 + App/log/sys_log_mcu.c 的 `s_format_rec` / `s_append_rec` / `s_append_many` / `s_read_raw` 注释"
|
||||
},
|
||||
"N-26": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "登记簿 N-26 = 报告 N-11(DMA 可达性三层防线 + 规则族 R1~R4),2026-10-15 销项删行。结论去处:docs/内存管理/内存内容分配策略.md §3/§4/§8 + Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h 的窗口断言块;负路径用例 TC-GD5F-704/705"
|
||||
},
|
||||
"S-1": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "本号两义,均已死:① 登记簿 S-1(defaultTask 栈余量 3664B/4096 ≈10%,2026-10-04 登记),2026-10-10 削链销项 → 复测见 docs/内存管理/RAM使用分析与优化方案.md §4 阶段 0「不抬栈」小节;② 报告 S-1(分层反向依赖 BSP include App 的头)→ docs/门禁说明/layer-deps.md 与 docs/编号规范.md §4.5。存量引用几乎都是①"
|
||||
},
|
||||
"S-2": {
|
||||
"to": null,
|
||||
"status": "void",
|
||||
"note": "本号两义,均已死:① 登记簿 S-2(启动日志固化流程,2026-09-22 提出、2026-10-05 固化后销项)→ docs/测试说明/boot_log_data/README.md;② 报告 S-2(跨模块裸 `extern`,2026-10-22 已闭环)→ 契约见 App/task/task_handles.h、gd5f_spi1_notify_*、net_msg_queue_adopt"
|
||||
}
|
||||
},
|
||||
"id_aliases": {}
|
||||
|
||||
@@ -1106,66 +1106,6 @@
|
||||
"literal": "gen 45",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 2,
|
||||
"literal": "W1-0",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P1-10",
|
||||
"count": 3
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-10",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-13",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-14",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-15",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-5",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-6",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-8",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"file": "docs/问题记录/项目审查与优化建议报告.md",
|
||||
"code": 6,
|
||||
"literal": "P2-9",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"file": "scripts/README.md",
|
||||
"code": 6,
|
||||
|
||||
+32
-27
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"generated_from": "docs/编号规范.md §4 编号空间总表(§4.1 在册 / §4.2 目标 / §4.3 冻结 / §4.4 划界)+ §6 模块码表 + §7 迁移映射。游标取「规范记载值」与「全库实测最大号」的较大者,实测偏差一律写进 cursor_note,不凭印象编。",
|
||||
"decidable_ratio_baseline": 82.6,
|
||||
"decidable_ratio_baseline": 84.0,
|
||||
"spec_docs": [
|
||||
"docs/编号规范.md"
|
||||
],
|
||||
@@ -351,7 +351,7 @@
|
||||
"title": "里程碑目标形态 MS-<nn>(§4.2;存量 M1~M3)",
|
||||
"pattern": "\\bMS-[0-9]{1,2}\\b",
|
||||
"owner_docs": [
|
||||
"docs/任务规划/W1-采集保护收尾.md"
|
||||
"docs/任务规划/采集保护收尾.md"
|
||||
],
|
||||
"scope": "global",
|
||||
"frozen": false,
|
||||
@@ -688,7 +688,7 @@
|
||||
"pattern": "\\bB[0-9]{1,2}\\b",
|
||||
"owner_docs": [
|
||||
"docs/任务规划/README.md",
|
||||
"docs/任务规划/W1-采集保护收尾.md",
|
||||
"docs/任务规划/采集保护收尾.md",
|
||||
"docs/任务规划/排期详述.md"
|
||||
],
|
||||
"scope": "global",
|
||||
@@ -757,7 +757,7 @@
|
||||
"title": "里程碑 M1~M3(§4.2 目标 MS-<nn>;存量冻结)",
|
||||
"pattern": "\\bM[1-3]\\b",
|
||||
"owner_docs": [
|
||||
"docs/任务规划/W1-采集保护收尾.md",
|
||||
"docs/任务规划/采集保护收尾.md",
|
||||
"docs/任务规划/README.md"
|
||||
],
|
||||
"scope": "global",
|
||||
@@ -904,15 +904,15 @@
|
||||
{
|
||||
"name": "N-RPT",
|
||||
"class": "N-RPT",
|
||||
"title": "《项目审查与优化建议报告》自有编号 N-xx(§4.3 冻结历史快照)",
|
||||
"title": "《项目审查与优化建议报告》自有编号 N-xx(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||||
"pattern": "\\bN-[0-9]{1,3}[a-z]?\\b",
|
||||
"owner_docs": [
|
||||
"docs/问题记录/项目审查与优化建议报告.md"
|
||||
"docs/编号规范.md"
|
||||
],
|
||||
"scope": "doc-scoped",
|
||||
"frozen": true,
|
||||
"cursor": null,
|
||||
"check_dangling": true,
|
||||
"check_dangling": false,
|
||||
"dangling_outside_owner": "warn",
|
||||
"adjacent_required": true,
|
||||
"adjacent_cues": [
|
||||
@@ -922,20 +922,21 @@
|
||||
"collides_with": "N",
|
||||
"cursor_note": "⚠ 与登记簿 N-x 同名不同义(§4.3 / AGENTS.md 模块约定)→ 引用必须紧邻「报告」或报告文档名",
|
||||
"snapshot_only": true,
|
||||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||||
"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(§4.3 冻结历史快照)",
|
||||
"title": "报告自有编号 D-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||||
"pattern": "\\bD-[0-9]\\b",
|
||||
"owner_docs": [
|
||||
"docs/问题记录/项目审查与优化建议报告.md"
|
||||
"docs/编号规范.md"
|
||||
],
|
||||
"scope": "doc-scoped",
|
||||
"frozen": true,
|
||||
"cursor": null,
|
||||
"check_dangling": true,
|
||||
"check_dangling": false,
|
||||
"dangling_outside_owner": "warn",
|
||||
"adjacent_required": true,
|
||||
"adjacent_cues": [
|
||||
@@ -944,20 +945,21 @@
|
||||
],
|
||||
"collides_with": "D",
|
||||
"snapshot_only": true,
|
||||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||||
"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(§4.3 冻结历史快照)",
|
||||
"title": "报告自有编号 S-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||||
"pattern": "\\bS-[0-9]\\b",
|
||||
"owner_docs": [
|
||||
"docs/问题记录/项目审查与优化建议报告.md"
|
||||
"docs/编号规范.md"
|
||||
],
|
||||
"scope": "doc-scoped",
|
||||
"frozen": true,
|
||||
"cursor": null,
|
||||
"check_dangling": true,
|
||||
"check_dangling": false,
|
||||
"adjacent_required": true,
|
||||
"adjacent_cues": [
|
||||
"报告",
|
||||
@@ -965,20 +967,21 @@
|
||||
],
|
||||
"collides_with": "N",
|
||||
"snapshot_only": true,
|
||||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||||
"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(§4.3 冻结;内存优化项)",
|
||||
"title": "报告自有编号 R-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结;内存优化项)",
|
||||
"pattern": "\\bR-[0-9]{1,2}\\b",
|
||||
"owner_docs": [
|
||||
"docs/问题记录/项目审查与优化建议报告.md"
|
||||
"docs/编号规范.md"
|
||||
],
|
||||
"scope": "global",
|
||||
"frozen": true,
|
||||
"cursor": "R-9",
|
||||
"check_dangling": true,
|
||||
"check_dangling": false,
|
||||
"adjacent_required": true,
|
||||
"adjacent_cues": [
|
||||
"报告",
|
||||
@@ -986,27 +989,29 @@
|
||||
],
|
||||
"cursor_note": "实测现存至 R-9(2026-10-15 落地);§1.2 记「R1=风险、R-2=内存优化项」同字母歧义",
|
||||
"snapshot_only": true,
|
||||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||||
"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(§4.3 冻结历史快照)",
|
||||
"title": "报告自有编号 F-x(原属主文档 2026-10-25 已删;登记处迁 §4.5,§4.3 冻结历史快照)",
|
||||
"pattern": "\\bF-[0-9]{1,2}\\b",
|
||||
"owner_docs": [
|
||||
"docs/问题记录/项目审查与优化建议报告.md"
|
||||
"docs/编号规范.md"
|
||||
],
|
||||
"scope": "global",
|
||||
"frozen": true,
|
||||
"cursor": null,
|
||||
"check_dangling": true,
|
||||
"check_dangling": false,
|
||||
"adjacent_required": true,
|
||||
"adjacent_cues": [
|
||||
"报告",
|
||||
"审查"
|
||||
],
|
||||
"snapshot_only": true,
|
||||
"snapshot_note": "§4.3 冻结历史快照:只在引用写了文档名(紧邻线索)时参与定族,不参与「定义位优先」——避免同号把活登记处接管走"
|
||||
"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",
|
||||
@@ -1210,10 +1215,9 @@
|
||||
{
|
||||
"name": "U-RPT",
|
||||
"class": "U",
|
||||
"title": "报告 UI 标准化簇 U1~U5(§4.3 冻结历史快照)",
|
||||
"title": "报告 UI 标准化簇 U1~U5(原属主文档 2026-10-25 已删;排期见 README §2.0 / 登记簿 U 簇,§4.3 冻结历史快照)",
|
||||
"pattern": "\\bU[1-5]\\b",
|
||||
"owner_docs": [
|
||||
"docs/问题记录/项目审查与优化建议报告.md",
|
||||
"docs/任务规划/README.md",
|
||||
"docs/任务规划/登记簿.md"
|
||||
],
|
||||
@@ -1223,7 +1227,8 @@
|
||||
"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)"
|
||||
"cursor_note": "U1~U5 原见《项目审查与优化建议报告》§6.5(该报告 2026-10-25 已删除);现行排期见 docs/任务规划/README.md §2.0「UI 扩展」与 登记簿 U 簇行",
|
||||
"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": "U-STATE",
|
||||
|
||||
Reference in New Issue
Block a user