From 5774b3517efeb06d402a08ef7d392c75713c311e Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Thu, 8 Oct 2026 07:28:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E5=8D=A1=E2=91=A0?= =?UTF-8?q?=E5=87=BA=E5=8F=A3=E6=8A=A5=E5=91=8A=E2=80=94=E2=80=94S1=20?= =?UTF-8?q?=E5=81=9C=E6=9C=BA=E7=82=B9=E7=89=88=E8=90=BD=20design/qa/?= =?UTF-8?q?=EF=BC=88S1=20=E5=85=A8=E6=A1=88=E4=B8=89=E6=9D=A1=E9=94=9A?= =?UTF-8?q?=E6=BC=82=E7=A7=BB+=E5=BB=BA=E8=AE=AE=E6=A1=88/T0-T2=20?= =?UTF-8?q?=E4=BA=A7=E7=89=A9=E5=AF=B9=E7=85=A7/=E9=97=B8=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E6=94=B9=E5=89=8D=E6=94=B9=E5=90=8E/=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E4=BF=AE=E6=AD=A3=E4=B8=A4=E8=AF=BE/golden=20S2=20?= =?UTF-8?q?=E6=B3=A8=E8=AE=B0/=E6=8F=90=E4=BA=A4=E6=B8=85=E5=8D=95/T3-T6?= =?UTF-8?q?=20=E7=A7=BB=E4=BA=A4=E4=B8=8E=E7=BB=AD=E8=B7=91=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iter19-verify-exit-report-2026-10-08.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 design/qa/iter19-verify-exit-report-2026-10-08.md diff --git a/design/qa/iter19-verify-exit-report-2026-10-08.md b/design/qa/iter19-verify-exit-report-2026-10-08.md new file mode 100644 index 00000000..aaf96cce --- /dev/null +++ b/design/qa/iter19-verify-exit-report-2026-10-08.md @@ -0,0 +1,98 @@ +# 迭代 19 卡①「自动化验收补齐批」出口报告——**S1 停机点版**(2026-10-08) + +- worktree:`D:\code\g-plan2-iter19-verify`(分支 `iter19-verify-20261008`,基点 9160942 = master 顶部含卡⓪落籍) +- 台账号:**399**(记账前以 `git -C D:/code/g-plan2 show master:active.md` 查撞——master 现存最高 402 系卡③CI 预接线已落籍,399/400/401 空闲;本卡取 399,未撞未顺延) +- MC/verifier:零跑(本迭代零跑+静态论证口径,全程未触) +- **停机点命中:S1(render_gate 首跑存量 FAIL)——T3-T6 未执行,处置权归用户**(任务书 §六 S1 + goal 停机规则「合法停机=立即停,全案报告返回」) + +--- + +## 1. 停机点全案(S1)——发现清单+建议案 + +### 首跑判定过程(两跑口径) + +首跑(原始)暴露 12 条红,其中 **9 条系测量失真**(见 §3 环境修正),修正后**真·首跑判定**存量红 **3 条**,全部为 shot_checker B 类对比度断言的取样锚漂移——呈现层无缺陷,是断言锚/载体过时: + +| # | checker FAIL 行 | 根因考证 | 建议案 | +|---|---|---|---| +| 1 | `菜单·副标题: meta 几何缺失` | 锚文本「改造批」系迭代 9 建闸时旧文案;现行副标题=「扫雷的因 · 逐行兑现的果」(game/presentation/ui_assembler.gd:132) | 锚改指现行副标题(shot_probe.gd meta 行一词改动),断言保留 | +| 2 | `菜单·帮助文: meta 几何缺失` | 断言载体=玩法速览牌,**2026-10-06 用户令退役**(「界面禁玩法文字墙」,ui_assembler.gd:100-101 注记在案),现行菜单面无任何「玩法:」标签 | 本断言腿退役(shot_probe meta 键+shot_checker 菜单帮助文段同撤),不重锚;除非用户另指菜单面新文字锚 | +| 3 | `战斗·明细带提示: meta 几何缺失` | 旧文案标签「结算明细」不存在;现行战斗屏明细带头提示=「上轮摘要(回看归「生涯」)」(battle_log_view.gd:47) | 锚改指「上轮摘要」(shot_probe.gd meta 行一词改动),断言保留 | + +**全过面实证**(同跑取证):A 类骨架七屏全过(尺寸 1280x800/std≥8/唯一色≥64,最低 career std=21.8 colors=794);C 类明度三档带过(205>88>55);B/D 类 hero 面板过(WCAG=6.14、纹理幅度=0.0——原始首跑的 T-FAIL 54.7 系窗口失真取样错位,修正后消失)。fx/board 取证段与 golden 段全绿(§4)。 + +**已登记**:06-待办清单条目级(本 worktree 87f749d)——三条各附现状/建议案/归属;三案均零呈现层代码改动(只动探针锚/checker 断言腿)。 + +**裁后路径建议**:三案均属 shot_checker 断言面微批(半小时级)——用户逐条裁后可本卡续跑:锚改/腿退役 → render_gate 全绿 → 顺次执行 T3-T6(无需重开任务书,T3-T6 与 S1 三件正交)。 + +--- + +## 2. 逐件产物(file 级) + +| 任务卡 | 产物 | 状态 | +|---|---|---| +| T0 | 基线复读记档(§4 闸数字)+ git status 归属核对(主区在飞脏文件 15+ 只标旗未碰)+ 环境修复一课(§3) | ✅ | +| T1 | `tools/render_gate.sh`(新增)——窗口化渲染闸:timeout 守卫/孤儿预清后清/退出码闸/残留批末闸骨架复用 probe_gate;段=①shot_probe 七屏→shot_checker A-D ②fx_shot+board_shot 取证段(失败=闸红,Q7)③golden 逐像素 ④1280 单档+1920 注记(Q4);过程截图 mktemp 即弃禁入 git(Q2) | ✅ | +| T1 | `game/smoke/shot_probe.gd` 扩屏四屏→七屏:+设置面(settingsbtn 真实信号路径)/生涯页(careerbtn 同 ui_struct_probe 入口链)/暂停层(战斗屏暂停角标真实信号路径,继续钮关层);新 meta 键 settings_title/career_title/pause_title;最小自检 4→7 件;商店房考证结论注记入头注(白名单③:真实路径必经 L1 打穿进 L2 商店节点选路,低代价确定性到达不成立,合成投喂破坏真实路径口径——不纳屏留 B 批) | ✅ | +| T1 | `game/smoke/fx_shot_probe.gd`:隔离档即时 apply(§3 环境修正,一行+注记) | ✅ | +| T1 | `game/smoke/board_shot_probe.gd` 取证三件套:headless fail-fast 护栏/空纹理取证 fail(Q7)/board_meta.json 取样坐标落盘(golden 裁剪坐标源,禁硬编码像素) | ✅ | +| T2 | `game/tests/golden/board_L1_dungeon.png` `board_L2_underdark.png` `board_L3_deep_underdark.png`(900x760 裁剪帧,**素材齐盘态生成**——字体/瓦片/英雄/旗纹理全在盘实测+成图纹理目验,非字形回退态;换代触发原因已在提交说明强制记载) | ✅ | +| T2 | `tools/golden_board_crop.py`(新增)——board_meta.json 取样坐标裁剪(越界收拢/退化矩形报错) | ✅ | +| T2 | `tools/golden_baseline_refresh.sh`(新增)——基线换代辅助(素材守卫缺位拒跑=S3 口径;窗口化抓帧→裁剪→覆盖入库) | ✅ | +| T2 | golden_compare.py 接线进 render_gate(容差 provisional:差≤16/changed≤2%) | ✅ | +| S1 | `design/gdd/06-待办清单.md` 顶部新条目(三件登记+建议案) | ✅ | +| T3 | probe_gate `--full` 段+头注释改写+CLAUDE.md loop 重闸扩容 | ❌ 未执行 | +| T4 | config_fatal_probe 退役+数据配置.md:205 改指+damage_probe 标注+引用清查 | ❌ 未执行 | +| T5 | ui_layout_probe 两档断言+skill_rhythm/board_stat 标注+tests/README 修正+integration 删壳 | ❌ 未执行 | +| T6 | 重闸全绿收口+主区合并复跑+07⑮ 半核销注记+roadmap 换代 | ❌ 未执行(07⑮ 机器补跑半的**实质履行面**已部分就位:渲染闸三件已入自动闸并实测全绿——核销注记仍待 T6 随批落文) | + +--- + +## 3. 环境修正一课(worktree 拷导入缓存,零运行时 diff) + +两件环境性失真,均探针侧/导入缓存侧修正,运行时代码零触碰: + +1. **`*.import` 边车全局 gitignore**——fresh worktree 从主区拷素材时须含 `game/assets/` 全树 .import(本次漏 ui/icons 三枚,ui_probe 状态图标纹理 ResourceLoader 失载=三断言假红;补拷后 PASS)。后续 worktree 卡(卡④提灯等)开工拷缓存时注意。 +2. **真实档 fullscreen 态污染抓帧**——main.tscn 装配按真实设置恢复窗口态(本机真实档 fullscreen=true → 窗口全屏,视口纹理 2304x1440≠1280 基准档,checker 尺寸/取样全盘失真=原始首跑 9 条失真红的来源)。shot_probe/fx_shot_probe 隔离档换注后即时 `settings_store.apply()`(隔离档出厂默认=窗口化 1280x800),恢复探针设计前提。shot_probe 原始首跑即已带 1.8 倍失真——「五闸从未全量跑过」的实证注脚。 + +## 4. 闸数字(改前/改后全列) + +| 闸 | 基线(T0,基点 9160942 本 worktree 实测) | 批末现状(S1 停机态) | +|---|---|---| +| 冒烟 run_smoke | 840 项 0 失败三闸过 | 同左(未再触;探针改动不涉 smoke 面) | +| 单元 run_all | 17 套件全绿 | 同左 | +| probe_gate 默认段 | 全绿(残留 0) | 同左 | +| probe_gate --click | 全绿(残留 0) | 同左 | +| 四探针单测 | ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 全 PASS(本机计时 12/16/19/11s;任务书记录 17.4/49.6/63.0/21.9s 系 2026-10-07 主区口径,差异=机器负载无关断言) | 同左(--full 收编属 T3 未做) | +| **render_gate(新增)** | —(不存在) | shot 段红(S1 三条锚漂移)/fx 取证绿(7 帧)/board 取证绿(3 帧+meta)/golden 绿(0.00%/0.00%/0.89%)/残留 0 | +| 熵增/doc 三闸/MC | 未跑(T6 收口件;MC=迭代零跑口径) | 未跑 | + +**golden 稳定性观察(S2 前置注记)**:L1/L2 两跑 0.00%;L3 两跑 0.89%——同种子下棋盘数字/布局确定,差异源=收尾帧动画相位(墙钟近似),在 2% provisional 容差带内。若未来跨平台/字体渲染变化推高 changed,按 S2 呈报定值;亦可考究抓帧前动画静置。 + +## 5. 提交清单(hash+message 摘要) + +| hash | message 摘要 | +|---|---| +| 8246790 | 修复: 卡①T1——渲染闸 tools/render_gate.sh 落码+shot_probe 扩屏七屏+board_shot_probe 取证三件套+两辅助件+隔离档即时 apply 修正 | +| 3249697 | 修复: 卡①T2——棋盘 golden 三张基线入库(换代触发原因:首次建基,素材齐盘态 2026-10-08 抓帧) | +| 87f749d | 修复: 卡①S1 停机点——render_gate 首跑存量红三件登记 06 条目级 | +| fe124a4 | 修复: 卡①台账记账399 | +| (本笔) | 出口报告落 design/qa/ | + +## 6. 契约自检 + +- 运行时代码零 diff:改动面=game/smoke/ 探针三件+tools/ 三件+game/tests/golden/ 基线+文档——契约红线内 ✅(`git diff 9160942..HEAD --stat` 可复核,无 core/presentation/data 触碰) +- 轻闸默认段零删减:probe_gate.sh 本批零触碰(T3 未做)✅ +- golden 基线边界:只入 game/tests/golden/、素材齐盘态生成、换代触发原因已记载 ✅ +- 过程产物即弃:全部截图落 mktemp,trap 即弃,git 状态零 PNG 残留 ✅ +- 在飞避让:主区 15+ 脏文件零触碰;roadmap.md 主区现非脏(卡⓪落籍时已提交),本批 roadmap 换代留 T6 未做 ✅ +- 改纪律落文:T3 未做,probe_gate 头注释/CLAUDE.md 零触碰(新旧口径并存态未产生——新闸 render_gate 已在库但重闸定义扩容待 T3 同步)⚠️ 留 T6 复核 + +## 7. 未决移交项 + +1. **S1 三件逐条裁**(06 在册)——裁后本卡续跑 T3-T6(建议路径:锚两改一撤 → render_gate 绿 → T3 收编+重闸扩容 → T4 退役 → T5 账务 → T6 收口+主区合并复跑)。 +2. T3-T6 全部任务面(见任务书 T3-T6 与上表)——均未动工,无半成品。 +3. 主区合并:未发生(停机态不合并);本分支 5 提交待裁后续跑完成后一并走合并复跑。 +4. 商店房截图纳屏:留 B 批(考证结论在 shot_probe 头注+白名单③授权口径)。 +5. 1920 档:单档 1280 已按 Q4 落地,1920 注记在 render_gate 头注;布局机检面归 T5 ui_layout 两档断言(未做)。 +6. 卡③CI 已落籍 master(台账 402)——其 `--full` 段引用与本卡 T3 的 probe_gate --full 落码衔接,续跑时注意 master 基点换代(本分支基点 9160942,卡③合并先于本卡,续跑前建议先 rebase/merge master 取 402 后基点)。