审计归档补全(迭代50): 首轮不通过全文回填(前笔476a32a3仅含复验轮—输出文件提取源缺首轮段,从审计体hand-back文本重建)+终判通过注记
This commit is contained in:
1 parent
476a32a3ad
commit
bd64a0e4ac
1 file changed
+130
-2
@@ -1,10 +1,132 @@
|
||||
# 迭代 50 独立验收审计报告(2026-11-03)
|
||||
|
||||
> 审计体=未参与实现子代理(test-conventions §8.7 默认通道,迭代 loop 内启动)。两轮:首轮(重塑尖 a2886a53)判**不通过**(缺漏三条)→实现侧整改笔 6cb1cf5e→复验判**通过**。终判=**通过**(遗留一项 L2 记录面订正已随本文件落盘闭合)。
|
||||
|
||||
---
|
||||
|
||||
# 迭代 50 独立验收审计报告(2026-11-03)
|
||||
|
||||
审计体:未参与实现的子代理,只读核对+自跑最窄测试抽查。对象:`D:\code\g-plan2-iter50`(分支 iter50,尖 a2886a53,diff 基点 ab5d75a2)。三卡+实现报告+diff 全量过目;测试抽查 18 件次全部自跑。
|
||||
|
||||
## 一、总体判定:不通过
|
||||
|
||||
结论行:卡①卡②对照表全部闭合、卡③ 15 行中 13 行闭合,但卡③两行验收测试从未落地——R14 的 V14 断言全仓不存在而实现报告报「绿」,R2 的 V2 具名函数不存在(仅由申报 8 的既有断言改造承载同值判据);按卡③第 8 节末「未过不合并」口径,本批不得合并。
|
||||
|
||||
### 缺漏清单
|
||||
|
||||
| # | 缺漏 | 依据 |
|
||||
|---|---|---|
|
||||
| 1 | **R14/V14 验收测试不存在(重)** | `minesweeper_rules_test.gd:_test_preview_reveal_readonly` 在全仓零命中(git log -S 证实该名只出现在写卡提交 a05fd7b8 的卡片文本里);`git diff ab5d75a2..iter50 -- game/tests/unit/core/minesweeper_rules_test.gd` 为空——该文件本批零触碰(末次改动停在迭代 29 提交 d091c981)。行为面已落地(`core/minesweeper_rules.gd:373` preview_reveal 在码),但对照表声明的判据(零状态写入/与 settle_batch 实挖差集 F2 同口径/封印两形态/cell_revealed 零发射)无任何断言承载;唯一触及 preview_reveal 的测试是 V15(auto_player_deduce_test),只把它当依赖用,不绑只读契约。实现报告第四节 R14 行写「`_test_preview_reveal_readonly`〔V14——封印两形态零写入+实挖差集 F2 同口径〕绿」=**虚假绿记录** |
|
||||
| 2 | **R2/V2 具名验收函数不存在(中)** | `level_shop_economy_test.gd` 中无 `_test_spend_discount_from_rule_key`(git log -S 同样只命中写卡提交);该文件本批仅新增 V9(货架位)+删迁移断言(申报 7)。等价行为判据实际由 `meta_progression_forge_test.gd` `_smoke_tree_rules` 内既有「散激活:商品购买价 ×80%」断言经申报 8 改造承载(真实入口同为 LevelRunner 装配链→current_price,期望算式已改 discount_pct 推导,本轮实跑绿)——行为覆盖在,但对照表行与 tests/README.md:101 指认的具名载体不存在,尾缀〔架构整改 V2〕全仓测试代码零命中 |
|
||||
| 3 | **实现报告第九节名实核对结论失实** | 报告称「代表用例名与实际落地函数名一致(V13/V5 两处实现侧改名对齐)」——V2/V14 两处名实断裂未核对出、未呈报;卡③ T10 批末核对义务(「名实一致,改名则回表」)未完成 |
|
||||
|
||||
## 二、逐卡对照表逐行核对
|
||||
|
||||
### 卡①(敌方状态个体化批)——9 行全部通过
|
||||
|
||||
| 行 | 函数存在 | 尾缀可 grep | 真实入口未绕行 | 本轮实跑 |
|
||||
|---|---|---|---|---|
|
||||
| V1 个体隔离 | system_contracts_test.gd:138 | 〔个体化批 V1〕×3 | StatusContainer 公开 API(apply_effect/query_active) | 绿(50 checks) |
|
||||
| V2 全体逐体发 | :159 | ×3 | 容器公开 API(卡面既定入口;reward_grant 循环本体按卡面「同上」由容器同构模拟承载——卡既定设计,非实现绕行,见观察 1) | 绿 |
|
||||
| V3 死亡即清 | :185 | ×4 | apply_effect+purge_owner+query_active_side 公开面 | 绿 |
|
||||
| V4 同体合并 | :198 | ×3 | apply_effect 公开面 | 绿 |
|
||||
| V5 增益技自体落点 | round_flow_skill_pool_test.gd:1097 | ×1 | **真实编排链** begin_battle+settle_batch 推进(无裸 EffectEngine 绕行);种子扫描恰一次 cast=charge | 绿(round_flow 136 checks) |
|
||||
| V6 乘区池按个体 | damage_controller_test.gd:412 | ×1 | DamageController 公有算术面 clamped_pool+公开 owner_key_for | 绿 |
|
||||
| V7 AC 按个体 | :431 | ×1 | defender_ac() 公开面 | 绿 |
|
||||
| V8 呈现各读各的 | battle_narrator_test.gd:108 | ×1 | presentation_snapshot() 公开出户(判据钉两卡投影差;夹具布线经既有直查惯例) | 绿(22 checks) |
|
||||
| 申报换代两件 | roll_multiplier 重写在 diff 实证("e1" 键读数,累加/覆盖/同轮三断言原样,尾缀〔状态累加 V1/V2/V3〕保留) | ✓ | 原入口 | 绿;衰减相位断言按报告零改动——diff 证实该区零删行,衰减改逐桶后相位断言语义不受影响,等价成立 |
|
||||
|
||||
观察 1(不判缺漏):V2 的改动点 reward_grant.gd 循环授予无直接驱动测试,判据由容器侧同构模拟+V5/既有回归承载——这是卡面对照表自己声明的入口设计(「真实入口=同上」),实现照卡落,风险登记为对照表既定弱绑定,不属实现绕行。
|
||||
|
||||
### 卡②(断言补齐批)——V1-V16 全部通过
|
||||
|
||||
| 行 | 落点实证 | 本轮实跑 |
|
||||
|---|---|---|
|
||||
| V1/V2 衰减与全清 | system_contracts_test.gd:220(notify_battle_end 首次落断言,尾缀×7) | 绿 |
|
||||
| V3 满层拒绝 | :240 | 绿 |
|
||||
| V4/V5 独立并存/首授快照 | :257/:281(试验行注入测毕还原) | 绿 |
|
||||
| V6/V7/V8 设置存储 | settings_store_test.gd(新件,manifest 已登记):隔离经构造注入临时 cfg+测毕清理,未碰真实 user://settings.cfg——卡面写 retarget(),实现改 _init 注入,隔离卫生实质达成(白名单级夹具细节,报告第三节已披露) | 绿(6 checks) |
|
||||
| V9 每区域恰一 Boss 终点 | node_map_generator_test.gd:310,:32 挂入 _init | 绿(43 checks) |
|
||||
| V10 Boss 行集端到端 | boss_gate_test.gd(新件):行类路由+begin_battle(node_type="boss") 真链,无绕行 | 绿(4 checks) |
|
||||
| V11 全路线价格梯 | forge_table_test.gd:91(floor 公式表值推算,尾缀+注释在案) | 绿(42 checks) |
|
||||
| V12 购买链至 3 级 | 落在 `_smoke_forge_axes`(:425-430)——卡面写 `_meta_pricing_and_buy`,实况该函数在 :134 且属树购买面;报告决定记录 #1 已备案指认漂移,判据面(45 档扣款余额递减)不动 | 绿(151 checks) |
|
||||
| V13 拒购零副作用 | :779 | 绿 |
|
||||
| V14 祝福件零泄漏 | :793(LevelRunner 真实装配链 buy_product) | 绿 |
|
||||
| V15/V16 默认轴/甲型双轴 | :811/:819 | 绿 |
|
||||
|
||||
### 卡③(架构整改批)——15 行中 13 行通过,R2/R14 缺漏(见第一节)
|
||||
|
||||
通过行实证:V1(tree_rules_v11_test.gd:90 `_test_rule_key_params`,六键正反例+`_tree_rule_dict` 最小断言+越域判别词检——本轮绿);V3(effect_kind_retired_test 负面件双探针,真实退出码 1,manifest expect=1 negative=true 在位);V4(player_copy_sweep 两 toast 零字面量,静态判据+目检局限注记照卡);V5(logger 守卫五态);V6/V7(三参数表驱动产物可观测+ROW_KEYS 闭集越域拒);V8(edge=5/3 几何与真路径);V9(货架五件);V10(静态+同种子互异,与决定记录 #4 申报的可达判据逐字一致);V11/V12(表头三域+cap 必填 37 行在场);V13(驱动契约 10 checks:缺省确定性/provider 三形态/max_rejects/合步弃 dig);V15(远端 safe 形态+零盲挖)。R6/R13 静态判据复核:resolver 源读 MULT_MIN/MULT_MAX、_pick_token 源零 rank 字面量(match 表已删,grep 实证)。代码面抽查:EFFECT_KINDS 两名零残留、_kill_effects 改名无转发壳、_cp_domain 整函数退役、MAX_WIDTH 常量删净三消费全读表(决定记录 #2 实证)、spawn_edge 经 generate 直索引(决定记录 #3 实证)、main.gd 两 toast 读表插值(:633/:636 实证)。
|
||||
|
||||
V1 尾缀注记(不判红):〔架构整改 V1/V2/V14〕在测试代码内零命中,仅在 tests/README.md 能力行——卡③无卡①②式「尾缀全仓可 grep」红线,能力行即其定位面;但 V14 能力行指向不存在的函数,随缺漏 1 一并判红。
|
||||
|
||||
## 三、抽查跑批记录
|
||||
|
||||
命令形态:`"D:/code/godot/Godot_v4.7.2-stable_win64_console.exe" --headless --path game --script res://tests/unit/<路径>.gd`(退出码经无管道捕获)。
|
||||
|
||||
| 件 | 退出码 | 关键输出 |
|
||||
|---|---|---|
|
||||
| contracts/system_contracts_test | 0 | all green (50 checks);「个体隔离:A/B 各持一条〔个体化批 V1〕」「死亡即清:e1 桶清零〔V3〕」「首授快照〔断言补齐批 V5〕」均 PASS |
|
||||
| battle_settlement/damage_controller_test | 0 | all green (50 checks);「B 敌的削弱不进 A 敌的账〔个体化批 V6〕」「alert 各算各的〔V7〕」PASS |
|
||||
| battle_settlement/round_flow_skill_pool_test | 0 | all green (136 checks);「敌方增益技自体落点:施放者 output 池=蓄力幅度、他敌恒 0〔个体化批 V5〕」PASS |
|
||||
| presentation/battle_narrator_test | 0 | all green (22 checks);「A 有削弱 B 无 → 两卡投影各现各的〔个体化批 V8〕」PASS |
|
||||
| presentation/settings_store_test | 0 | all green (6 checks)(V6/V7/V8) |
|
||||
| battle_settlement/boss_gate_test | 0 | all green (4 checks)(V10) |
|
||||
| core/meta_progression_forge_test | 0 | all green (151 checks);「长剑三级购〔断言补齐批 V12〕」「散激活:商品购买价 ×80%」「聚:战斗掉落乘算 ×1.5」PASS |
|
||||
| data_config/forge_table_test | 0 | all green (42 checks)(V11+闭集 32 钉数) |
|
||||
| core/node_map_generator_test | 0 | all green (43 checks);「表值驱动:同种子产图逐位复现〔架构整改 V6〕」等 PASS |
|
||||
| data_config/table_structure_guard_test | 0 | all green (79 checks);「V7 表值行全过(35/50/4)」等 PASS |
|
||||
| core/level_shop_economy_test | 0 | all green (192 checks);「夹具 shelf_size=5 → 货架五件〔架构整改 V9〕」PASS |
|
||||
| battle_settlement/variant_placement_test | 0 | all green (51 checks);V10 静态+互异两判据 PASS |
|
||||
| core/board_generator_test | 0 | all green (16 checks);「V8 几何:edge=3 → spawn_cells 9 格(与退役常量同值——逐位回归)」PASS |
|
||||
| presentation/player_copy_sweep_test | 0 | all green (25 checks);两 toast 零字面量 PASS |
|
||||
| core/minesweeper_rules_test | 0 | all green (12 checks)——**12 项全为旧集,零 preview 断言执行**(缺漏 1 的运行时实证) |
|
||||
| core/battle_driver_drive_test | 0 | all green (10 checks);「缺省两参:真编排器同种子两跑事件流逐位〔架构整改 V13〕」等 PASS |
|
||||
| core/auto_player_deduce_test | 0 | all green (4 checks);「远端格入 safe 集(桥接 0 区域传播)〔架构整改 V15〕」PASS |
|
||||
| data_config/effect_kind_retired_test | **1**(负面件,符合 expect=1) | 「双探针均正确拒绝(甲案词表退役)〔架构整改 V3〕」 |
|
||||
| core/playtest_logger_guard_test | 0 | all green (5 checks);未注入空串/零文件、注入 8 放行、越域 33 拒 PASS |
|
||||
| core/tree_rules_v11_test | 0 | 「四键合成行零违例+聚散两键无行成立+反例被拒+六键参数域全过」 |
|
||||
| core/feat_vouchers_test | 0 | all green (49 checks)(R1 注入面回归) |
|
||||
|
||||
抽查密度:卡① 8 断言函数、卡② 14 函数、卡③ 12 段——均超每卡 3 条要求。run_all.gd manifest 本批 +6 行(卡③ 4 件+卡② 2 件,负面件 expect=1 negative=true 形态正确)。
|
||||
|
||||
## 四、测试削弱核查结论
|
||||
|
||||
**实质零削弱,申报面两处程序性缺项。** 删行全量对配结果(`git diff ab5d75a2..iter50 -- game/tests` 删行 17 条断言类逐条核对):
|
||||
|
||||
| 删改 | 归属 | 结论 |
|
||||
|---|---|---|
|
||||
| roll_multiplier armor_roll 三断言换代("e1" 键) | 卡①申报 1 | 通过——语义逐字保留,尾缀随原批 |
|
||||
| round_flow 衰减相位断言 | 卡①申报 2 | 通过——零改动即等价(diff 证实该区无删行) |
|
||||
| round_flow 排除表删 fx_streak_segments+注释删连珠矢 | 卡③申报 5 | 通过——段内序判据不动 |
|
||||
| adventure_feats :743 载荷删 overflow 键 | 卡③申报 4 | 通过——「斩首学者击杀揭示 1 格」逐字保留 |
|
||||
| board_gen_reward SPAWN_AREA_CELLS→spawn_edge² 三处 | 卡③申报 2 | 通过——cap 压线 9 语义不减(真表值 3²=9 推导) |
|
||||
| board_generator from_expr→edge² | 卡③申报 3 | 通过 |
|
||||
| level_shop :264 spend_discount==0.8 删 | 卡③申报 7 | 通过——但声明的承接件 V2 未落地(缺漏 2;实际承接=申报 8 改造断言) |
|
||||
| meta_forge :739-740 期望算式改 discount_pct 推导 | 卡③申报 8 | 通过——折后价期望逐位同值 |
|
||||
| adventure_feats rebuild []→{} ×30+meta_forge 3 处 | 卡③申报 9 | 通过 |
|
||||
| tree_rules_v11 夹具字面量→参数字典 | 卡③申报 1 | 通过——四键行数对照+validate 零违例结构不变 |
|
||||
| node_map_growth 夹具补三新键 | 卡③申报 6 | 通过——结构拦截与 fatal 断言零松动 |
|
||||
| **forge_table 闭集钉数 34→32**(`_test_effect_kinds_closed`) | **申报外** | **例外**——R3 摘名的必然连带(钉数断言按其自身注释「钉现行数」必须随词表换代),强度不减(仍捕获任何增删),但**未列入卡③申报 9 条**,实现报告仅作改动事实记录(第四节「EFFECT_KINDS 摘两名(34→32)」)未按削弱申报程序申报 |
|
||||
| system_contracts EC1/EC2/受理、damage_controller 池四断言、seal_polarity 侧汇总等签名适配 | 卡①②申报表外 | **例外(备案核对通过)**——apply_effect 增加 owner_key 必填参的编译级连带,删行全部原内容重挂(EC1/EC2/池值/ac 不入池/满层拒绝逐字保留,仅加 OWNER_HERO 显式参),实现报告决定记录 #7 事后备案「断言内容零改动」——对照卡①红线「静默放宽=判红」,此批无放宽,判例外不判红 |
|
||||
|
||||
## 五、内部字段直查受控例外核查
|
||||
|
||||
判据权威=test-conventions §8(直查仅限无公开可观测面可钉,对照表行须注明理由)。结论:**新增断言的判据面全部钉公开可观测出口,零「以直查代判据」;卡①「零直查行」声明在判据面意义上成立。** 逐点:
|
||||
|
||||
- 卡① V1-V4:全经容器公开 API;V6/V7 经 DamageController 公有算术面;V8 判据钉 presentation_snapshot() 公开出户(:657 成文出口),`_status_effects`/`_enemy_system` 仅作夹具布线(授予/取敌),沿两文件既有直查惯例(round_flow 基点已有 8 处 _enemy_system)。
|
||||
- 卡② V10 读实例化敌走 `oc._enemy_system`——实例化敌清单无公开面可钉,卡面判据绑定面文本「实例化敌人行键投影」即该理由的成文位置(判例边缘,登记不判红)。
|
||||
- 卡③对照表具名私有面(`_deduce`、`_tree_rule_dict`、`_validate_rule_key_params`)均为卡面点名的被测交付件本身,非绕行;V15 真板经 begin_battle+drive_round 真实装配(卡面括注 perfect_action 装配链,实现取板路径稍异——夹具布线白名单级)。
|
||||
- 两处次要注记:playtest_logger_guard 断言 `_path` 留空(内部读,与公开空串返回+盘上零文件两公开判据并存,非承重);meta_forge 夹具 `_add_keystone`(基点已有 10 处同款惯例,本批 +2)。
|
||||
|
||||
## 六、零行为改动面读数(卡③组 D/组 C)
|
||||
|
||||
- `grep -rn experiment_density game/ tools/`:唯一命中=`game/data/tables/board_gen.tres:415` 出处指针注释(卡面合法指针形态;行号 :415 对卡面 :414 漂 1 行,L2 级);`game/sim/experiment_density.gd` 及 .uid 确已删除;game/README.md 工具行零残留。**通过**。
|
||||
- `grep damage_probe game/tests/run_all.gd tools/run_all_gates.sh`:零命中;`game/sim/damage_probe.gd:2` 头注「诊断工具·非验收件——不出入任何闸」在位。**通过**。
|
||||
- gdstyle:`python tools/gdstyle_gate.py` → 「扫描面 158 个 .gd;命中 5 条,基线内 5 条,基线外新违规 0 条,较登记值恶化 0 条 / ok」,退出码 0。**通过**。
|
||||
- 实现报告第六节 9 条决定记录逐条过目:#1-#9 全数与代码实况一致(#9 明细行 pool_value 改动面在 diff 在案,未独立复跑验证,风险低)。
|
||||
|
||||
## 七、判定依据汇总
|
||||
|
||||
不通过的唯一直接依据=第一节缺漏清单三条,全部可由仓库证据复现:缺漏 1/2 的函数名在 `git log -S` 全史仅出现于写卡提交 a05fd7b8(卡片文本),实现三笔提交(e6584927/cd133932/a2886a53)均未落地对应测试件;缺漏 3 为报告第九节对同一事实的失实陈述。卡③第 8 节末自我约束「独立验收审计未过不合并」,本报告判不通过即触发该条:R14 需补 `_test_preview_reveal_readonly`(判据按对照表行:F2 同口径差集/零状态写入/零事件/封印两形态);R2 需补具名承接件或由写卡段改表(实现批禁写 README,现状属名实断裂应按 L3 呈报回表);补齐后重跑受影响域闸方可合并。其余各面(卡①②全部、卡③ 13/15 行、削弱实质、直查纪律、零行为面、gdstyle)独立核验为通过。
|
||||
|
||||
---
|
||||
|
||||
@@ -46,3 +168,9 @@
|
||||
## 终判(发起会话归档注记)
|
||||
|
||||
**通过**。复验遗留 L2 项(第十节引用的审计报告归档路径未落盘)以本文件落盘闭合——引用自此成立。随批合并(合回后 post-merge 钩子自动跑 CI 全量域闸,红则修复追绿)。
|
||||
|
||||
---
|
||||
|
||||
## 终判(发起会话归档注记)
|
||||
|
||||
**通过**。复验遗留 L2 项(首轮审计报告归档路径未落盘)以本文件落盘闭合——引用自此成立。随批合并(合回后 post-merge 钩子自动跑 CI 全量域闸,红则修复追绿)。
|
||||
Reference in new issue
Block a user