From 356029d0075238219a9027cb45176d98eb611baf Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sun, 25 Oct 2026 18:38:29 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E6=94=B6=E5=8F=A3):=20P0=20=E6=8B=86?= =?UTF-8?q?=E5=88=86=E5=8D=A1=E7=BC=BA=E5=8F=A3=E8=A1=A5=E8=AE=B0=E8=90=BD?= =?UTF-8?q?=20reports/=E2=80=94=E2=80=94=E4=BB=B6=E8=BE=B9=E7=95=8C?= =?UTF-8?q?=E6=A1=88=EF=BC=88Flow/RewardStop/HeroLedger/BreakpointSchema/?= =?UTF-8?q?=E5=91=88=E7=8E=B0=E4=B8=8B=E6=B2=89=EF=BC=89=EF=BC=8B=E6=92=A4?= =?UTF-8?q?=E8=A3=85=E7=BD=AE=E5=BF=85=E9=A1=BB=E4=B8=8E=E6=8B=86=E4=BB=B6?= =?UTF-8?q?=E5=90=8C=E6=89=B9=E7=9A=84=E8=AF=BB=E6=95=B0=E5=AE=9E=E8=AF=81?= =?UTF-8?q?=EF=BC=88=E5=8F=AA=E6=92=A4=2025=20=E6=9D=A1=E8=BD=AC=E5=8F=91?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=EF=BC=9D=E7=B1=BB=E5=8F=98=E9=87=8F=2042?= =?UTF-8?q?=E2=86=9238=E3=80=81=E5=85=AC=E5=BC=80=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BB=8D=2023=EF=BC=8C=E5=80=BA=E6=9C=AA=E8=BF=98=EF=BC=89?= =?UTF-8?q?=EF=BC=8B=E5=86=99=E5=8D=A1=E5=89=8D=E5=BE=85=E8=A3=81=E4=BA=94?= =?UTF-8?q?=E4=BB=B6=E4=B8=8E=E9=AA=8C=E6=94=B6=E9=9D=A2=E9=A2=84=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reports/iter37-拆分卡缺口-2026-10-25.md | 47 +++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 reports/iter37-拆分卡缺口-2026-10-25.md diff --git a/reports/iter37-拆分卡缺口-2026-10-25.md b/reports/iter37-拆分卡缺口-2026-10-25.md new file mode 100644 index 00000000..15b01328 --- /dev/null +++ b/reports/iter37-拆分卡缺口-2026-10-25.md @@ -0,0 +1,47 @@ +# iter37 → P0 拆分卡缺口补记(2026-10-25) + +给写卡段(`req-card`)的输入。**不是需求卡片**,也**不是本批返工清单**——本批四卡已按用户令收口,这份只把 P0 条目「AdventureRunner 职责真拆分」的四件缺口补成可写卡形态。落点读数以 HEAD `9e3e2667` 盘面为准。 + +## 1. 现状读数(为什么不能只删转发属性) + +| 面 | 现值 | S13 阈值 | 只删转发属性后 | +|---|---|---|---| +| `adventure_runner` 类变量 | 42 | ≤15(超出走基线登记) | 38(−4)——**仍远高于阈值**,红不红取决于登记值,债没还 | +| `adventure_runner` 公开方法 | 23 | ≤20 | 23(**一件没减**,委托层全是公开/私有方法) | +| `level_runner` 类变量 | 38 | ≤15 | 30 | +| `level_runner` 公开方法 | 54 | ≤20 | 54 | +| `board_view` 类变量 | 45 | ≤15 | 32(board_view 侧同类转发属性 13 条,卡③ 产物,同一债种) | + +结论:**撤装置=还一半债(计数改善,新键形态不判红),但职责混合一点没解**。真拆分才可能压到阈值内。 + +## 2. 按变化原因的件边界(待裁案的起点,非结论) + +| 件 | 应收的成员(现宿主址) | 应收的方法 | 变化原因 | +|---|---|---|---| +| `AdventureFlow`(留名 adventure_runner) | `state`/`level_index`/`levels_total`/`_runner`/`_pending_next_level`/`_last_level_payload` | `start_adventure`/`resume_adventure`/`_start_current_level`/`_bind_level_runner`/`_inject_level_params`/`_present_level_entry`/`_on_level_finished`/`_settle`/`continue_to_next_level`/`abandon`/`runner` | 关序推进与结算受理一次 | +| `RewardStop` | `_curio_pending`/`_curio_result`/`_node_curio_pending`/`_attune_refresh_x`/`_refresh_stock`/`_pending_rap`/`_time_sand_queue`/`_curio_paid_refreshes` | `pick_curio`/`apply_node_curio`/`present_node_curio`/`node_curio_candidates`/`skip_empty_curio`/`_apply_curio_pick`/`_finish_curio_pick`/`_finish_node_bonus`/`_redeem_feat_ticket`/refresh 族五件/`_feat_payload_keys` | 奖励怎么给、怎么刷、怎么确认 | +| `CurioDeck`(已建) | 池与凭证计数(已入件) | 已入件 | 池规则 | +| `HeroLedger` | `ledger`/`run_ledger`/`_base_override`/`_override`/`purchased`/`keystone`/`_feats` | `effective_max_hp`/`apply_rest`/`set_hero_override`/`feats_held`/`_seed_attune_charges` | 数值叠加与生命口径 | +| `BreakpointSchema` | `BREAKPOINT_FIELDS`(const 可留宿主,派生段出根) | `_snapshot_breakpoint`/`_bp_parts`/`_bp_read`/`_bp_read_int`/`_bp_strategy`/六个 `_resume_*` | 存档格式 | +| 呈现接线 | 无 | `_forward_*` 六件+信号面 | UI 事件形状(候选下沉装配层,见缺口④) | + +## 3. 写卡前必须裁的五件 + +1. **RewardStop ↔ CurioDeck 分界**:停点三态归 RewardStop 还是 CurioDeck?`_redeem_feat_ticket`(兑付推进,且体内有断点时点)在谁侧——现方案是宿主用 `bind_handlers` 把 `_apply_curio_pick`/`_redeem_feat_ticket` 反向插进 CurioDeck,件与宿主双向拉扯,必须定一个方向。 +2. **HeroLedger 与既有 `RunLedger` 的关系**:`run_ledger` 已存在且被 LevelRunner 共享引用(`set_run_ledger` 下传)。是把 `ledger`(hero_hp/gp)并进 RunLedger,还是新立 HeroLedger 包两只?并=共享引用面重划;新立=多一层。 +3. **BreakpointSchema 独立成件的取舍要重裁**:卡④ §11 以「27 键多数取宿主态、开洞面>收益」淘汰过独立件。真拆分后键值来源收敛到三个件(Flow/RewardStop/Ledger),该论据部分失效——重裁时须给「开洞面」的新读数。 +4. **公开面收缩与调用方改动一并算进验收**:main.gd(`start_adventure`/`resume_adventure`/`continue_to_next_level`/`pick_curio`/`apply_node_curio`/refresh 面/`runner`/`feats_held`)、`camp_shop_presenter`、`curio_interact_controller`、`ui_click_probe`(iter36 wc2 续玩断言)、五套测试的直引点(含从转发面直改件内状态的三处:`adventure_feats_test.gd:390-393`、`feat_vouchers_test.gd:92-93`、`level_shop_economy_test.gd:1351-1353`)。 +5. **撤装置必须与拆件同批**:单独撤 25 条转发属性=测试成片红(它们靠转发面写件内状态)。卡片需把「测试改法」列为改动单元并各配真实入口断言,否则该批无法闭合。 + +## 4. 验收面预案(供卡片 §8.2 直接展开) + +- 每新件至少一条真实入口断言:`RewardStop`=走 `start_adventure`→通关三选一→选一件→断言加算区/池余量/停点态清零;`HeroLedger`=rest 与 heal 封顶走真链;`BreakpointSchema`=已有〔wr2〕三条+续玩真链(`ui_click_probe` wc2 段)。 +- 撤销证明:每单元至少一条「回退本批 hunk → 断言红 → 还原复绿」;禁注入式变异(P0 令)。 +- 等价面:断点 27 键键名/缺省/回退策略逐键冻结;RNG 流名与消费序(`reward_pick`)零漂移;MC/11 对拍是否发起由用户裁(触及存档/RNG/结算面)。 +- 基线:`tools/gdstyle_baseline.txt` 禁改;计数下降属改善,新键形态下不判红(`37625317` 已治本)。 + +## 5. 本批随批留痕的相关条目 + +- 待办清单 P0 条目(`84dc3e4b`)——覆盖面待补 board_view 13 条(反哺点第 4 条)。 +- 代拍板单 B-1/E-1——转发属性装置的成因与认错。 +- 实现报告 §4 第 1/3 条——装置清单与「件封装是名义的」实证。