feat(门禁): 批 9 位号规则扩展到引脚名 + 修 --prune-backlog 丢 reason 的 bug

规则扩展(scripts/check_ids.py,两处共用同一正则)
- 原:^[RCDJXUT][0-9]{1,3}(单字母位号)
- 现:再加 ^[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 这类
- 关键边界:带连字符的一字母形态(C-10 / A-9 / N-18 / D-7)与 TC-206、TC1003 **不落在
  新形状里**,照旧判定 → 报告自有条目号这类真编号没被顺手挡掉(实测台账仍留 21 类真债)
- 位号与引脚名都不进 refs_total:错误级 661 → **651**,refs_total 8807 → 8797(同步 −10),
  可判定比例 82.84% → **82.94%**(分母没被噪声灌水,涨幅来自噪声出清而非真进展)

修自己的 bug:--prune-backlog 会静默丢掉 reason 字段
- 症状:收账一次后,那 28 类硬件存量条目的「这笔债为什么该存在」说明全部消失
- 根因:prune 用 dict 字面量重建条目,只写了 file/code/literal/count 四个键
- 修法:改为从原始 JSON 取整条再覆盖 count,其它字段原样保留;已实测幂等
  (再跑一次「还清 0 条、剩 313 条、带 reason 仍 21 类」)
- 21 类真债的 reason 已重新写回,内容含一条判断:器件料号 FOC-817 **不做**形状规则,
  因为 [A-Z]{3}-\d{3} 与真家族 DEF-* 撞形,宁可留一条记账也不制造盲区

验证:id-check --strict 通过(存量 651 全在台账内、无未登记新账);
doc-links --all 失效与待确认均 0;未改 C/H 不需 @build;台账只减不增
This commit is contained in:
2026-10-22 08:49:39 +08:00
parent 125140a3c6
commit af411866a8
3 changed files with 163 additions and 203 deletions
+13 -4
View File
@@ -261,7 +261,7 @@ class Checker(object):
# (约 4200 处位号若进 refs_total,会把分母灌水、掩盖真实变化)
_rx = getattr(type(self), "_desig_rx", None)
if _rx is None:
_rx = type(self)._desig_rx = re.compile(r"[RCDJXUT][0-9]{1,3}")
_rx = type(self)._desig_rx = re.compile(r"(?:[RCDJXUT][0-9]{1,3}|[A-Z]{2,3}[0-9]{1,2}(?:-[0-9]{1,2})?)")
type(self)._desig_paths = ("docs/硬件平台/", "docs/芯片手册/")
if rel.startswith(type(self)._desig_paths) and _rx.fullmatch(literal):
self.stats["designator_skipped"] = self.stats.get("designator_skipped", 0) + 1
@@ -365,7 +365,7 @@ class Checker(object):
# 所以 D-7 / N-18 / TC-206 / TC1003 这类真编号或违规形态都不受影响。
_rx = getattr(type(self), "_desig_rx", None)
if _rx is None:
_rx = type(self)._desig_rx = re.compile(r"[RCDJXUT][0-9]{1,3}")
_rx = type(self)._desig_rx = re.compile(r"(?:[RCDJXUT][0-9]{1,3}|[A-Z]{2,3}[0-9]{1,2}(?:-[0-9]{1,2})?)")
type(self)._desig_paths = ("docs/硬件平台/", "docs/芯片手册/")
if rel.startswith(type(self)._desig_paths) and _rx.fullmatch((literal or "").strip()):
self.stats["designator_skipped"] = self.stats.get("designator_skipped", 0) + 1
@@ -723,8 +723,17 @@ def main():
return 2
paid = [k for k in led if groups.get(k, 0) == 0]
grew = [(k, led[k], groups.get(k, 0)) for k in led if groups.get(k, 0) > led[k]]
kept = [{"file": k[0], "code": k[1], "literal": k[2], "count": groups[k]}
for k in sorted(led) if groups.get(k, 0) > 0]
# ⚠ 必须保留原条目的**全部字段**(尤其 reason):早先这里用 dict 字面量重建条目,
# 把 reason 静默丢掉,等于把「这笔债为什么该存在」的审计说明清掉了(实测一次丢掉 21 类)。
raw = json.loads(BACKLOG_FILE.read_text(encoding="utf-8"))
orig = {(e["file"], int(e["code"]), e["literal"]): e for e in raw.get("entries", [])}
kept = []
for k in sorted(led):
if groups.get(k, 0) <= 0:
continue
e = dict(orig.get(k, {"file": k[0], "code": k[1], "literal": k[2]}))
e.update({"file": k[0], "code": k[1], "literal": k[2], "count": groups[k]})
kept.append(e)
BACKLOG_FILE.write_text(
json.dumps(backlog_doc(kept, err_total, ratio), ensure_ascii=False, indent=2) + "\n",
encoding="utf-8", newline="\n")
+149 -198
View File
@@ -2,8 +2,8 @@
"schema": 1,
"note": "编号债务台账(docs/编号规范.md §8.4):--strict 只对**台账之外**的新错误级问题拦提交。台账只许减不许增——还清的用 --prune-backlog 收掉;确需新增一条必须写 reason 字段说明这笔债为什么该存在,默认禁止顺手加行(否则一周后台账就变成第二个 backlog)。指纹 = 文件 + 校验号 + 字面量,不含行号(行号会漂,用它台账天天假新增)。",
"generated_by": "scripts/check_ids.py --write-backlog",
"total_error_findings": 626,
"decidable_ratio_at_generation": 83.26,
"total_error_findings": 651,
"decidable_ratio_at_generation": 82.94,
"entries": [
{
"file": ".dsh/skills/serial-assistant/scripts/serial_tool.py",
@@ -923,6 +923,153 @@
"literal": "P2-12",
"count": 1
},
{
"file": "docs/硬件平台/ADC通道映射说明.md",
"code": 6,
"literal": "P1-5",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "A-10",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "A-11",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-1",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-10",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-2",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-3",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-4",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-5",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-6",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-7",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-8",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-9",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "FOC-817",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-2",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-3",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-6",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-8",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-9",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 5,
"literal": "A-8",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 5,
"literal": "A-9",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描暴露的**先前不可见存量**,非本批新引入。引脚名/总线名/网名(PB12-15、PG0-15、PF13-15、DB0-15、OS0-2、KEY1-3 一类)已由 check_ids.py 的位号规则挡掉且不进比例分母;本条是**真编号**:报告自有条目号(C-x / A-x)或需紧邻文档名,待逐条归位(§4.3 快照族登记或补文档名)。器件料号 FOC-817 也留在此记账——不给它做形状规则,因为 [A-Z]{3}-\\d{3} 会与真家族 DEF-* 撞形,宁可留一条债也不制造盲区。"
},
{
"file": "docs/网络/BSD_Socket_API_使用指南.md",
"code": 6,
@@ -1756,202 +1903,6 @@
"code": 2,
"literal": "T1",
"count": 7
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "PB12-15",
"count": 3,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/ADC通道映射说明.md",
"code": 6,
"literal": "P1-5",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "PG0-15",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 5,
"literal": "A-9",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-9",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "A-11",
"count": 2,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "FOC-817",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "DB0-15",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "OS0-2",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "PF13-15",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "KEY1-3",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-2",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-3",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-6",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 5,
"literal": "A-8",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 3,
"literal": "A-8",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "A-10",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-1",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-2",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-3",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-4",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-5",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-6",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-7",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-8",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-9",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.0_网表详细分析报告.md",
"code": 1,
"literal": "C-10",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
},
{
"file": "docs/硬件平台/V0.1_网表详细分析报告.md",
"code": 1,
"literal": "PB12-15",
"count": 1,
"reason": "硬件语料(docs/硬件平台/)2026-10-22 首次纳入扫描:这是**先前不可见的存量**,不是本批新引入的债。位号(R/C/D/J/X/U/T+数字)已由类型识别挡掉且不进分母;剩下的按族归位(专项条目 / IEEE 记号 / 报告自有编号缺紧邻文档名)后续分批处理。"
}
]
}
+1 -1
View File
@@ -1612,5 +1612,5 @@
"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 处位号会把比例分母灌水、掩盖真实变化。 【遗留噪声类】V0.0 网表报告里的引脚名 PB12-15 / PG0-15 / DB0-15(两字母+数字+区间)不是编号,位号规则尚未覆盖这种形状,暂以台账 reason 记账,待加 pin-name 类型规则后清除。"
"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 里记账。"
}