From 9568b0b925a08ee30fb193567133bce142fe710f Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Wed, 28 Oct 2026 23:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=A1=E2=91=A0T10=EF=BC=8B=E5=8D=A1?= =?UTF-8?q?=E2=91=A1T5(=E6=94=B6=E5=B0=BE=E4=BA=A7=E5=87=BA=E7=89=A9):=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=8A=A5=E5=91=8A=EF=BC=8B=E5=8F=8D=E5=93=BA?= =?UTF-8?q?=E7=82=B9=E6=B8=85=E5=8D=95=E4=B8=A4=E4=BB=BD=E8=90=BDreports?= =?UTF-8?q?=E2=80=94=E2=80=94=E6=8A=A5=E5=91=8A=E5=90=AB=E5=90=84=E5=8D=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81/=E9=94=AE=E8=B4=A6=E7=BB=88=E5=B1=80?= =?UTF-8?q?=E5=AF=B9=E6=8B=8D(=E5=9F=BA=E7=BA=BF168=3D=E5=8D=A1=E2=91=A085?= =?UTF-8?q?+=E5=8D=A1=E2=91=A171+=E5=8D=A1=E5=A4=9612;=E7=BB=88=E5=B1=8016?= =?UTF-8?q?=E9=94=AE=E5=9C=A8=E5=86=8CNEW=3D0=E6=81=B6=E5=8C=96=3D0;?= =?UTF-8?q?=E6=B6=88=E5=A4=B1152=3D=E5=8D=A1=E2=91=A085/85+=E5=8D=A1?= =?UTF-8?q?=E2=91=A167;=E5=8D=A1=E2=91=A1=E4=B8=A4=E9=94=AEinner=20class?= =?UTF-8?q?=E5=B1=95=E5=B9=B3=E8=AE=A1=E6=95=B0=E5=9C=A8=E6=A1=88=E6=94=B9?= =?UTF-8?q?=E5=96=84+=E4=B8=A4=E8=B1=81=E5=85=8D=E7=94=B3=E6=8A=A5v1.22:18?= =?UTF-8?q?3/:311=E6=8C=87=E9=92=88)/=E6=96=B0=E4=BB=B6=E9=94=AE=E8=B4=A68?= =?UTF-8?q?=E4=BB=B6=E5=AE=9E=E6=B5=8B=E5=9C=A8=E9=98=88/=E5=B9=B6master?= =?UTF-8?q?=E5=A4=84=E7=BD=AE(=E5=86=B2=E7=AA=816=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=B9=B6=E6=A1=88+=E6=97=A0=E7=82=B9=E5=BD=A2=E6=80=81?= =?UTF-8?q?=E7=9B=B2=E5=8C=BA17=E5=A4=84+=E8=AE=BF=E9=97=AE=E5=99=A8?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E6=BC=8F=E7=BD=913=E5=A4=84=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D+=E6=B8=85=E5=8D=95=E9=87=8D=E7=94=9F=E6=88=901587?= =?UTF-8?q?=E5=AF=B9=E8=B4=A6)/=E5=AE=9E=E7=8E=B0=E5=86=B3=E5=AE=9A?= =?UTF-8?q?=E8=AE=B0=E5=BD=95(T7=E5=9B=9E=E6=BB=9A=E4=BA=8B=E6=95=85+u14?= =?UTF-8?q?=E8=A1=A5=E5=81=9A+=E7=99=BD=E5=90=8D=E5=8D=95=E7=AD=89?= =?UTF-8?q?=E4=BB=B7=E5=BE=AE=E8=B0=835=E7=AC=94)/=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=A7=BB=E4=BA=A4=E6=B8=85=E5=8D=95(=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=89=B9=E8=AE=B8=E6=89=A7=E8=A1=8C,=E5=85=A8=E9=87=8F?= =?UTF-8?q?=E6=A1=A3+=E6=8C=89=E5=8D=A1=E6=8A=BD=E6=9F=A5=E5=A5=97?= =?UTF-8?q?=E4=BB=B6+=E6=92=A4=E9=94=80=E8=AF=81=E6=98=8E+=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=E5=AE=A1=E8=AE=A1+=E5=9F=BA=E7=BA=BFrefresh=E6=97=B6?= =?UTF-8?q?=E6=9C=BA)/=E7=9B=AE=E6=A3=80=E7=99=BB=E8=AE=B04=E9=A1=B9;?= =?UTF-8?q?=E5=8F=8D=E5=93=BA=E7=82=B9=3Darchitecture=20v1.22=E5=9B=9B?= =?UTF-8?q?=E8=A1=8C=E7=8E=B0=E7=8A=B6=E6=94=B9=E5=86=99+:104=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=BD=A2=E6=80=81=E6=B3=A8=E8=AE=B0+=E4=B8=A4GDD?= =?UTF-8?q?=E8=A1=8C=E5=8F=B7=E9=9A=8F=E5=8A=A8+:267=E5=85=88=E8=A1=8C?= =?UTF-8?q?=E6=BC=82=E7=A7=BB=E7=96=91=E4=BC=BC=E9=A1=B9=E5=91=88=E6=8A=A5?= =?UTF-8?q?+=E5=8D=A1=E2=91=A1=E9=9B=B6=E6=94=B9=E5=8A=A8=E6=A0=B8?= =?UTF-8?q?=E5=AF=B9=E7=BB=93=E8=AE=BA;=E6=96=87=E6=9C=AC=E9=97=B8?= =?UTF-8?q?=E8=87=AA=E6=A3=80=E4=B8=89=E4=BB=B6=E5=85=A8=E7=BB=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reports/iter41-反哺点-2026-10-28.md | 33 ++++++++++ reports/iter41-实现报告-2026-10-28.md | 91 +++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 reports/iter41-反哺点-2026-10-28.md create mode 100644 reports/iter41-实现报告-2026-10-28.md diff --git a/reports/iter41-反哺点-2026-10-28.md b/reports/iter41-反哺点-2026-10-28.md new file mode 100644 index 00000000..85f8c3b9 --- /dev/null +++ b/reports/iter41-反哺点-2026-10-28.md @@ -0,0 +1,33 @@ +# 迭代 41 反哺点清单——两卡(核心数据面结构收敛批+呈现层结构收敛批) + +> 每条=哪个文件哪一节、改成什么、依据。落文归文档批(doc-design),本清单只是申请单。 + +## A. architecture.md(v1.22)——定稿注记的现状改写(卡① §6 ③) + +依据:卡① 全清裁决四项已实现,v1.19 定稿注记的「实现批后」表述全部过期;现行行号按 v1.22 实查(2026-10-28)。 + +1. **:88 ConfigDB 行**——「分组建档于实现卡,消费方改址随该批」改现状:三容器已建(`config_domain_combat/run/crossrun.gd`,类型化成员 7/7/5),公开面收敛至 8(push_diag/is_fatal/reset_diagnostics/diagnostics/diagnostics_count/load_tables/set_reload_gate/reload),类变量 9;resolver 经 load_tables 装配段注入三表(board_gen.resolve_row/enemy.resolve_rowset/difficulty.resolve_modifiers),resolver 文件与键零搬移。红线句「唯一加载与持有单点……经其持有的表对象」原样保留。 +2. **:89 SlotStore 行**——「实现批建件」改现状:已建件,槽位族 10 公开/类变量 4;save_manager 组装持有,消费方经 `save.slots.` 直连;_rename_overwrite 留 save_manager(IO 原语单点)。 +3. **:90 MetaStateStore 行**——「实现批建件」改现状:已建件,写口原语 13+只读投影 6(tree_state/forge_state/attune_state/career_state 四投影+keystone_balance/item_unlocked)=19 公开,add_keystone 私有 _add_keystone;零 _data 副本零缓存;消费方经 `save.meta_state.` 直连。 +4. **:126 meta_progression 行**——「随件退役」改现状:公开面 20 定稿(buy_treasure_unlock/refresh_treasure_unlocks/treasure_shop_status/forge_buy_level/forge_buy_unlock/forge_select/hero_type_axes/forge_shop_status/settle_adventure/hero_override/tree_can_buy/tree_buy/tree_toggle_fork/tree_buy_fork/tree_rule_keys/tree_camp_status/toggle_attunement/attune_camp_status/attune_refresh_charges/buy_attune_refresh);纯转发读已退役(消费方直连 meta_state);hero_override 内联锻造加值与树淬炼 flat;并组三组(forge_select(kind,route_id)/hero_type_axes()→{attack,armor}/tree_camp_status()→{rows,fork_groups});补 meta_state 成员装配。 +5. **:104 minesweeper_rules 行**——消费依赖列「A3 try_spend / last_round_end / 相位」补形态注记:last_round_end 已由属性改方法(迭代 41 K5,消费方 minesweeper_rules :495 一处改方法调用)。 +6. **其余在册行零改动注记**(卡① §6 原列 :90/:92/:93/:103/:104 为 v1.19 行号,v1.22 现行=:92 action_economy/:93 variation/:94 status_container/:103 board_generator/:105 unit_container/:106 reward_economy):公开 API 语义零变化,仅内部拆分/束化/私有化——注记「迭代 41 零改动」即可,不逐行改写。 + +## B. GDD 行号随动(卡① §6 ①②,陈述本体零变化) + +7. **design/gdd/systems/战斗循环/地图战斗资源.md :83**——代码引用行行号换代:`_rollable_rows()` 「第 207-213 行」→「第 325 行起」(reward_economy 拆分后漂移);「循环第 65-67 行」→「第 59-61 行」(roll_board 身份批循环现行位置;规范化段已提 `_normalize_eligible`)。同池同权重一视同仁的陈述本体不变。 +8. **design/gdd/systems/冒险循环/冒险结构.md 调参表**——落点列改指段路径(K4′ 拆段后标量槽随段件嵌套,单 .tres 保持): + - :268「adventure_table curio_value_*」→「adventure_table value_segment.curio_value_*」; + - :270「adventure_table token_* 配额列族」→「adventure_table quota_segment.curio_quota_*」; + - :271 clear_heal_pct 不动(knob 留置宿主,:267 同理不动)。 +9. **同表 :267 疑似先行漂移发现(非本批造成,归文档批核实裁决)**:落点列「adventure_table bonus_attack_flat / bonus_max_hp_flat / bonus_armor_flat」——全库 grep 零命中(.gd 与 .tres 均无),疑指已退役槽名;现行承载疑为 value_segment.curio_value_{attack,max_hp,armor}_{common,excellent} 六槽。本批未改该行(不属两卡清单),提请文档批核现行值源后换代。 + +## C. 卡② 同步面核对记录(architecture 预期零修订) + +10. **architecture.md 零改动核对**:两豁免段在位(:183 组合根句柄面豁免、:311 测量面豁免);模块归属表零行变化(零新件、ui_kit 无独立行、flow context/状态件均为宿主内形态);组合根句柄面条款不受影响。**落文动作=无,仅登记核对结论。** +11. **待办清单状态核对注记(卡① §6 ④)**:来源条目「gdstyle 存量债全量清偿——216 键按病根分波整改」两卡对应键账已清(卡① 85/85+卡② 67 清 2 豁免 2 改善,见实现报告 §2);条目状态推进与残余键(三宿主 12 键归迭代 39 主卡)的去向,归主会话/batch-closure 统一回写,本批未触碰该清单。 + +## D. game/ 内文档(批内机械同步,非反哺) + +12. game/tests/验证集清单.md——已机器重生成对账(68 源文件 1587 调用点;断言数与 master 侧一致,地址形态随改址换代),随批入库,无落文义务。 +13. game/tests/golden/README.md——未动(乙组建锚与甲组判读属测试动作,随特许移交;让步声明见实现报告 §八.2)。 diff --git a/reports/iter41-实现报告-2026-10-28.md b/reports/iter41-实现报告-2026-10-28.md new file mode 100644 index 00000000..6c5eb276 --- /dev/null +++ b/reports/iter41-实现报告-2026-10-28.md @@ -0,0 +1,91 @@ +# 迭代 41 实现报告——gdstyle 存量债清偿两卡(核心数据面 85 键+呈现层 71 键) + +- 批次:迭代 41(卡① 需求卡片-核心数据面结构收敛批-2026-10-27 v1.2;卡② 需求卡片-呈现层结构收敛批-2026-10-27 v1.2) +- 工作区:worktree `D:\code\g-plan2-iter41`(分支 iter41,基 7f49a8c2);卡① 提交 c56b816f→070a5340 九笔,卡② 提交 98ac923f→9bef58f9 十笔(含 T2a 修与 u14 补做),并 master 38c9a0eb +- **测试执行声明(2026-10-28 用户特许)**:「不用做任何测试……测试相关动作全部交给我来运行」——本批全部套件停跑、闸停跑(gdstyle 结构闸除外,为开发期读数反馈在跑);验收断言、golden 对拍、撤销证明复现、独立验收审计全部移交用户执行,清单见 §7。因此本报告的「验收」栏记的是**移交状态**,不是已验证状态。 + +## 一、各卡状态 + +| 卡 | 状态 | 读数 | +|---|---|---| +| 卡① 核心数据面结构收敛批 | T0–T9 完成(T10=本报告+反哺点清单) | 在册 85/85 键全消失;8 新件键账逐件在阈(§3);契约 1 行为零变化六款按拆分逐字执行(提交信息逐笔留痕) | +| 卡② 呈现层结构收敛批 | T0–T5 完成(u1–u25 全落地;u14 补做) | 71 键=67 清+2 豁免在册+2 在案改善未消(§2);u23/u25 豁免申报见 §4 | + +偏差两笔(都在 §6 立案):①卡② u14 在 T2b(525529ad)提交信息有记、实际漏改——已补做(9bef58f9);②卡①完成定义写「下降 86 键」,波 0 刷新基线中卡①范围在册实为 85 键(config_db_cross_validator `validate_skill_pool_links 局部` 键在刷新时已不在册)——按在册口径 85/85 清零。 + +## 二、S13 键账终局对拍 + +**开工(波 0 刷新基线 d219dd3d)168 键 → 终局 16 键在册(全部基线内,NEW=0、WORSENED=0)→ 消失 152 键。** + +基线 168 键构成与终局去向(逐键归类实测,脚本对拍 2026-10-28): + +| 范围 | 基线在册 | 终局去向 | +|---|---|---| +| 卡① 26 文件 | 85 | **85 全消失** | +| 卡② 25 文件 | 71 | 67 消失;main 类变量 49、tune_sim await 2 键豁免在册;board_cell_unit 类变量 31→30、standee_body 类变量 29→19 两键**改善未消**(成因见 §6-B) | +| 两卡之外(board_view 6/level_runner 3/battle_orchestrator 2/adventure_runner 1) | 12 | 12 全在册(禁触面——board_view/level_runner/adventure_runner 结构拆件归迭代 39 主卡,battle_orchestrator 类变量为 v1.22 豁免第三条;battle_orchestrator 文件长度 1037→1035 随卡① spawn 调用点改址顺带改善) | + +卡② 71 键逐单元对账(卡面 §8.4 账目 vs 实绩):69 清承诺中 66 键消失;u3 类变量键、u4 类变量键两键未消(展平计数,§6-B);u14 一键补做后消失。卡① 85 键逐 T 对账:T1 17+T2 23+T3 17+T4 8=65 拆分清偿;T5 存档拆件(save 52→7+_peek_summary_at 7→6+load_from_disk 8→6)+T6 meta 31→20 与 status/treasure+T7 config_db 44→8、25→9+T8 adventure 44→12+T9 action_economy 18→15、spawn 参数 10→1 等结构收敛清偿。 + +## 三、新件键账表(卡① 8 新件,实测 vs 卡面预演值) + +| 新件 | 公开方法 | 类变量 | 卡面预演 | 判定 | +|---|---|---|---|---| +| `core/slot_store.gd` | 10 | 4 | 10/4 | 在阈 | +| `core/meta_state_store.gd` | 19(写口 13+读投影 6,_add_keystone 私有) | 1 | 19/1 | 在阈 | +| `core/config_domain_combat.gd` | 0 | 7 | 7 | 在阈 | +| `core/config_domain_run.gd` | 0 | 7 | 7 | 在阈 | +| `core/config_domain_crossrun.gd` | 0 | 5 | 5 | 在阈 | +| `schemas/adventure_quota_segment.gd` | 0 | 13 | 13 | 在阈 | +| `schemas/adventure_value_segment.gd` | 0 | 13 | 13 | 在阈 | +| `schemas/adventure_cap_segment.gd` | 0 | 9 | 9 | 在阈 | + +## 四、豁免申报(卡② u23/u25,零重构零键清偿动作) + +1. **u25 组合根类变量**:`game/presentation/main.gd|max-class-variables = 49`(登记 49,持平)——依据 architecture「呈现层装配与会话生命周期·三屏壳与组合根句柄面」节 S13 豁免登记在册(v1.22 :183:组合根类变量面=探针契约面,约 46 句柄被探针挂载假设钉死,键永久基线内、禁再恶化)。u25 零改动;本批 main.gd 的其他改动均为卡① 改址与 u6/u19 消费点随动,S10 句柄面零增删。 +2. **u23 测速循环 await**:`game/presentation/tune_sim_controller.gd|await-in-loop`(裸键,在册持平)——依据 architecture「测试与质量域·S13 测量面豁免登记」段在册(v1.22 :311:逐帧让出=调参测量 wall-clock 步进承载语义,禁重构)。同件 print 与 run 局部两键已清;playtest_logger print×2 已删。 + +## 五、并 master 与合并期处置(2026-10-28,合并提交 38c9a0eb) + +迭代期间 master 前进(断言归位专项批 94 处、断言精简 A+B 档 19 处、单元闸挂死守护、undo_proof 退役)。合并冲突 6 文件,处置原则=**master 的断言改钉/删并+本批的容器/拆件改址,两者语义正交逐处并案**(adventure_feats×2/config_db_resolver/level_shop_economy/save_boot_no_activate/roll_multiplier);另发现两批改址的系统性盲区互补——master 新写行带旧表地址 5 处、**本批 T7 扫荡漏「无点形态」(空值守卫/赋值/传参位的裸表引用)17 处+访问器迁移漏网 3 处**,合并期全数修复(action_economy._cost、effect_engine feats 守卫、hud_presenter 两守卫、测试 14 处;终扫 PCRE 负向前瞻零残留,冻结标签字面量未动)。验证集清单机器重生成对账(68 源文件 1587 调用点,与 master 侧计数一致——本批改址零断言数变化)。 + +## 六、实现决定记录 + +**A. 事故与补做** +1. 卡① T7 首轮改址扫荡漏容器表名(`db.combat.rows` 形)→ 整树 `git checkout -- game/` 回滚、修正替换规则后重跑,净效果零(a9a163f9 提交信息在案)。撤销方式:无需(事故已消解于当卡)。 +2. 卡② u14 漏做(T2b 提交信息有记、diff 未含该文件)→ 合并前补做(9bef58f9),装配序逐行原序保持,S7 源锚句逐字在位。撤销方式:回退 9bef58f9 即回键在册态。 + +**B. 键以「在案改善」收口(卡面承诺键消失不可达)** +- u3 board_cell_unit 类变量(31→30)、u4 standee_body 类变量(29→19):gdstyle 0.4.0 对宿主内 inner class 状态件成员按宿主**展平计数**(开工探针实测),键值含状态件成员后必 >15;卡面契约 6 定死 inner class 单形态(零新文件),独立状态类形态被禁。处置=按闸口径收口(改善绿非恶化红),键留基线。代价:两键继续在册。撤销方式:后续批若改 gdstyle 计数口径(类级键排除 inner class)可自然消失;否则随键主文件的下一次结构批裁决。 +- 与卡面「71=69 清+2 豁免」的差额即此两键:实绩 67 清+2 豁免+2 改善。 + +**C. 白名单内等价微调(一行备案)** +1. legend_overlay 循环提函数时尾段成孤儿代码(不可达 NEW 键)→ 尾段归还原调用方。 +2. camp_shop_presenter 束读落地改构造期成员拷贝形态(ctx 键集不变)。 +3. main.gd 战末账行束提 `_end_victory_opts` 装配单点(u6 opts 形随动,键构成不变)。 +4. board_fx 循环按实际 `for i in 2` 形态提函数;battle_log `_fmt_damage` 宿主成员 `_db` 不进状态件。 +5. spawn 束化扫荡加引号奇偶守卫(@@SPAWN_SKIP@@),断言字符串字面量零触碰。 + +## 七、测试移交清单(用户运行——特许移交,全部未跑) + +**交付前验收唯一入口**:worktree 内跑 `python tools/run_all_gates.sh`(本批含 game/ 代码面+reports/ 文档面 → 不带参数全量档;worktree 冷检出注意素材齐盘预检——art 素材与 *.import 边车不入 git)。 + +按卡重点套件(闸绿之外的建议抽查面): +- 卡①:data_config 八套件+core 直引;board_generator/board_gen_reward+node_map 三件(同种子逐位一致);效果面六套件;save 断言面全套(save_manager_domain/save_slot_isolation/save_slot_summary/save_boot_no_activate/breakpoint_resume/save_rng_roundtrip+integration);tree_requires_level/meta_progression_forge;seal_polarity/roll_multiplier/damage_controller/system_contracts/treasure_items_test;minesweeper_rules_test/round_flow_skill_pool;level_shop_economy;adventure_feats/pool_case_d/feat_vouchers/table_structure_guard(**deck_total()=102 结构锚**)。 +- 卡②:probe_gate 全段+system_test;theme_projection/ui_struct/ui_contrast/ui_tune/ui_click/ui_probe;player_copy_sweep/standee_fx_sweep/reward_overlay/battle_narrator/level_map_info_fog/hud_presenter;render_gate(甲组在库五张 golden 改后对拍——**乙组三帧与丙组四态改前锚因码先行动未建,此义务让步**,见 §8)。 +- 撤销证明:两卡 §8.1 末列手法(读数型/迁移型/grep 型)——移交抽查执行。 +- 独立验收审计:两卡 §8.3 抽查重点(卡① ⑪ 项含契约 7 职责语句抽检;卡② ⑨ 项含 u1 子域分组与 board_view 随动改址抽 5 行)——未过不得合并。 +- 批后可裁事项:`tools/gdstyle_baseline.txt --refresh`(152 死键清账,只降不升纪律,人工专用)——用户裁决时机。 + +## 八、实机目检总清单(登记不阻塞,判读口径全部=「与改前一致」) + +1. 启动冒烟实机一屏(卡① 行为零变化批总入口)。 +2. 乙组三屏开合观感:营地/设置/战斗。 +3. 丙组四态开合观感:战末结算/三选一/图例/调试浮窗。 +4. 营地三柜台(树淬炼/锻造工坊/秘宝匣)与同调交互回归。 + +## 九、遗留读数义务 + +1. MC/对拍锚:本批零数值零 RNG 改动 → 零 MC 零对拍补跑(卡① §0 纪律),无遗留。 +2. golden 乙组三帧(camp/settings/battle)与丙组四态改前锚未建(特许时序:码先行动)——改后无法补建改前帧,唯一在库对拍面=甲组五张;呈现等价的其余证据承载=现役探针/单测断言面。 +3. gdstyle 基线 152 死键在册(闸绿不受影响)——refresh 时机归用户(§7 末条)。