Files
gplan-2/game
..
追红(远端 run 95 两条红转绿·修复车道): 红因1=判定级——能力审计 G 道「oracle 注记函数 401·红项 1」, 红项原文「game/probe/probe_coverage_recorder.gd:201 验证函数 dump_js 缺 # oracle 注记」(dump_js 体内三处 push_error( 命中 capability_audit.py:341 VERDICT_RE → 属须注记的验证函数, :386 判红); 上一批「判据出处注记 402 函数全库铺开」的跑绿读数靠主工作区一行未提交注记撑过, 未随批 commit, 故本地 strict 绿而远端干净检出必红; 本批在该文件补同一行注记(放法照仓内既有形态——函数定义行下一行顶格, 样本 camp_scene_layout_test.gd:13/:18, 指针 design/engineering/test-conventions.md:30 与主区工作稿逐字节同, cmp 已核)。红因2=非判定级但在日志里成串报红——tools 四处五 sites 用 Path.write_text(..., newline="\n"), 该关键字 Python 3.13+ 才有(本机 3.13.14 绿), Mac runner 的 python3 更老 → TypeError("write_text() got an unexpected keyword argument 'newline'") → 六层明细回执在远端一件未落盘, run 93/95 日志同报此错(挂点按设计是观测件不翻闸判, 故它不是 run 95 的失败主因, 但等于覆盖总览面板的六层明细一直是空的); 五处改 open(str(p), "w", encoding="utf-8", newline="\n") 写法(newline 形参 builtin open 自 3.0 起有, LF 纪律不丢), 覆盖面=coverage_enum.py:148/coverage_receipts.py:160/:179/extract_capability_list.py:104/extract_checks.py:588; 注: tools/t17_fanout2_rebuild.py:140 与 t5_build_templates.py:237 本来就是 open(..., newline=) 形态, 不属坏件未动。本步凭据(全部区内实跑): ①修复前在干净检出复现红——capability_audit --strict 出「401 注记·红项 1」并打出上述红项原文; ②修复后同件 exit=0「402 注记·红项 0」; ③四件 py_compile OK 且 grep 全仓 write_text(.*newline= 零残留; ④runner 语义实证——把 Path.write_text 垫片成 3.12 行为(newline 一律 TypeError)再跑 coverage_receipts.main(), 六层与 probe_manifest 全部正常落盘、无一行「[receipts] 红」, 产物字节核对 gate_probe/gate_render/gate_smoke.js 均 CRLF=0 LF=14(行尾纪律未破); ⑤run_all_gates --docs 验收通过无新增红(基线 9e81408e)。引擎层本地未跑: 区内 --premerge 被素材齐盘预检拦在冷检出态(缺 .godot/uid_cache.bin 与字体 .import 边车, 处置需从主区拷素材再 --editor --quit 刷导入), 本批五处改动零游戏行为面, 引擎全套件由主区合回时的 pre-merge-commit 前置检查跑, 全量档归合回后远端 CI
2026-11-06 23:47:28 +08:00

Dungeon Sweeper · 垂直切片(v2:第一关完整关卡)

// VERTICAL SLICE - NOT FOR PRODUCTION // Validation Question(v2,2026-09-11):线性第一关(战×2→道具→战×2→恢复→Boss)能否承载 // "数值提升→冒险成功期望改善"的 Roguelike 元进度验证——基线属性应该难到打不过、天赋数值提升把 // 冒险成功期望拉回可玩带,且这条曲线能用数值调整板 + 批量模拟测量出来 // (冒险成功攻击期望 / 败北血量数学期望);v1 的单战斗循环问题(逐行归因 P2 / Core headless 可跑)。 // Date: 2026-09-11(v2 关卡扩展)· 引擎 Godot 4.7.2 · 本目录仅作设计验证参考,禁止 import 进生产代码

运行

  1. 用 Godot 4.7.2 打开本目录(含 project.godot 的文件夹)
  2. 按 F5 运行(主场景 presentation/main.tscn)
  3. 主入口:▶ 开始冒险(三关连探:地精洞窟 → 幽暗地域 → 灰矮人矿城)——一条命走完三关(生命/GP/加算区跨关同账、非末关的关卡完成发大奖励〔上限提升+血回满+钥石〕、任意战斗倒下冒险终、结算屏出冒险摘要五件事;选路停点可「放弃冒险」(同失败结算));首关节点链:战→战→赏→战→战→疗→王。唯一试玩入口 = 完整冒险——单关测试直入口(L2/L3)已退役(2026-09-23 用户拍板)
  4. 调试浮窗(功能面:攻击/生命百分比加成〔模拟天赋树解锁〕+ 批量模拟〔输出关卡完成率/承伤期望/败北节点分布〕+ 两层调试入口)——发布态入口恒隐(调试角标不显示、浮窗无 UI 开启口;开发期临时启用改 _debug_entry 缺省本地不提交),浮窗体系整体退役属发布工程批

headless 冒烟(断言计数随断言面增减浮动,以当次跑测打印为准,含关卡线性推进/满配冒险成功/裸装败北/回放确定性):

Godot_v4.7.2-stable_win64_console.exe --headless --path . --script res://probe/smoke_all.gd

场景级 UI 探针(项目运行模式实例化 main.tscn 驱动第一关,断言棋盘真实渲染——D1 教训"呈现层零测试承载"的原型兑现):

Godot_v4.7.2-stable_win64_console.exe --headless --path . res://probe/ui_probe.tscn

调试浮窗场景探针(打开可见性〔浮于菜单之上,开始层不隐藏〕/滑条联动/应用写表/重置/批量模拟全链路):

Godot_v4.7.2-stable_win64_console.exe --headless --path . res://probe/ui_tune_probe.tscn

其余八场景探针(ui_click_probe 行为链 / ui_input_probe 输入合成 / ui_struct_probe 全屏结构 / ui_contrast_probe 对比度 / ui_probe·ui_tune_probe 调参面板 / t17_defer_probe 结算演播延迟链回归 / shot_probe·fx_probe·fx_shot_probe·board_shot_probe 画面与特效采样;全部由 tools/probe_gate.sh 与 tools/render_gate.sh 调度,闸清单见 tools/run_all_gates.sh)+ 板图校准工具 sim/calibrate_boards.gd(board_calibration.csv 重跑入口,--script 运行):

全冒险期望扫描(零加成三关连探批量——关卡完成率/止步分布/败退节点;调参期难度读数一律走全冒险口径):

Godot_v4.7.2-stable_win64_console.exe --headless --path . --script res://sim/adventure_monte_carlo.gd -- [N] [seed0]

日志合规(2026-09-12 用户要求):任何模拟运行与真人试玩均落全量 JSONL(user://logs/)——逐操作(op/cell/accepted/round)、逐结算明细行、轮次状态快照、battle_end、level_end。模拟(verifier/adventure_monte_carlo / 调试浮窗批量模拟)一文件多局,run 行携带种子/档位切分局次。

试玩画像口径(2026-09-19 用户拍板固化——全项目试玩/扫描/面板模拟一律只用以下两档,随机策略口径退役):policy="normal" = 普通画像·基础定式(单数字满足规则——满足即标/满足即开,无处可推盲挖边界格、不刷新;教学后正常玩家的下限近似);policy="perfect" = 完美画像(single+subset 全推理零盲挖/卡死刷新——技能上界仪)。实现单一出口 = sim/auto_player.gd(novice_action / perfect_action)经 sim/level_autoplay.gd,调试浮窗批量模拟与各扫描工具自动同口径;战斗层冒烟夹具与调试转储的 choose_dig 直调是机制测试夹具、不承载画像语义。分级依据见 auto_player.gd 普通策略档节。

败退归因走 balance_verifier 冒险段(层/节点/敌人人读归因)。 战斗级工具(v1 遗产):dump_battle.gd(结算流水)/ monte_carlo.gd(战斗期望)。

范围(v1 范围 + v2 追加,用户 2026-09-10/11 确认)

  • v1 在范围内:D2(10 表 + ConfigDB + RngService)· A1(single_subset 求解器 + 双判据验收)· A2 · A3(AP8/RAP)· A4(迷雾,L2)· B1(七段结算 + 13 类行协议 + 高光双落)· B2(grub/ambusher/伏击池 cap4)· B3(四行状态容器)· B4(install 预分配/F5 保底/道具窗口)· D1-lite 程序化呈现
  • v2 追加:LevelTable(线性节点链数据表)· C1-lite 关卡推进器 level_runner.gd(关卡域生命周期:共享 B4 关内延续 + HP 跨战斗携带 + 奖励/恢复节点兑付 + 关卡末清库)· Boss 遭遇行(Dmax=4)· 节点奖励 API(B4 grant_node_active)· 测试用角色数值调整板(atk%/hp% 覆盖 + 批量模拟,模拟天赋树——正式侧归 C4)
  • 裁剪不变:A5 / C1 路径分支选择(用户拍板线性)· C2–C4 / B5 战斗动画 / D3–D6 / A1 黄金向量与 F4 批量工具 / gdUnit · 注:标错惩罚(原 A2 OQ1)已实装(标空封印三选一确定性反噬:暴走 / 伏击 +2 层 / 失衡,坐标×板序号派生、不走随机流),不再属裁剪项

历次批次的改动明细与决策过程见 git 提交史(git log -- game/README.md 及各批提交信息),本文只保留运行说明与范围。