From 6a8bde9a8e24aa6561f5800ff0305f914474bc8d Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sat, 24 Oct 2026 09:49:26 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E8=BF=AD=E4=BB=A335=E5=8D=A1=E2=91=A1):?= =?UTF-8?q?=20=E7=AB=8B=E5=8D=A1=E2=91=A1=20=E5=AE=9E=E7=8E=B0=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E2=80=94=E2=80=94=E8=A6=86=E7=9B=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=AE=B5=E6=94=B6=E5=8F=A3=E8=AF=BB=E6=95=B0=EF=BC=88=E4=B8=89?= =?UTF-8?q?=E5=85=B3=E5=8F=82=E6=95=B0=E6=A1=A3=C3=9720=20=E7=A7=8D?= =?UTF-8?q?=E5=AD=90=E5=85=A8=E7=BB=BF=20152=20checks=E3=80=81=E5=9B=9B?= =?UTF-8?q?=E6=9D=A1=E5=8F=98=E5=BC=82=E5=90=AB=E4=B8=80=E6=9D=A1=20NOT-RE?= =?UTF-8?q?D=20=E4=B8=8E=E5=88=A4=E6=8D=AE=E5=8A=A0=E5=9B=BA=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E3=80=81=E6=97=A7=E6=96=AD=E8=A8=80=E9=9A=8F=E5=8A=A8?= =?UTF-8?q?=E5=9B=9B=E6=9D=A1=E9=80=90=E6=9D=A1=E5=A3=B0=E6=98=8E=EF=BC=89?= =?UTF-8?q?=EF=BC=8B=E5=8D=A1=E2=91=A1=20=E6=9C=AC=E4=BD=93=20T1=E2=80=93T?= =?UTF-8?q?4=20=E8=BF=9B=E5=BA=A6=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reports/iter35-卡②-实现报告-2026-10-24.md | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 reports/iter35-卡②-实现报告-2026-10-24.md diff --git a/reports/iter35-卡②-实现报告-2026-10-24.md b/reports/iter35-卡②-实现报告-2026-10-24.md new file mode 100644 index 00000000..25808aa6 --- /dev/null +++ b/reports/iter35-卡②-实现报告-2026-10-24.md @@ -0,0 +1,59 @@ +# 迭代 35 卡② 实现报告(消费侧换代批·含生成图深度扩面覆盖数据同批落) + +- 日期:2026-10-24 起批(进行中) +- 工作区:`D:/code/g-plan2-iter35b`(分支 `iter35b`,起点=master `99e1b20b`,已含卡① 合回 `6475ebff`) +- 卡片:`reports/需求卡片-节点图消费侧换代批-2026-10-21.md` v1.1 +- 批性质:代码实现批——`design/` 与根规则文件只读;账面随动义务落 `reports/`(见 §五) +- 开工实况:卡② §0 的硬交付序列(生成图深度扩面的敌/板表覆盖)由用户 2026-10-24 裁决**与本卡同批落**(卡片原文允许「须先落或与本卡同批落」),故本报告 §一 先记覆盖数据批,后续各段记卡② 本体。 + +## 一、覆盖数据段(已完成·提交 `9214ef8e`+判据加固一笔) + +**授权口径**:数值面改动本属独立批次;用户点名随本批同落,取值授权为「按现有曲线插值、全 provisional」。 + +| 面 | 改动 | 量程依据(卡① 实测) | +|---|---|---| +| 敌侧战斗带顶 | L1 3→6、L2 7→9、L3 7→13,各加一行;敌种复用在册 id(bugbear / giant_spider / duergar),零新内容 | 生成图实际战斗深度 L1≤4、L2≤4、L3≤9;顶带按立卡要件取该关最大生成深度 | +| Boss 按终点深度分带 | L1 加带 6、L2 加带 8、L3 加带 11/12/13(敌种复用 ogre_chief / drider / duergar_king) | 终点深度=layers−r:L1 6;L2 9/8;L3 13/12/11 | +| 板侧 `node_depth` 键域 | 补齐 L1 0–6/L2 0–9/L3 0–13(新增 12 行,其余字段按该关同档行复制) | 生成图每个深度都要出板(覆盖义务含全部节点类型) | +| 敌种与数值纪律 | AC 全部落在迭代 5 已裁带宽(杂鱼 0–5/Boss 8–12);模板时代带键 0–3/4/9 与 hobgoblin 留任位一律不动 | `table_structure_guard_test` 带域断言零改判 | + +**验收断言**(宿主 `game/tests/unit/core/level_shop_economy_test.gd` 新增 `_smoke_generated_coverage`;扫描面=三关参数档 × 种子 42–61): + +- 〔v11〕敌侧落带——生成图每个 battle/boss 节点深度经 `resolve_enemy_rowset` 解析出行的 `depth_band ≥ 请求深度`(等价 `EnemyTable.band_of` 非 -1)。 + 判据加固记录:初稿写作「行集非空」,被撤销证明证伪——越顶时 resolver clamp 到顶带照样返非空行,正是设计禁的「顶 clamp 消解」,故改为落带等式判据。 +- 〔v11〕板侧精确命中——`resolve_board_gen(L, D)` 非空且返回行 `node_depth == D`。 +- 〔v11〕多终点带键互异——同图各终点深度解析出的 `depth_band` 两两不等。 +- 量程读数:L1 深度域 0–6、L2 0–9、L3 0–13;宿主全绿 152 checks(其中本段新起算 3 条)。 + +**变异验证**(逐条注入→最窄宿主见红→`git checkout` 还原;注入前实现已入库,防还原吞掉未提交码): + +| 注入 | 期望红点 | 实测 | +|---|---|---| +| L2 Boss 带键 8 并入顶带 9(回单带) | 带互异 | RED-OK:`多终点 Boss 各终点解析带键两两互异〔v11〕` 红 | +| L3 战斗顶带 13 降到 8(深 9 战斗节点越顶) | 敌侧落带 | RED-OK:`敌侧解析落带 ≥ 请求深度〔v11〕` 红(连带 `(3,battle,8)` 精确键断言红) | +| 删除 board_gen `(3,13)` 精确行 | 板侧精确命中 | RED-OK:`每个节点深度在 board_gen 精确命中〔v11〕` 红 | +| L3 战斗顶带 13→12(首版注入) | 敌侧落带 | NOT-RED·已标注:13 号战斗顶带未被任何生成节点请求(该行为立卡要件保守上限的余量)——据此把判据从「非空」改为「落带 ≥ 深度」,并补上一条真红注入 | + +**旧断言随动四条(声明于此,非静默改判)**: + +| 断言 | 原口径 | 新口径 | 理由 | +|---|---|---|---| +| `table_structure_guard` 〔fv11〕 | 敌人表 20 行且键序=迁移表序 | 28 行且键序=覆盖表序 | 扩带必然改行数与键序;行序即契约的判据形态不变 | +| `table_structure_guard` 〔fv13〕 | 三关 Boss 各恰一行且 band=图 Boss 节点深度 | 三关 Boss 带键清单=覆盖表(L1 4/6、L2 8/9、L3 9/11/12/13) | 判据对象是单终点模板时代形状;生成图多终点必然多行,「互异」移交〔v11〕运行时把关 | +| `level_shop_economy` 混编段 | 注入段还原后表回 20 行 | 回 28 行 | 同一基线行数随覆盖批换代 | +| `level_shop_economy` 深度 8 段 | `(L,8)` 无板行/战斗行残留(商店房专属位清理确认) | `(L,8)` 板侧覆盖行在册;战斗侧仍禁 `(L,battle,8)` 精确键 | 生成图下深度 8 是正常可行深度;扫描面未缩,只按现行设计换板侧正负号 | + +## 二、卡② 本体进度 + +| T 卡 | 状态 | +|---|---| +| T0 事实坐实与卡① 接口对齐 | 待做——接口四件已可由卡① 定稿直读(`generate(params, seed)` 不收 level_index、`{nodes,entries,terminals}`、节点 `id/type/depth/next`、参数档字段名),本段只需核 §3 行号漂移 | +| T1 加载校验换代(四检+良构) | 未开工——任务见分支待办 #2 | +| T2 消费侧切源与行进/定位/确定性换代 | 未开工——任务见分支待办 #3 | +| T3 模板清理与 S1–S8 断言换代 | 未开工(S5/V11 覆盖断言已由 §一 提前落位)——任务见分支待办 #4 | +| T4 产出物 | 本报告即起始件;代拍板单与反哺点清单随收口补 | + +## 三、遗留读数义务 + +- 覆盖数据为 provisional 插值,未跑 MC/对拍——数值面既动,卡② 收口前须请用户裁定是否发起 11 回放确定性对拍与 `balance_verifier` 重跑(本批目前只跑到「覆盖断言绿」,未测难度观感)。 +- 待办清单 06 条目「覆盖批未立卡」缺口段现况已过期(覆盖数据已随本批落地),状态回写归文档批。