修复(CI追绿·迭代50收尾): run29两闸红因三处——①roadmap下一步「2026-11-03 新条」措辞触发gdd_lint R3正文修订注记,改「在册」去日期式叙述 ②能力行敌方增益自体落点代表用例名实断裂(_test_enemy_buff_targets_self→_smoke_enemy_buff_targets_self,实况=实现侧_smoke定名,iter50批末核对漏检此行,卡片退役后卡在通道消失即暴露) ③capability_audit真实入口锚面结构性缺口——入口宿主在game/sim/(battle_driver/auto_player)而扫描面排除sim,卡片退役后无持久锚即红; 锚面扩入sim测量件(判据面有意放宽:被锚入口本在库内,补的是卡片死后的持久锚通道,非放水),头注与报错文案同步; 本地复核gdd_lint 0不通过+capability_audit strict红项0

This commit is contained in:
DKChan committed 2026-11-03 20:00:06 +08:00
1 parent 276252fc5d
commit 6add37b68c
3 files changed
+8 -6

No files matched your search

+6 -4
View File
@@ -10,8 +10,8 @@ r"""capability_audit.py — 能力清单、覆盖域表与 GDD 纯度机检(
manifest 内且该文件有 `func 函数名(`,或该文件是 game/probe/ 下的探针件且件内有 `func 函数名(`——
探针不进 run_all manifest,单独认探针面)或卡在(该文件名或函数名能在 reports/需求卡片*.md 中找到,
供写卡时当场入表的计划用例锚定);两头都无=红(清单挂了无凭证义务)。
E 真实入口可核(双通道):能力行「真实入口」的每个 `类.方法()`——产品码(game/ 除 tests//probe//sim/)
有 `func 方法(`,或该方法名能在 reports/需求卡片*.md 中找到(计划入口同 D 口径);两头都无=红。
E 真实入口可核(双通道):能力行「真实入口」的每个 `类.方法()`——产品码+sim 测量件(game/ 除
tests//probe/)有 `func 方法(`,或该方法名能在 reports/需求卡片*.md 中找到(计划入口同 D 口径);两头都无=红。
F 覆盖域表:systems 每篇一行;状态∈{已覆盖,部分覆盖,未覆盖};非未覆盖行的「能力行」非空且每项都能
对上能力表里的行名;部分/未覆盖行的缺口非空且指待办清单。
条件闸行豁免(代表用例含「条件闸」字样)不参与 D/E。
@@ -121,10 +121,12 @@ def manifest():
def product_funcs():
# 「代码在」锚面=产品码(game/ 除 tests//probe/)+sim 测量件:调参测量与模拟驱动件
# (battle_driver/auto_player 等)是合法的真实入口宿主,卡片退役后其入口只能锚代码面。
names = set()
for p in (REPO / "game").rglob("*.gd"):
rel = p.relative_to(REPO).as_posix()
if rel.startswith(("game/tests/", "game/probe/", "game/sim/")):
if rel.startswith(("game/tests/", "game/probe/")):
continue
names.update(re.findall(r"^(?:static\s+)?func\s+([A-Za-z_]\w*)\s*\(", read(p), re.M))
return names
@@ -251,7 +253,7 @@ def check_entry(no, name, cell, funcs, cards):
for _, method in tokens:
if method not in funcs and not (cards and method in cards):
red(README.relative_to(REPO), no, "真实入口",
"「%s」方法 %s() 无凭证——产品码无定义且需求卡片未载" % (name[:16], method))
"「%s」方法 %s() 无凭证——产品码与 sim 测量件无定义且需求卡片未载" % (name[:16], method))
def check_coverage(cov_tables, names):