diff --git a/reports/工程改动报告-工程小件批-2026-10-30.md b/reports/工程改动报告-工程小件批-2026-10-30.md new file mode 100644 index 00000000..4fbf47bb --- /dev/null +++ b/reports/工程改动报告-工程小件批-2026-10-30.md @@ -0,0 +1,23 @@ +# 工程改动报告——工程小件批(run_all 解析/注释与消息订正/恒真断言五条/基线三键换代) + +> 接收方:待办清单「迭代 42 批末移交小件」「恒真与名实不符断言五条」「闸基线 02/05/09 三键换代」三条目(批后整条删除,本报告为过程凭据留档)。分支 engsmall-20261030,基点 14054d9d。 + +## 改动清单 + +| # | 件 | 改动 | 提交 | +|---|---|---|---| +| 1 | run_all.gd --only 逗号解析 | 解析段补 `split(",")` 拆分,对齐头注契约 `<词[,词…]>`;闸脚本关联档单旗标逗号拼接传参自此可用(此前多词必零命中 quit(2),缺陷起于 6caf56b5) | d32ff342 | +| 2 | level_runner.gd:12 信号注释 | `shop={gp}` → `shop={gp}(pool 态加 shelf:true)`,与发射点两形态(legacy/pool)对齐 | dd2de10e | +| 3 | static_scan.sh S8 ok 消息 | 文件集 9→10(S8_FILES 实含 10 文件,board_installer.gd 随迭代 42 入集) | dd2de10e | +| 4 | 恒真与名实不符断言五条 | ①feat_vouchers 恒真改绑投放装配面(读数==Σ表配额−本会话已兑付一张);②treasure_effects 去恒真尾缀绑清图判定未触发;③④level_shop_economy 恒真 min 改绑胜局 HP>0 旗+扫描面非空双条件;⑤system_contracts 互异半缺失补值集去重计数 | 6a3203a8 | +| 5 | 基线 02/05/09 三键换代 | 按本批回执实测绿重锚(旧红指纹 f9865f1a5a44/de89589e49ed/1a9ad773489f 归绿消除),note 记账 | 28223074 | + +## 验收凭据 + +- 孤立验证:逗号拼接四词形态 `--only=feat_vouchers,treasure_effects,level_shop_economy,system_contracts` 实跑四套件全绿(level_shop_economy 192 checks)——件 1 解析与件 4 判据同轮验证。 +- 批末闸:`run_all_gates.sh --code` 两次全绿。第一次(commit 6a3203a8,旧基线)02/05/09 三键「基线红→现绿(改善)」;重锚后第二次(commit 28223074)全绿无改善项,回执 domain=code、scope=related、dirty_game=false。 +- 件核:改后全仓 `or true` 残留零命中;五条旧形态清零。 + +## 实现决定记录 + +零拍板——五件修法均按待办登记既定方向执行,无超范围事项。件 1 修法选「解析补拆分」而非「闸脚本改逐词传参」:头注契约 `<词[,词…]>` 是文档承诺,实现向契约对齐,闸脚本零改动。 diff --git a/待办清单.md b/待办清单.md index f5df4bf2..51c3c1d9 100644 --- a/待办清单.md +++ b/待办清单.md @@ -2,21 +2,6 @@ 本清单是流水线的唯一登记处:要做的事先在此登记一条,随流水线段推进改状态,做完整条删除;各系统文档的「待办」节只留一行指路存根,不再自建条目。条目格式(标题=登记元数据含可选优先级,正文=实况/缺口/改动面/状态四属性)与状态机以 [doc-conventions §12.1](design/engineering/doc-conventions.md) 为权威。 -#### 迭代 42 批末移交小件——工具与注释四条(2026-10-30 登记,来源=批次移交) - -**实况**:证据=迭代 42 实现报告 §5-1/§5-5/§5-6 与验收审计报告表述性瑕疵 3/4(已按吸收即死退役,git 历史可考)。逐条: - -| # | 事项 | 要点 | -|---|---|---| -| 1 | run_all.gd --only 逗号形态解析缺陷 | 头注文档形态 `--only=<词[,词…]>` 与闸脚本传参形态(tools/run_all_gates.sh 关联档选跑逗号拼接单旗标)自 6caf56b5 起与解析不符——整串当一个词对套件路径做子串匹配,多词必零命中 quit(2);修法二选一:run_all.gd 补逗号拆分,或闸脚本改逐词重复 `--only=` 传参(迭代 42 施工曾以逐词重复形态绕过) | -| 2 | 坑速查补条 | .zcode/skills/iter/SKILL.md「坑速查」节补条:worktree 冷检出 --editor --quit 首跑 --path 误指仓库根(未建 .godot 类缓存致首跑解析红),改指 game 切片目录重刷后正常 | -| 3 | level_runner.gd:12 node_entered 信号注释陈旧 | 注释 `shop={gp}` 与 pool 态实际载荷 `{gp, shelf:true}` 不符(迭代 42 改动前即如此,本批未触载荷) | -| 4 | static_scan.sh S8 ok 消息陈旧字面量 | :337「扫描面 B1 文件集 9 个 .gd」——S8_FILES 实含 10 文件(board_installer.gd 随迭代 42 入集),扫面无缩小,仅消息文本过期 | - -**改动面**:游戏代码+工具代码 - -**状态**:待执行 - #### 迭代 43 批后待裁三点——B 区高度对齐/名字行字号档位/换色常量退役(2026-10-30 登记,来源=批次移交) **实况**:证据=迭代 43 反哺点清单 1/8/10(已按吸收即死退役,git 历史可考)。①**B 区高度 270 vs 252**——battle.md 区表文 270、代码 252,18px 差异;样张按代码 252 出(样张反映实机)。②**站桩名字行 12px 档位归属**——standee_body.gd 名字行取 `UiKit.FS_CAPTION`(12px),art-bible §7.4 字号档位表下属「清单外 11–13px」。③**art-bible §4.1 换色合并残余三处**——`STAGE_BG` 换值(#3E342A→#3E362C)未执行;`STAND_STONE_RIM`(#C4AC84)仍被 board_cell_unit 口沿高光在役引用;`STAND_STONE_EDGE`(#5A4C3A)由地台缺位回退路径在役引用。 @@ -68,14 +53,6 @@ **状态**:文档设计已闭合 -#### 恒真与名实不符断言五条——判据缺陷修正(2026-10-29 登记,来源=会话提及) - -**实况**:存量断言精简 A+B 批余账④转正:五条断言属判据缺陷(恒真占位或名实不符),不是冗余合并可解的账,按 test-conventions §8.4 真实入口口径逐条修正,不计入精简条数。逐条:①`game/tests/unit/core/feat_vouchers_test.gd:51` cond 为 `deck_refresh_before == 0 or true`——恒真;②`game/tests/unit/core/treasure_effects_test.gd:263` cond 尾缀 `or true`——恒真;③`game/tests/unit/core/level_shop_economy_test.gd:593` `green_min_hp > 0`——初值 99999、仅 hp>0 分支取 min,恒真;④同文件 `:696` `green3_min_hp > 0`——同型恒真;⑤`game/tests/unit/contracts/system_contracts_test.gd:66-67` 标签称「非空且互异」而 cond 只查 `size() > 0`——互异半缺失,名实不符。修正方向:能绑判据的改绑真实可观测面(互异改值集去重计数、HP 读数改与门槛比对),造不出可观测面的按 §8.4 出口停卡呈报。 - -**改动面**:游戏代码 - -**状态**:待执行 - #### 断言提取器改版——覆盖 Kit.check_quiet 静默通道(2026-10-29 登记,来源=会话提及) **实况**:`tools/extract_checks.py:67` 的 `CALL_RE = check\(` 只认即时通道,静默收集通道 `Kit.check_quiet(cond, desc)` 静态站点实测 407 个在提取口径外(证据=`grep -rn "check_quiet(" game/tests --include="*.gd"` 实数;test-conventions §5.2 已备案该工具局限)。能力清单以 `文件:函数` 为锚,不受影响;但要把断言面全账纳入机器对账(重建账本或全量断言面审计),须先改版提取器:识别 `check_quiet(` 并按反参序(cond 在前)提取标签与 cond。改版后须以全量套件跑一遍 `--diff` 自证提取面覆盖、且 `Kit.check(` 与 `check_quiet(` 不双计。 @@ -92,14 +69,6 @@ **状态**:待执行 -#### 闸基线 02/05/09 三键换代——存量红指纹已消除或现行不复现(2026-10-29 登记、2026-10-30 并入 05,来源=批次移交) - -**实况**:证据=迭代 41 测试债批代码域闸实测(worktree 分支 `testdebt-20261029`,回执 commit afd1a41f、域=code、scope=full、零新增红),02 单元与集成与 09 静态扫描两闸判「基线红 → 现绿(改善)」;05 渲染闸在 2026-10-30 脚本错误扫描批主区真跑 `bash tools/render_gate.sh` exit=0 全绿(shot/fx/board 三段扫描零命中、残留 Godot=0、golden changed 0.00%),其红键在现行主区不复现。基线 `game/tests/.gates/baseline.json` 里这三键仍记着历史红指纹(02 fp f9865f1a5a44=9 套件失败;05 fp de89589e49ed;09 fp 1a9ad773489f=S9 24 处+S10 4 处+S11 1 处),留着不动的后果=日后同类红回归会被判「存量红·对基线零新增」静默放行。待做=三键按归绿实测重生成(写 exit=0/绿指纹),改的是 `game/` 下非 .md 文件=代码面,须随下一个代码批在 worktree 内一并落、禁主区直改;05 须在素材齐盘预检后跑出真值(冷检出空盘态下的渲染红不作数)。人工确认凭据=上述回执、reports/迭代41测试债批-实现报告-2026-10-29.md 第三节与本批提交说明。本条目无设计段(机械重锚),不走写卡与编排。 - -**改动面**:游戏代码 - -**状态**:待执行 - #### gdstyle 尾波补件批——悬停域与断点域拆件(2026-10-29 登记,来源=会话提及) **实况**:尾波卡 v2.0 裁去的 D2/D4 两拆件项经用户再裁恢复(2026-10-29,零豁免延伸+D5 留债)。设计闭合凭据=architecture.md v1.25(呈现层表 board_hover 行/核心层表 breakpoint_store 行/「冒险域拆分」节随动句)。需求卡片:reports/需求卡片-gdstyle尾波补件批-2026-10-29.md(v1.0 定稿零待裁点)。范围:board_view 拆 board_hover(11 函数族+2 成员,`_r0` 留宿主)+adventure_runner 拆 breakpoint_store(6 成员+`BREAKPOINT_FIELDS` 27 键冻结函数族,`resume_adventure` 留宿主薄壳)。键账预期:board_view 类变量 32→约30、公开方法 27 持平、adventure_runner 类变量 28→约22——三键**留债**(键留基线冻结禁恶化、禁落豁免登记)。编队:待迭代 42 合回后编入;与呈现层状态件批同代时其先行(u.st 写入面改型后 hover 拆件在新面上施工)。估时 2.5–3.5 工作日。