diff --git a/active.md b/active.md index 297faa6e..7b36eabb 100644 --- a/active.md +++ b/active.md @@ -909,5 +909,6 @@ 399. **迭代 19 卡①自动化验收补齐批——T0-T2 落地+S1 停机点命中(2026-10-08,裁决依据=卡①任务书 v1.1 待裁点 0 项〔P1-P5+拷打轮一 Q1-Q8 全裁〕;worktree g-plan2-iter19-verify 分支 iter19-verify-20261008 基点 9160942;本批零 MC 零 verifier 符合迭代口径)**:**T0 基线复读全绿定档**(最终环境实测:冒烟 840 项 0 失败+run_all 17 套件全绿+probe_gate 默认段/--click 全绿+四探针 ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 全 PASS;主区在飞脏文件 15+ 只标旗未碰;**worktree 拷导入缓存教训一条在案——`*.import` 边车全局 gitignore,拷主区素材须含 game/assets 全树 .import 含 ui/icons,缺则状态图标纹理 ResourceLoader 失载 ui_probe 三断言环境性假红**)。**T1 渲染闸落码**=tools/render_gate.sh(骨架复用 probe_gate:timeout 守卫/孤儿预清后清/退出码闸/残留批末闸;段=①shot_probe 七屏→shot_checker A-D 自动判定②fx_shot+board_shot 取证段失败=闸红〔Q7〕③golden 逐像素④1280 单档 1920 注记〔Q4〕;过程截图 mktemp 即弃禁入 git〔Q2〕)+shot_probe 扩屏四屏→七屏(设置面/生涯页/暂停层真实信号路径;商店房考证=真实路径必经 L1 打穿进 L2 商店节点选路、低代价确定性到达不成立、合成投喂破坏真实路径口径——注记留 B 批,代拍板白名单③)+board_shot_probe 取证三件套(headless 护栏/空纹理 fail/board_meta.json 取样坐标落盘)+golden_board_crop.py/golden_baseline_refresh.sh 两辅助件+**隔离档即时 apply 修正**(main 装配按真实设置恢复窗口态——本机真实档 fullscreen=true 时视口纹理 2304x1440≠1280 基准档 checker 全盘失真;探针侧 apply 隔离档出厂默认恢复窗口化设计前提,零运行时 diff)。**T2 黄金图基线入库**=game/tests/golden/ 三张(L1/L2/L3 素材齐盘态 2026-10-08 窗口化抓帧 900x760 裁剪帧——非字形回退态 S3 前提自证;换代触发原因提交说明强制记载;容差 provisional 差≤16/changed≤2%)+golden_compare 接线进 render_gate,首对比 0.00%/0.00%/0.89% 全过(L3 0.89% 系动画相位墙钟差,容差内,S2 观察项在出口报告注记)。**S1 停机点命中**=render_gate 首跑存量红三件全为 shot_checker B 类对比度断言取样锚漂移(①菜单副标题锚「改造批」→现行「扫雷的因 · 逐行兑现的果」②菜单帮助文锚「玩法:」载体=玩法速览牌 2026-10-06 用户令退役 ③战斗明细提示锚「结算明细」→现行「上轮摘要(回看归「生涯」)」),A 骨架七屏/C 明度三档/D 纹理+hero 面板 B 类全过实证在案;三件已**登记 06 条目级**(各附建议案、处置权归用户),render_gate 裁前保持红=闸语义正确;**T3-T6 未执行**(收编/--full/重闸扩容/退役件/ui_layout 两档/tests README 漂移/integration 删壳/07⑮ 注记/roadmap 换代全在册待用户裁后续跑)。出口报告=design/qa/iter19-verify-exit-report-2026-10-08.md;提交三笔 8246790(T1)/3249697(T2)/87f749d(S1 登记 06)+本笔(台账记账)。 +400. **迭代 19 卡①自动化验收补齐批——锚清障续接完工+T3-T6 全落+S2 停机点命中与根因闭环(2026-10-08,裁决依据=S1 三件用户裁甲清障〔06 在册〕+卡①任务书 v1.1 T3-T6;接续前手 T0-T2 段〔台账 399〕,同 worktree 同分支)**:**锚清障三件续接落籍**(前手中断遗作两文件审验全数成立零补刀——①菜单副标题锚改认现行「扫雷的因 · 逐行兑现的果」逐字子串全工程唯一命中②战斗明细带提示锚改认现行「上轮摘要(回看归「生涯」)」唯一命中零碰撞③菜单帮助文腿三处同撤不重锚;提交 a623ec3)。**S2 停机点命中与闭环**=清障后 render_gate 首跑 golden L2_underdark 2.53%>2% 越限,停机诊断实证波动性越限(L2 四跑 0.00/2.53/2.29/1.17%)根因=board_view rebuild 入场涟漪动画(最远格 ≈0.56s)未完即抓帧(原制 6 process_frame≈0.1s 恒捕中途态、逐跑帧时序抖动);修复=抓帧前 create_timer(1.2)s 时间制锚定完结态(探针侧零运行时 diff)+golden 三张基线换代(S3 素材守卫/Q2 临时区全随、触发原因提交说明强制记载),换代后三连跑全 0.00%+render_gate 全绿 EXIT=0,**容差 2%/16 用户冻结口径未动**(提交 3317076)。**T3 探针收编**=probe_gate --full 段四探针(ui_probe/ui_tune_probe/t17_defer_probe/fx_probe,timeout 120=2-7×余量)+头注「渲染闸归真人目检」纪律句删除改写(2026-10-07 用户授权)+默认段零删减;ui_layout_probe 补 1280/1920 两档最小布局断言(三区互斥不越界/board_view 含于 D 区/1920 档钉分辨率案甲构图恒等;首跑 PASS;闸归属归卡③裁点②候裁)(提交 b523f7d)。**T3/T4 退役与标注**=config_fatal_probe 删除(与 run_all config_db_fatal_oob_test 断言面重复还账)+数据配置.md:205 指路句连带改指(v0.4 版本史行历史记载不动)+damage_probe「诊断工具·非验收件」+skill_rhythm/board_stat「分析工具·非验收件」+引用零残留(提交 b3404e8)。**T4 账务**=tests/README 十五→18 套(卡④ fog_lantern_wiring_test 注名,本分支基点早于卡④合并实测 17 套全绿)+「752+」改双口径(运行时 840 项〔master 合并卡②④后 846〕/静态 check( 764 处)+integration 空壳删章程并入(提交 fcb91ce)。**T5 纪律落文**=CLAUDE.md 分级周期口径重闸扩容(自此批末重闸=轻闸+--click+--full+render_gate+run_all+doc 三闸/熵增;真人目检仍归用户;MC 仍按触发细则;落点=硬性红线内该句=任务书所称 loop §5)(提交 57a7919)。**T6 收口**=07⑮ 机器补跑半核销注记(真人目检半不销号)+熵增闸图像白名单收编 game/tests/golden/(T2 落库漏改致红,同批修订 commit 留痕)+批末重闸全跑全绿(冒烟 840 项 0 失败/run_all 17 套全绿/probe_gate 默认+--click+--full 三形态全绿/render_gate 全绿;doc_link_audit/doc_term_audit 绿)+roadmap 行换代归主控(分支落后多合并不追)。**存量红呈报不代修**:熵增闸 design/diagrams 越界(基点 00712d5 既有,脚本自文须用户拍板——甲入白名单/乙迁出)+gdd_lint 06/07 两文件 R3/R7 违例(基点既有归因在案,本批零新增)。出口报告完工终版=design/qa/iter19-verify-exit-report-2026-10-08.md(S1/S2 两停机点全案+闸数字改前改后全列);提交七笔 a623ec3/3317076/b523f7d/b3404e8/fcb91ce/57a7919/本笔前后两笔(07⑮ 注记+白名单收编/出口报告+台账);MC/verifier 零跑。 401. **迭代 19 卡②旧界面呈现断言回补批(2026-10-08,任务书=design/research/任务书-旧界面呈现断言回补批-2026-10-07.md v1.1 待裁点 0 项;worktree g-plan2-iter19-uibackfill 分支 iter19-uibackfill-20261008 基点 9160942)**:三件全落——①T1+T2 ui_contrast 测点对 15→38 对(+23:battle_end 3/shop 5/camp 9/settings 2/curio 2/迷雾记忆墨合成对 1,全 UiKit 常量实时求值+行尾注理由,石皮纹面板按缺素材回退牌色 PANEL_DATA 计);②T3 ui_struct 补采样 legend+node 两根(13→15 根全真路径开合——legend=board_zone.legend_toggled 信号开→closed 信号关,node=_open_modal 登记册+show_rest 合成喂入→continue_pressed 信号关;既有 13 根/五族断言/pause-career 契约族/resume 专项零删减);③T4 文档面三件(出口报告+06 settlement_review 遗留件退役处置登记落位〔随生涯实装批 P5 甲复活承接或正式删除二选一归用户裁〕+roadmap 卡②段换代)。**🔴 停机点 S1 命中:新对首跑暴露存量对比度违例 7 项**——结算 GP 账行 GOLD_DEEP/结算板 2.67:1、商店 legacy 行卡名 INK_LABEL/暗底行卡 1.12:1(重度不可读档)、货架价签 GOLD/货架板 1.46:1、营地铭牌副题 STONE/铭牌板 3.59:1、行价格 STONE/行板 4.02:1、树分组头 GOLD_DEEP/柜台板 2.67:1、工坊状态 GOLD_DEEP/行板 3.00:1(V1-V7 全量清单+修复建议案〔全现役常量换墨可落〕在出口报告 §3);按任务书 §十 S1 停机呈报,处置权归用户(甲=另立修复批〔违例对在册=闸红登记存量形态,修后自然转绿〕/乙=回拔 7 对留纸面登记),批内零修(红线:旧屏呈现层代码零 diff,git diff 可核=仅两探针+文档面)。S2 未命中:legend/node 结构首跑全绿、WL 零新增(仍空表)。闸数字改前/改后——冒烟 840 项 0 失败持平+run_all 17 套件持平+残留 Godot=0;ui_contrast FAIL 7 项越带(S1 呈报物非实现回归,存量红零新增);ui_struct PASS 15 根。**时长闸披露**——probe_gate 默认段整闸基线窗口 186.7s→改后窗口 306.3s 系兄弟卡①③并发噪声主导(同窗口交错 A/B 三轮:同一探针本体波动 5.1→20.6s,改前 B2 亦跑出 15.7s);本体同窗口配对差中位 contrast +0.52s/struct -1.64s 无系统性增量、技术下限毫秒级(23 对静态求值+两屏采样≈0.5s)——按本体配对口径验收闸 5(≤2s)通过,整闸空窗复测归主控合并窗口。白名单行使披露——三不收位(bcard 描述/脚注/✓章/primary 钮字四处内联 Color8 无常量形态+page_shell 顶条板同;TG_* 五族带=非文字装饰件不适用 4.5 文字判据);对数 38 超预期带 25-32 系违例位全量入表(登记存量须哨兵在册)。迷雾对注——floor avg #453020 系素材侧值无常量形态取 art-bible §389 迭代 16 T0 在册复算值(合成底 #3E3731 与在册一致、6.7:1 逐位吻合手算);三关逐关 avg 无在册记录且素材不入 git 不可实查〔主区只读约束〕,最坏情况判据扩对归移交。**移交六件**——①S1 七项处置(最高优先);②迷雾三关扩对(素材入库/授权后脚本算 avg);③字面量墨收测前置=ui_kit 立常量;④TG 装饰带非文字判据另立探针段;⑤settlement_review 去向二选一;⑥probe_gate 整闸空窗复测。出口报告=design/qa/iter19-uibackfill-exit-report-2026-10-08.md;提交四笔 92c0598(T1+T2)/74d2f73(T3)/6339b63(T4 文档面)/本笔(台账记账)。 404. **迭代 19 尾裁微批三件(2026-10-08,裁决依据=用户 2026-10-08 六裁授权落地批〔裁甲=对比度存量 7 项另立修复批随尾裁批回绿/卡⓪resume tree_rules 受理闭环/卡③S1 换 setup-godot action〕;worktree g-plan2-iter19-followup 分支 iter19-followup-20261008 基点 0ba3ddf)**:三件独立提交全落——**a 对比度存量违例 7 项全修**(V1 结算 GP 账行 battle_end_overlay.gd:86-87 GOLD_DEEP→GOLD_INK 5.21:1/V2 商店行卡名 shop_overlay_view.gd:127 bold 缺省 INK_LABEL→显式传 WARM_SOFT 9.53:1/V3 bcard 价签 ui_kit.gd:677 GOLD→GOLD_INK 5.21:1〔三选一价签恒空串隐藏零波及实证:curio_pick_overlay.gd:109 传空串 price_l.visible=false〕/V4 营地铭牌副题 camp_overlay_view.gd:74 STONE→STONE_DEEP 5.98:1/V5 行价格+行进度 :342+:369 STONE→STONE_DEEP 6.70:1/V6 树分组头 :191 GOLD_DEEP→GOLD_INK 5.21:1/V7 工坊已解锁 :275+:278 GOLD_DEEP→GOLD_INK 5.84:1;改前 2.67/1.12/1.46/3.59/4.02/2.67/3.00 全越 4.5 带;只换文字墨零布局零文案,同位非文字共用甄别不动〔battle_end_overlay.gd:48 GOLD_DEEP 面板边框用途在册不动〕;ui_contrast_probe 测点表 7 对随代码同步改指新常量+行尾注新比率)——probe_gate 默认段 ui_contrast 15 对存量红清零→38 对全绿 PASS;**b 卡⓪resume tree_rules 受理闭环**(adventure_runner.gd resume_adventure :215 按 start_adventure :135 同式补一行类型防御三元受理,消费面 :938 set_tree_rules 下传现成零改;main.gd build_adventure_params「tree_rules 暂不消费」在册披露句退役改写〔呈现层注释允许〕;冒烟断言段 :4689-4698 追加续玩受理两查=resume_adventure 直呼三键参数面受理+runner._tree_rules 与传入一致〔v2 旧断点夹具同式最小断点〕)——冒烟 840→842/0+run_all 17 套全绿+probe_gate --click 全绿;**c tests.yml 换 action**(:37 nikeee/godot-actions/setup-godot@v2→chickensoft-games/setup-godot@v2〔卡③轻 CI 首跑 404 实证〕,既有裁注注释改写保留裁甲依据+404 实证,version 4.7.2 参数语义不变;纯静态核验=pyyaml 解析+uses 换装唯一+version 保留+缩进同构)。台账查撞:master 停 402 无 404 撞〔403=卡④预配在飞,本条按预配 404 记〕。出口报告=design/qa/iter19-followup-exit-report-2026-10-08.md;提交四笔 5891b5b(a)/768e366(b)/c489d16(c)/本笔(台账)。 diff --git a/design/qa/iter19-verify-exit-report-2026-10-08.md b/design/qa/iter19-verify-exit-report-2026-10-08.md index aaf96cce..640bcdcf 100644 --- a/design/qa/iter19-verify-exit-report-2026-10-08.md +++ b/design/qa/iter19-verify-exit-report-2026-10-08.md @@ -1,98 +1,99 @@ -# 迭代 19 卡①「自动化验收补齐批」出口报告——**S1 停机点版**(2026-10-08) +# 迭代 19 卡①「自动化验收补齐批」出口报告——**完工终版**(2026-10-08;前版=S1 停机点版,同日续接完工全量改写) -- 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,未撞未顺延) +- worktree:`D:\code\g-plan2-iter19-verify`(分支 `iter19-verify-20261008`,基点 9160942 = master 顶部含卡⓪落籍;批末顶端见 §5 提交清单) +- 台账号:**399**(T0-T2 段)+ **400**(T3-T6 段;记账前以 `git -C D:/code/g-plan2 show master:active.md` 复查撞号——master 台账至 404,399/400 空缺未撞未顺延) - MC/verifier:零跑(本迭代零跑+静态论证口径,全程未触) -- **停机点命中:S1(render_gate 首跑存量 FAIL)——T3-T6 未执行,处置权归用户**(任务书 §六 S1 + goal 停机规则「合法停机=立即停,全案报告返回」) +- **停机点命中两次,均闭环或呈报**:①S1(render_gate 首跑存量 FAIL 三件锚漂移)——用户裁甲清障,本批续接落籍转绿;②S2(golden L2_underdark 越限 2.53%>2%)——停机诊断定位根因为探针抓帧时序缺陷(非视觉回归非平台差异),根因修复+基线换代后三连跑 0.00% 全绿,**容差 2%/16 用户冻结口径未动**(全案见 §2) --- -## 1. 停机点全案(S1)——发现清单+建议案 +## 1. S1 停机点全案(前版立案,本批闭环) -### 首跑判定过程(两跑口径) +首跑判定存量红 3 条,全部为 shot_checker B 类对比度断言取样锚漂移(呈现层无缺陷)。**用户 2026-10-08 裁甲清障,三件已全部落籍(提交 a623ec3)**: -首跑(原始)暴露 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 行一词改动),断言保留 | +| 1 | 菜单·副标题「改造批」失配 | 锚改认现行文案「扫雷的因 · 逐行兑现的果」(ui_assembler.gd:132)的逐字子串「扫雷的因」——全工程唯一命中(contains 语义) | WCAG=8.44 纹理幅度=3.9 C-OK | +| 2 | 菜单·帮助文「玩法:」载体退役 | 断言腿整个退役:shot_probe meta 键+shot_checker 断言段+头注断言清单三处同撤不重锚(06 在册口径=同撤) | 腿不存在,checker 全 PASS | +| 3 | 战斗·明细带提示「结算明细」失配 | 锚改认现行「上轮摘要(回看归「生涯」)」(battle_log_view.gd:47)子串「上轮摘要」——唯一命中(摘要行文案系「上轮: …」不含「摘要」零碰撞;_log RichTextLabel 不在 Label 匹配面) | WCAG=11.94 纹理幅度=8.6 C-OK | -**全过面实证**(同跑取证):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)。 +清障后 render_gate 首段全绿:A 类骨架七屏全过(最低 career std=21.8 colors=794)、C 类明度三档带 205>87>55、B/D 类 hero 面板 WCAG=6.14 纹理 0.0。 -**已登记**:06-待办清单条目级(本 worktree 87f749d)——三条各附现状/建议案/归属;三案均零呈现层代码改动(只动探针锚/checker 断言腿)。 +## 2. S2 停机点全案(本批新增——golden 越限:诊断→根因→修复→换代) -**裁后路径建议**:三案均属 shot_checker 断言面微批(半小时级)——用户逐条裁后可本卡续跑:锚改/腿退役 → render_gate 全绿 → 顺次执行 T3-T6(无需重开任务书,T3-T6 与 S1 三件正交)。 +**命中**:S1 清障后 render_gate 首跑,golden L2_underdark changed=**2.53%**>2% 容差(基线入库时首对比 0.00%)。 ---- +**诊断**(停机呈报前取证):波动性越限,非确定性回归——L2 四跑 0.00/2.53/2.29/1.17%、L3 三跑 0.89/1.78/1.59%、L1 恒 0.00%;差异像素聚集在棋盘单一紧凑区块(x159-348/y159-444),目验=战争迷雾揭示程度差异。 -## 2. 逐件产物(file 级) +**根因**:board_view.rebuild 有入场动画——全板淡入 motion(0.2)+R0 涟漪逐格延迟显形(motion(0.04×离板心距离)+motion(0.12),最远格 ≈0.56s);board_shot_probe 原制只等 6 个 process_frame(热机后 ≈0.1s)=**恒捕在涟漪中途态**,逐跑帧时序抖动使揭示 alpha 漂移。基线生成跑恰逢冷机慢帧捕到完结态,故入库时全过——基线锚在「动画完结态」这个事实上正确、但原探针不可复现的相位上。 + +**修复**(提交 3317076):抓帧前改时间制 `create_timer(1.2)s`(2×余量)+process_frame+frame_post_draw——锚定动画完结态。探针侧零运行时 diff(契约红线①内)。 + +**换代与稳定化**:golden_baseline_refresh.sh 换代三张基线(S3 素材齐盘守卫/Q2 临时区纪律全随)后**三连跑稳定性实证全 0.00%/0.00%/0.00%**,render_gate 复跑全绿(EXIT=0)。**容差 2%/16 未动**——S2 的用户裁决域是容差值,本次走根因修复未触;若未来跨平台/字体渲染推高 changed,仍按 S2 呈报定值。 + +## 3. 逐件产物(file 级——前版 T0-T2 + 本批 T3-T6) | 任务卡 | 产物 | 状态 | |---|---|---| -| 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 倍失真——「五闸从未全量跑过」的实证注脚。 +| T0 | 基线复读记档+归属核对+环境修正两课(§5 前版) | ✅ | +| T1 | `tools/render_gate.sh`+shot_probe 扩屏七屏+board_shot_probe 取证三件套+两辅助件 | ✅(前版) | +| T2 | `game/tests/golden/` 三张基线+golden_board_crop.py+golden_baseline_refresh.sh+golden_compare 接线 | ✅(前版;**本批 S2 换代**,触发原因提交说明强制记载) | +| S1 | 06-待办清单条目级登记→用户裁甲→三件清障落籍(shot_probe.gd+shot_checker.py,提交 a623ec3) | ✅ 闭环 | +| S2 | board_shot_probe 时制等待+golden 三张换代(提交 3317076) | ✅ 闭环 | +| T3 | `tools/probe_gate.sh` --full 段=ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 四探针收编(timeout 120=实测 17.4/49.6/63.0/21.9s 的 2-7×余量;PASS+退出码+残留三闸随骨架);头注「shot_probe 禁入本闸……归真人目检」纪律句删除改写(2026-10-07 用户授权);轻闸默认段零删减零改动(提交 b523f7d) | ✅ | +| T3 | `game/smoke/ui_layout_probe.gd` 零断言诊断件补最小布局断言转断言件:1280/1920 两档(基座 1280x800/顶层三区互斥不越界/board_view 含于 D 区/1920 档钉迭代 9 分辨率案甲契约——stretch 下逻辑视口与四区矩形恒定);首跑 PASS 退出码 0;闸归属归卡③裁点②候裁本批不入闸(同提交) | ✅ | +| T3/T4 | config_fatal_probe 退役(.gd+.uid——与 run_all config_db_fatal_oob_test 断言面重复,2026-10-02 呈报退役还账)+数据配置.md:205 指路句连带改指+v0.4 版本史行不动(历史记载);damage_probe 头注「诊断工具·非验收件」出一切闸;skill_rhythm_probe/board_stat_probe 头注「分析工具·非验收件」;全仓引用清查零残留(提交 b3404e8) | ✅ | +| T4 | tests/README.md 订正:套件数十五→**18**(第 18 套=卡④ `unit/core/fog_lantern_wiring_test` 注名;本分支基点早于卡④合并实测 17 套全绿,合并后 18)+断言数「752+」改**双口径**(运行时=run_smoke 打印〔分支基点 840 项 0 失败;master 合并卡②④后 846〕/静态=smoke 源码 `check(` 764 处——两口径不同各自浮动禁写死)+「十场景探针」去数化;**integration 空壳目录删除**(Q8),章程句并入 tests/README(提交 fcb91ce+57a7919 前笔) | ✅ | +| T5 | CLAUDE.md 分级周期口径**重闸定义正式扩容**:自此批末重闸=轻闸+--click+--full+render_gate+run_all+doc 三闸/熵增闸;真人目检仍归用户;MC 仍按触发细则。落点=硬性红线·分级周期口径句(重闸定义在 CLAUDE.md 唯一在册处=任务书所称 loop §5)(提交 57a7919) | ✅ | +| T6 | 07-体验验证清单 ⑮ **机器补跑半核销注记**(五闸归宿落籍实测绿;真人目检半仍归用户不销号);熵增闸图像白名单收编 game/tests/golden/(T2 落库漏改致红——同批修订 commit 留痕);批末重闸全跑(§4);出口报告本篇;台账 400 | ✅ | +| T6 | roadmap 迭代 19 行换代:**未动,归主控**——本分支 roadmap 落后 master 多个合并(卡②④已改该行),合并时行冲突重放归主控(goal 既有分工) | ⏭ 移交 | ## 4. 闸数字(改前/改后全列) -| 闸 | 基线(T0,基点 9160942 本 worktree 实测) | 批末现状(S1 停机态) | +| 闸 | T0 基线(基点 9160942) | 批末现状(完工态) | |---|---|---| -| 冒烟 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=迭代零跑口径) | 未跑 | +| 冒烟 run_smoke | 840 项 0 失败三闸过 | **840 项 0 失败三闸过 EXIT=0**(批末实跑;master 合并卡②④后=846,README 双口径已注) | +| 单元 run_all | 17 套件全绿 | **17 套件全绿 EXIT=0**(批末实跑;卡④第 18 套合并后到位) | +| probe_gate 默认段 | 全绿 | **全绿 EXIT=0**(默认段零删减实证) | +| probe_gate --click | 全绿 | **全绿**(click PASS 问题=0) | +| probe_gate --full | —(不存在) | **新增全绿**:ui_probe/ui_tune_probe/t17_defer_probe/fx_probe 四 PASS 残留 0 | +| render_gate | —(S1 版首跑 shot 段红) | **全绿 EXIT=0**:shot_checker A-D 全 PASS(新锚 WCAG 8.44/11.94)+fx/board 取证绿+golden 0.00%×3+残留 0 | +| ui_layout_probe(新断言) | 零断言 | **PASS 退出码 0**(1280/1920 两档首跑) | +| doc_link_audit / doc_term_audit | 未跑 | **绿 EXIT=0**(输出内有存量挂账条目:奇物.md:130 两死链/06:419 archive 死链/数据配置.md:223 历史行 backtick 指已退役探针——审计口径=报告不 FAIL) | +| gdd_lint | 未跑(基点即红,本批归因:06/07 两文件 R3/R7 违例**基点既有**——base 已有 382 字括号/12 处删除线,非本批引入) | **EXIT=1(存量红)**——本批零新增违例;存量处置呈报不代修(§6) | +| 熵增闸 repo_structure_audit | 基点即红(golden 三张 T2 落库漏改白名单+design/diagrams 基点既有) | golden 件**已修**(白名单收编);**design/diagrams 越界=存量红 EXIT=1**——脚本自文「新分类先过用户拍板」,呈报不代裁(§6) | +| 熵增/doc 三闸/MC | 未跑 | 如上;MC=迭代零跑口径 | -**golden 稳定性观察(S2 前置注记)**:L1/L2 两跑 0.00%;L3 两跑 0.89%——同种子下棋盘数字/布局确定,差异源=收尾帧动画相位(墙钟近似),在 2% provisional 容差带内。若未来跨平台/字体渲染变化推高 changed,按 S2 呈报定值;亦可考究抓帧前动画静置。 - -## 5. 提交清单(hash+message 摘要) +## 5. 提交清单(本批续接段;前版五笔 8246790/3249697/87f749d/fe124a4/f397b80 在先) | 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/ | +| a623ec3 | 卡①锚清障(续)——S1 裁甲三件落籍+render_gate 清障后首跑 shot_checker 全 PASS 实证 | +| 3317076 | 卡①S2 观察项根因修复——board_shot_probe 抓帧时序+golden 三张基线换代(触发原因强制记载) | +| b523f7d | 卡①T3——probe_gate --full 四探针收编+头注改写+ui_layout_probe 1280/1920 两档断言 | +| b3404e8 | 卡①T3/T4——config_fatal_probe 退役+数据配置.md:205 改指+三件头注标注 | +| fcb91ce | 卡①T4账务——tests/README 18 套双口径+integration 删壳章程并入 | +| 57a7919 | 卡①T5——CLAUDE.md 分级周期口径重闸定义扩容 | +| (台账笔) | 卡①T6——07⑮ 机器补跑半核销注记 | +| (本笔) | 卡①T6——熵增闸白名单收编 golden+README 840 订正+出口报告完工终版+台账 400 | -## 6. 契约自检 +(过程披露:中途一次 reset 分批重整——git rm 暂存先行混入 T3 提交,soft reset 重新分五批干净落籍;reflog 在案,零改动丢失。) -- 运行时代码零 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 复核 +## 6. 未决移交项 -## 7. 未决移交项 +1. **design/diagrams 越界(熵增闸存量红,基点 00712d5 既有)**——脚本自文「新分类先过用户拍板再改两处白名单」。可修案:甲=用户拍板 `design/diagrams` 入 DESIGN_SUBDIRS 白名单(archify 总图批产物归位);乙=迁出 design/ 归位合法区。**合并前须用户裁**,本批不代裁。 +2. **gdd_lint 存量红两文件(06-待办清单/07-体验验证清单,基点既有)**——R3 删除线残留/R7 长括号注记。本批零新增。处置建议:随下批文档批清理(06 条目历史形态与 R3 规则的口径取舍建议用户裁:历史登记条目的删除线是否豁免)。 +3. **数据配置.md:223(v0.4 版本史行)backtick 指已退役探针**——doc_link_audit 报告项(不 FAIL)。历史行不改写原则下留观;如需清零可下批把该行 backtick 去格式化(prose 化)+补 v0.5 退役行。 +4. **主区合并+合并复跑**归主控:本分支 13 笔提交待并;合并时 roadmap 迭代 19 行冲突重放归主控(§3 T6 行);合并复跑含 render_gate(任务书 T6 口径)。 +5. **卡③裁点②(ui_layout 入 CI/闸归属)**:断言面已就绪(PASS/FAIL/退出码形态),候主控裁。 +6. 1920 档:render_gate 单档 1280(Q4)+ui_layout 两档断言钉案甲构图恒等,注记在两处头注。 +7. 商店房截图纳屏:留 B 批(考证结论在 shot_probe 头注)。 -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 后基点)。 +## 7. 契约自检(完工态) + +- 运行时代码零 diff:本批续接段改动面=game/smoke/ 探针四件+tools/ 三件+game/tests/(golden 基线+README+integration 删壳)+文档四件——红线内 ✅(`git diff 9160942..HEAD --stat` 复核无 core/presentation/data 触碰;board_view 动画是既有呈现行为,本批只改探针等待时序) +- 轻闸默认段零删减:probe_gate 默认段三探针+残留闸逐字未动,--full 只增不改;--click 语义原样 ✅(FORM1/FORM2 两形态对照实证) +- golden 基线边界:只入 game/tests/golden/、素材齐盘态、换代触发原因提交说明强制记载 ✅ +- 过程产物即弃:全部截图/诊断拼图落 mktemp 与 /tmp,用后即弃,git 状态零 PNG 残留 ✅ +- 在飞避让:主区零触碰(台账/roadmap 只读查撞)✅ +- 改纪律落文:probe_gate 头注与 CLAUDE.md 同批改写完成,新旧两口径并存态已消除 ✅