iter55-卡1:QA覆盖余量收口批: 46→45真缺口断言落地(违约词负面套件/结算与cap与换算率钉/配额满/rap端到端/布局/天赋树/状态行/L3变异/reward行)+p_perfect读表接线(行为零漂移)+豁免登记(ontology 154/controls 19)+探针扩面十一组真输入+登记件开发面过滤(DebugOverlay/调试角标/inter三根, seen开发面键0)+枚举器scan_screens基类分类(绘制域件与调试浮窗出圈, 868实体/未豁免未补测=0)+cell_mark_overlay渲染通道(采集态六类型注入全入帧, 棋盘三图基线换代用户过目, 渲染闸绿);卡修轮2用户裁两处不豁免(渲染通道+开发面出圈);独立审计U1修复闭合+增量轮通过
This commit is contained in:
1 parent
095bb4c91b
commit
c41ce9cfc5
25 files changed
+1502
-26
No files matched your search
+18
-2
@@ -43,6 +43,12 @@ SCHEMA_VAR_RE = re.compile(r"^@?export\s+var\s+(\w+)\s*:", re.M)
|
||||
TSCN_NODE_RE = re.compile(r'\[node name="([^"]+)"[^>]*type="(\w*Button\w*)"')
|
||||
GUI_INPUT_RE = re.compile(r"^func (_gui_input|_input)\(", re.M)
|
||||
VIEW_KIND_RE = re.compile(r"(screen|overlay|panel)$")
|
||||
EXTENDS_RE = re.compile(r"^extends\s+(\w+)", re.M)
|
||||
CLASS_NAME_RE = re.compile(r"^class_name\s+(\w+)", re.M)
|
||||
# 屏与模态按实体本相归类(QA覆盖余量收口批 2026-11-07 用户裁):
|
||||
VIEW_NON_SCENE_BASES = {"RefCounted", "Resource"} # 绘制域件/数据件出圈(如 cell_mark_overlay),禁文件名后缀近似
|
||||
DEV_FACE_CLASS_NAMES = {"DebugOverlay"} # 调试浮窗按 class_name 声明出圈——开发面不入玩家可达对账宇宙
|
||||
#(登记件 probe_coverage_recorder 头注同款边界,两处单点同源)
|
||||
|
||||
|
||||
def scan_tables() -> list[dict]:
|
||||
@@ -94,10 +100,20 @@ def scan_gui_input_classes() -> list[dict]:
|
||||
|
||||
|
||||
def scan_screens() -> list[dict]:
|
||||
# 屏与模态按实体本相归类:场景节点基类才入;RefCounted/Resource 绘制域件出圈;
|
||||
# DebugOverlay 调试浮窗出圈(判据见 DEV_FACE_CLASS_NAMES 注)。
|
||||
out: list[dict] = []
|
||||
for f in sorted((GAME / "presentation" / "views").glob("*.gd")):
|
||||
if VIEW_KIND_RE.search(f.stem):
|
||||
out.append({"category": "屏与模态", "id": f.stem, "id_field": "view"})
|
||||
if not VIEW_KIND_RE.search(f.stem):
|
||||
continue
|
||||
text = f.read_text(encoding="utf-8", errors="replace")
|
||||
m = EXTENDS_RE.search(text)
|
||||
if m is not None and m.group(1) in VIEW_NON_SCENE_BASES:
|
||||
continue
|
||||
cm = CLASS_NAME_RE.search(text)
|
||||
if cm is not None and cm.group(1) in DEV_FACE_CLASS_NAMES:
|
||||
continue
|
||||
out.append({"category": "屏与模态", "id": f.stem, "id_field": "view"})
|
||||
return out
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,107 @@
|
||||
/* 覆盖豁免清单——人工维护(S13 基线人工修订同款纪律;面板与工具只读本文件,禁代码生成)。
|
||||
* 用途:登记「确认不需要真输入覆盖/不需要断言关联」的条目,B 面板对在册条目亮豁免灯、不亮缺口。
|
||||
* 形态:abilities=能力清单行「能力」列原文(精确匹配);controls=控件登记键或其中缀(包含匹配);
|
||||
* ontology=本体实体 id(精确匹配)。每条必须带 reason——无理由的豁免条目面板标红示警。 */
|
||||
* ontology=本体实体 id(精确匹配)。每条必须带 reason——无理由的豁免条目面板标红示警。
|
||||
* reason 承载=逐族注释(族理由照抄需求卡片「QA覆盖余量收口批」附录 B 分组;撤豁免动作随接线批走)。
|
||||
* 登记批=迭代 55(2026-11-07);登记凭据=重生成缺口集与本卡裁决逐 id 差集+两探针并集零命中集。 */
|
||||
window.__QA_COVERAGE__ = window.__QA_COVERAGE__ || {};
|
||||
window.__QA_COVERAGE__.exemptions = {
|
||||
"meta": {"note": "人工维护;改后刷新面板即生效,无生成步骤"},
|
||||
"abilities": [],
|
||||
"controls": [],
|
||||
"ontology": []
|
||||
"controls": [
|
||||
/* 豁免·双源同物(附录 C 排除面,7 键):营地自绘物件裸键与场景路径键双源同物——
|
||||
并集后七物件全命中(forge/notebook/campfire 由 screen_flow 承载),登记件键形冗余非缺口。 */
|
||||
"camp_object#",
|
||||
/* 开发面(附录 C 排除面,10 键)不入本清单(2026-11-07 用户裁轮 2 改判):调试面控件
|
||||
(debug_overlay 浮窗/调试角标/inter 进入下一层)本就不在玩家可达宇宙——覆盖登记件
|
||||
probe_coverage_recorder.gd 按调试面边界登记层过滤(头注声明单点),非豁免条目;
|
||||
原开发面 3 条豁免随改判删除。 */
|
||||
/* 豁免·进程终结(附录 C,2 键):MenuScreen 退出游戏/camp_esc 退出游戏——真点即杀探针进程,
|
||||
按〔接线断言〕承载(既有结构断言在位)。 */
|
||||
"Button#退出游戏",
|
||||
/* 豁免·键形实例变体(登记件实例序位随 UI 构建序平移——迭代 55 扩面动线已真点各家族代表实例,
|
||||
未命中键=同控件重建实例;键形改造若要做归工程批另行登记,卡 §5 在案): */
|
||||
"save_select_overlay/Button#删档#",
|
||||
"save_select_overlay/Button#新档#",
|
||||
"save_select_overlay/Button#进档#",
|
||||
"shop_overlay_view//Button#购买#",
|
||||
"treasure_view/Button#升级",
|
||||
"treasure_view/Button#装配",
|
||||
"treasure_view/Button#购买 10",
|
||||
"treasure_view/Button#购买 25",
|
||||
"tree_view/Button#先手压制",
|
||||
"tree_view/Button#稳健拓荒",
|
||||
"tree_view/Button#解锁 25 钥石",
|
||||
"tree_view/Button#购买 0 钥石",
|
||||
"tree_view/Button#购买 10 钥石",
|
||||
"tree_view/Button#购买 20 钥石",
|
||||
"tree_view/Button#购买 30 钥石",
|
||||
"tree_view/Button#购买 40 钥石",
|
||||
"tree_view/Button#购买 60 钥石"
|
||||
],
|
||||
"ontology": [
|
||||
/* ── 豁免·预留埋点(普查 §2 词表先行内容后接——未来接线内容时撤豁免补验证)── */
|
||||
"chain_ap_cost", "move_ap_cost", /* action_economy——schema 冻结 0,core 零调用方 */
|
||||
"hero_hp_pct", "neq", /* skill——TRIGGER_FACTS/算子词预留在册,tres 零行使用 */
|
||||
"ap_rounds_front", "effective_rounds", "mine_hit_halve", "reflect_damage", "refresh_pick",
|
||||
"reward_weight_bias", "slot_cost", "ap_grant", "risk", "cell_removal",
|
||||
/* treasure——EFFECT_KINDS/MAGNITUDE_KINDS/DIMENSIONS 在册、tres 零行使用 */
|
||||
/* ── 豁免·挂起件(全仓零引用,生涯条目承载处置两途)── */
|
||||
"settlement_review_overlay",
|
||||
/* ── 豁免·假缺口(验证在役、文本关联盲区——按族登记,reason 逐族)── */
|
||||
/* cap 九槽:钉值在役(table_structure_guard_test gp/attack 钉值同款+迭代 55 V3 七槽钉值扩全九槽——断言文本以槽短名引用) */
|
||||
"curio_cap_ap", "curio_cap_armor", "curio_cap_attack", "curio_cap_gp", "curio_cap_heal",
|
||||
"curio_cap_max_hp", "curio_cap_rap", "curio_cap_refresh", "curio_cap_time_sand",
|
||||
/* quota 段 13 槽+value 段 13 槽:和锚/逐槽钉值在役(guard 段结构锚+feat_vouchers_test 逐行断言——文本以槽短名引用) */
|
||||
"curio_quota_ap_rare", "curio_quota_armor_common", "curio_quota_armor_excellent",
|
||||
"curio_quota_attack_common", "curio_quota_attack_excellent", "curio_quota_gp_common",
|
||||
"curio_quota_gp_excellent", "curio_quota_heal_excellent", "curio_quota_max_hp_common",
|
||||
"curio_quota_max_hp_excellent", "curio_quota_rap_rare", "curio_quota_refresh_excellent",
|
||||
"curio_quota_time_sand_rare",
|
||||
"curio_value_ap_rare", "curio_value_armor_common", "curio_value_armor_excellent",
|
||||
"curio_value_attack_common", "curio_value_attack_excellent", "curio_value_gp_common",
|
||||
"curio_value_gp_excellent", "curio_value_heal_excellent", "curio_value_max_hp_common",
|
||||
"curio_value_max_hp_excellent", "curio_value_rap_rare", "curio_value_refresh_excellent",
|
||||
"curio_value_time_sand_rare",
|
||||
/* adventure 表字段/段词:生产消费+行为承载(feats A6 配额满分支读生产值驱动+guard 段结构锚在役) */
|
||||
"curio_candidate_count", "feat_ticket_chance", "feat_ticket_limit", "feat_ticket_pity_step",
|
||||
"quota_segment", "value_segment",
|
||||
/* feats 28 行:逐行行为断言+父专长通用通道读值(adventure_feats_test 逐行段在役) */
|
||||
"blast_accounting", "blood_insight", "blood_tax", "breaker_strike", "chain_traps",
|
||||
"echo_seals", "execution_scholar", "executioner", "field_dressing", "frontier_miner",
|
||||
"fuse_pts", "fuse_wire", "geologist", "hard_hat", "last_drop", "last_stand",
|
||||
"map_exchange", "market_close", "round_blast_spent", "round_digs", "round_instinct_atk",
|
||||
"seal_echo", "seal_stake", "skip_mining", "skip_pts", "smith_seals", "stop_swap",
|
||||
"trap_instinct",
|
||||
/* enemy/skills 四件:池构成与 EV 锚+键序(round_flow_skill_pool_test 池段+guard 键序段在役) */
|
||||
"harden", "hook_horror", "shield_bash", "venom_spit",
|
||||
/* reward 四行:负向字典与直伤当量(seal_polarity 负向段+guard 危险格负向直伤当量段在役) */
|
||||
"gp_lose", "heal_backlash", "magic_recoil", "pierce_snare",
|
||||
/* meta_tree 两行+四词:forge_test 装配段/彩蛋段行为承载+tree_rules/tree_requires_level/负面反例
|
||||
承载(迭代 55 V7 树面真链与侧投影断言、探针 40/60 档真输入) */
|
||||
"att_socket2", "att_socket3",
|
||||
"effects_a", "effects_b", "requires_level", "sense_sharp",
|
||||
/* 屏与模态 8 屏:探针真实入口可见性/真输入断言在役(ui_struct/ui_click/screen_flow/reward_overlay 各段) */
|
||||
"battle_end_overlay", "camp_esc_overlay", "curio_pick_overlay", "legend_overlay",
|
||||
"level_map_screen", "node_overlay", "save_select_overlay", "settings_overlay",
|
||||
/* 词表/字段杂项:生产消费+行为承载(消费点在役、断言文料以行为面引用——消费点逐条在案:
|
||||
pity_threshold/min_safe_count 生成器参数、atk_max/atk_min 敌 AC 带宽、initial_owned/per_level_gain/
|
||||
price_ratio_pct/type_axis 锻造轴、*_ratio 层构成、indeg/terminals 图约束、rest_heal_pct 休息兑付、
|
||||
gp_drops/price_a/pool_shelf 商店面、mult_oor_warning 校验词、round_direction 结算冻结、wall_band/canvas/
|
||||
gate_gap/hud_band_h/hotspot_key/texture_rect 营地布局、per_level_bonus/info_panel_w/info_visible_layers/
|
||||
roll_tier_bounds/roll_tier_discounts/gte/self_hp_pct 校验与触发词——self_hp_pct 触发行为由迭代 55 V9
|
||||
真实链断言承载) */
|
||||
"seal_place_ap_cost", "pity_threshold", "min_safe_count", "atk_max", "atk_min",
|
||||
"initial_owned", "per_level_gain", "price_ratio_pct", "type_axis", "battle_ratio",
|
||||
"fork_ways_max", "rest_ratio", "reward_ratio", "shop_ratio", "indeg", "terminals",
|
||||
"rest_heal_pct", "gp_drops", "price_a", "pool_shelf", "mult_oor_warning",
|
||||
"round_direction", "wall_band", "canvas", "gate_gap", "hud_band_h", "hotspot_key",
|
||||
"texture_rect", "per_level_bonus", "info_panel_w", "info_visible_layers",
|
||||
"roll_tier_bounds", "roll_tier_discounts", "gte", "self_hp_pct", "pool_tag",
|
||||
/* pool_tag=reward 池标签字段——guard 九型封闭与池行计数断言承载 */
|
||||
/* treasure 现役词 12:treasure_effects_test/treasure_target_violation_test/guard 现役承载 */
|
||||
"area_3x3", "board_wide", "dimension_tags", "remove_mines", "passive", "ap_charge_safe",
|
||||
"charge_reset", "charges_per_adventure", "mine_count_preview", "refresh_stock_grant",
|
||||
"shop_refresh_bonus", "unlock_keystone_cost"
|
||||
]
|
||||
};
|
||||
Reference in new issue
Block a user