diff --git a/game/tests/README.md b/game/tests/README.md index 282c921e..8e63de73 100644 --- a/game/tests/README.md +++ b/game/tests/README.md @@ -80,6 +80,33 @@ timeout 120s godot --headless --script tests/run_all.gd | UI | Manual walkthrough OR interaction test(场景探针为首选) | `tests/evidence/` | | Config/Data | Smoke check pass | `design/qa/` | +## game/smoke/ 游离脚本台账(迭代 29 T7 逐个定性) + +`game/smoke/` 有 29 个 `.gd`,其中 14 个在闸(探针有 `.tscn` 宿主、被 `probe_gate.sh`/`run_smoke.py` 调用), +其余 15 个**不带 `.tscn`、不入任何闸**——它们是手动入口的测量/诊断件。逐个定性如下, +判据 = 头注自陈用途 + 有无外部引用(工具脚本/产品码/文档)。**存疑一律按在役登记并标注**(不退役)。 + +| 脚本 | 定性 | 用途与触发方式 | 结果由谁判 | +|---|---|---|---| +| `adventure_monte_carlo.gd` | **在役**(`CLAUDE.md` 在册入口) | 全冒险期望 MC;`tools/parity_anchor.py` 的对拍载体 | 工具脚本逐位比对 | +| `verifier_batch.gd` | **在役**(`CLAUDE.md` 在册入口) | `tools/balance_verifier.py` 的采集端(数值验证) | 报告落 `design/qa/` | +| `reward_expectation.gd` | **在役**(`CLAUDE.md` 在册入口) | 奖励期望测量(非封锁格分布/资源类型频次) | 人工读 stdout | +| `monte_carlo.gd` | 在役 | 战斗期望 MC(胜轮数/承伤/清图/开格分布) | 人工读 stdout | +| `auto_player.gd` | 在役(库件) | 自动玩家策略单一实现——被 `battle_driver` preload | 宿主脚本 | +| `battle_driver.gd` | 在役(库件) | 战斗驱动;被 `damage_probe` preload | 宿主脚本 | +| `level_autoplay.gd` | 在役(库件) | 被 `presentation/tune_sim_controller.gd` load | 宿主脚本 | +| `board_stat_probe.gd` | 在役 | `tools/clear_dominance_audit.py` 的取数端 | 工具脚本 | +| `calibrate_boards.gd` | 在役 | 生成器真值分母;`sim-data/analyze.py` 引用 | 工具脚本 | +| `damage_probe.gd` | 在役(诊断件) | 零承伤根因分割探针(头注自陈:非验收件·不入闸) | 人工读 stdout | +| `defense_scan.gd` | 在役(诊断件) | AC 叠层减伤读数分割(高 AC 轮 vs 基线轮) | 人工读 stdout | +| `skill_rhythm_probe.gd` | 在役(分析工具) | 技能池节奏定位(表侧池快照 + 摇号份额) | 人工读 stdout | +| `rhythm_batch.gd` | 在役(批量采集) | 技能池节奏批量读数(06 在册项的机器半边) | 人工/工具 | +| `dump_battle.gd` | **在役·一次性** | 打印一场完整战斗的步骤流与棋盘摘要(肉眼验收归因质量) | 人工(用完即止) | +| `experiment_density.gd` | **在役·一次性** | 不同 mine_density 下的推理率/残余挖掘量取数(历史调参用) | 人工(用完即止) | + +> **纪律**:本表是这些件的唯一在册处。新增手动测量脚本必须同批登记(用途 + 触发方式 + 结果由谁判); +> 退役走 `design/dev/doc-conventions.md` 第 10 节退役规则,禁止「没看见=死件」式清理。 + ## Static Scan(提交前本地跑) `tests/static_scan.sh` 实现静态扫描域 S1–S8 的可执行子集;规则全集与动机见 diff --git a/game/tests/golden/README.md b/game/tests/golden/README.md new file mode 100644 index 00000000..9988a44c --- /dev/null +++ b/game/tests/golden/README.md @@ -0,0 +1,20 @@ +# 视觉 golden 基线(渲染闸的比对基准) + +四张基线:棋盘三图(`board_L1_dungeon` / `board_L2_underdark` / `board_L3_deep_underdark`, +裁剪区 900×760)+ 启动态菜单(`menu_boot`,全屏)。比对判据与工具见 `tools/golden_compare.py` +(逐像素灰度差 >16 的像素占比 ≤2%)。 + +## 时效判定纪律(迭代 29 T7 立) + +基线冻结于 2026-09-30(v3.5 视觉落码后)。**判定先于动作**:每代换代面(视觉/素材/布局改动) +跑批时先跑一次渲染闸看差异落不落在裁剪区与容差内—— + +- **判有效**(changed 远低于 2% 阈值):基线**留在位并在此加注一次判定记录**,不得顺手重制; +- **判失效**(changed 超阈值或换代面落在裁剪区外):按迭代 26 T6 先例**显式重制 + 呈报 + 复闸**, + 禁止先动后判、禁止用「重制一下就绿了」掩盖真实视觉回归。 + +## 判定记录 + +- 2026-10-16(迭代 29 T7):**判有效**。三代换代面(棋盘三图 + 启动态菜单)实测 + changed = 0.00% / 0.00% / 0.00% / 0.15%,均远低于 2% 阈值 ⇒ 基线留在位,不重制。 + (本批零视觉改动,判定属常规复核。)