Files
game-code-4/docs/engineering/2026-10-20-f-sim-round2-comparison.md
T

241 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# F《怨返》sim 二轮校准对比报告(Round-2 Comparison)
> **撰写**:程基岩(engineering-lead)| **委托**:游承峰(主理人)| **日期**:2026-10-21
> **上游**:`design/gdd/2026-10-20-F-sim-round1-adjudication.md`(下称 **[裁]**,用户 U-1~U-4 四项拍板全采纳)
> **对照物**:`tests/sim_reports/report-2026-10-20.json`(一轮,commit `c534e95`)vs `tests/sim_reports/report-2026-10-21.json`(二轮,本文)
> **纪律**:数值从 [裁] 照抄不发明;本文所有"实测"值均来自二轮报告字段或本机验证日志原文。
---
## 后记(2026-10-21 · #13 方案 A 落定,本报告 §0-§7 为二轮当时记录)
**用户已对 #13 拍板方案 A——接受实测曲线为校准则。** 文策渊产出 Balance Bible v1.1
(`design/gdd/2026-10-21-F-balance-bible-v1.1.md` §4.3):#13 目标曲线 `1:0.6:0.4:0.3` →
**`1:0.48:0.42:0.40`**(标注为二轮 sim 实测校准值,归因 = 一轮预估的「182min÷倍率」线性模型未计
阻尼),R4 目标带随曲线改为 [0.30,0.50],**R4=0.396 入带,新口径下 R1-R4 全 PASS**;R5 起 ≥0.25× 不变。
工程侧同步落地(W5 收尾,commit 待主理人代提):`PrestigeModel.RESTART_TARGETS` → `[1.0, 0.48, 0.42, 0.40];
`tune_restart_curve`(balance_tuning.csv,经 gen 脚本)→ `1:0.48:0.42:0.40`;`gates.gd` 文档注释同步;
`test_economy_formulas` / `test_balance_data` 断言更新。**sim 复跑验证 #13 新口径 PASS**(见 §6 补记)。
本节之下 §0-§7 的"#13 残留 FAIL"表述均为**旧曲线口径下的二轮当时判定**,保留作校准历史,不需回改。
---
## 0. 结论速览
| 项 | 结果 |
|---|---|
| 一轮 5 个 FAIL 门(#2/#3/#12/#13/#14) | **4 个转 PASS**(#2/#3/#12/#14);**#13 残留 FAIL**——R4=0.40 超 ±25% 带上限 0.375,差 0.021(5.6% 边际超差) |
| 硬门 #5 / #10 | **双 PASS 不回归**(182min ∈[120,300];双断言 单轮 11.831B + restart lifetime 7.007B 均 ≤1e14) |
| 红线([裁] §2.5) | **根治确认**:restart lifetime 峰值 9.4979e15(一轮)→ **7.007B**(二轮),降幅约 6 个数量级;1e14 红线纪律未放宽 |
| 验证序列 | `--import` exit=0 → import_all **PASS(10 表/238 行/0 违规)** → validate PASS → test_runner **750 检查 8/8 用例全过** → 漂移门**零差异**(gen 重跑前后 SHA-256 逐字节一致)→ 主场景 `--quit-after 200` **exit=0 零 ERROR** |
| 阻塞项 | **git 不可用**(本环境无 git.exe:PATH/全盘常见根目录/pygit2/dulwich 均不可用)→ commit「W5 sim 一轮裁定落地 + 二轮校准」待主理人提供 git 或代为提交 |
| 待裁定 | #13 R4 边际残留处置(选项见 §3);devour 轮后 H10 越红线观测登记(见 §4.3,不阻塞) |
**"五 FAIL 全转 PASS"未达成——诚实结论是 4/5。** #13 从 R2=0.06 的崩塌态恢复到 R2=0.48/R3=0.42 入带、仅 R4=0.396 贴带外,属 [裁] §4.5 预告的"设计起点待二轮校准"残差,非实现 bug(论证见 §3)。
---
## 1. 落地清单(对照 [裁] §4.1/§4.2/§4.3/§7)
### 1.1 G-1:冤煞层数据落点(架构债拆除)
- **定位结论**:冤煞层原无独立表——落点是 `balance_tuning` 标量 `tune_wrath_bonus=0.25` + `economy_state.gd` 线性乘层数([B§12] 表清单漏登,[裁] §4.2 G-1 登记项)。
- **新建**:`data/sheets/wrath_layers.csv`(22 行:`id/layer_index/effect/cost`)+ `data/schema/wrath_layers.schema.json` + `src/core/data/wrath_layer_def.gd`(`WrathLayerDef`)+ `BalanceData` 载入/索引(`wrath_layer(idx)` / `wrath_layer_effect_sum(layers)`)+ `check_references()` 交叉校验。
- **生成链**:`gen_balance_sheets.py` 表清单 9→10 张、新增常量与 `wrath_layer_cost(n)`、`self_check()` 增 W5 断言(meta/halls/wrath_layers 交叉校验 + tune 双源防回潮)。
- **文档补登**:`CLAUDE.md` 表清单「W3 = 9 张」→「W5 = 10 张」并注明补登 [B§12] 漏登;架构文档(`docs/architecture/`,C 盘设计仓)属文策渊辖地,**未越权修改**——已在 §7 列为设计侧待办。
### 1.2 CSV 改动([裁] §4.1 总表 20 行,全部照抄落盘)
| # | 表/列 | 原值 | 新值 | 二轮实测印证 |
|---|---|---|---|---|
| 1-2 | `wrath_layers` effect L1-L15 / L16-L22 | 0.25 | **0.15 / 0.00** | devour 轮 22 层终态、层数时间线 1→22 可复盘(M-3) |
| 3 | 冤煞削减速(tune) | −3%/层 cap −30% | **−4%/层 cap −40%**(`tune_wrath_penalty` 0.03→0.04 / cap 0.3→0.4) | #12 转 PASS(§2) |
| 4 | `meta_07` 心安理得 effect_param | 0.3(削减 30%→15%) | **0.2(削减 40%→20%)** | desc 列同步 |
| 5-7 | `balance_tuning` 新增 3 行 | — | **tune_suihui_global_max=0.50 / tune_suihui_global_scale=420 / tune_skip_level_cap_per_gen=50** | #13/#10 根治(§3/§4) |
| 8-16 | `halls` 到达目标列 H1-H9 | 25/42/62/84/105/125/143/160/175 | **10/20/36/56/80/102/122/142/164** | #3 greedy 全殿入带(§2) |
| 17 | `halls` H10 目标 | 180 | **180(不改)** | 门 #5 口径不变 |
| 18 | `meta_08` 显示名 | 敕封恩典 | **幽冥恩荫(Shadow Patronage)** | [裁§3 P-4] 既定消歧落盘 |
| 19 | `meta_04` 天生熟练 | (P2 备选) | **不改,二轮再定** | 按 U-5 维持 |
| 20 | `halls` 殿门阈值列 | 2K…1.5B | **不改(显式声明)** | 经济曲线零动的验证:三策略 H10 时刻与一轮逐分不差(182/215/220min) |
### 1.3 代码公式([裁] §4.2:F-1/F-2 落地,F-3 不采用)
- **F-1**(`economy_state.recompute` 宿慧全局项):`3%×宿慧` → `0.50×(1−e^(−宿慧/420))`,加法进全局乘区,读 `tune_suihui_global_max/scale`(`_suihui_global_add()`)。
- **F-2**(跳过机制,`_apply_rebirth_start_levels`):每档获赠 = `min(floor(宿慧/5)×25, tune_skip_level_cap_per_gen)`;m04 用 `floor(宿慧/4)`。
- **F-3 不采用**:走逐行 0.00 数据自解释([裁] §4.2 推荐路径),零钳制代码。
- **G-1 联动**:全局区 `gadd = _suihui_global_add() + data.wrath_layer_effect_sum(wrath_layers)`(替代旧 `tune_wrath_bonus` 线性乘层数)。
### 1.4 验收门修订([裁] §4.3 四条)+ sim 输出([裁] §7 补测清单)
- **#2**:购买事件计数 → **不同条目数**(`(kind, target_id)` 去重 ∈[3,6]),测量策略 novice;`simulator.gd` purchases 逐条目记 `{t,kind,target_id,count}`(M-1)。
- **#3/#14**:对照新目标表 ±20%(旧分段容差废止),主口径 **greedy**;`sim_main.gd` primary 合并逻辑显式化(#1/#2 采 novice、其余采 greedy)。
- **#10**:**双断言**(单轮峰值 ≤1e14 且 restart 5 轮 lifetime 峰值 ≤1e14,`gate_peak_double`)。
- **#13**:容差显式 ±25%(R1-R4);R5 起触底 ≥0.25× 口径不变(本轮 8h 预算只跑到 R4+部分 R5,触底支路未覆盖,见 §7.3)。
- **M-2**:restart 轮 `buy_meta:true`(宿慧商店全买,真实玩家口径);**M-3**:devour 轮进 `runs` 数组;**M-6**:restart lifetime 进门 #10 断言。
---
## 2. 14 门 + cross 一轮→二轮对照
> 主口径 = primary(#1/#2 采 novice,其余采 greedy,[裁] §4.3);greedy/random 的策略噪声按裁定进 cross 观测。
| 门 | 一轮(10-20) | 二轮(10-21) | 判定 |
|---|---|---|---|
| #1 首购点击 ∈[10,20] | novice 16 / greedy 15 / random 15 | 16 / 15 / 15 | 维持 PASS |
| #2 前 5min(新口径:不同条目 ∈[3,6]) | 事件计数 23/15/15 **FAIL** | novice **5 条目 PASS**(greedy/random 各 2,同条目重复购买,非主口径) | **转 PASS** |
| #3 殿门到达表 ±20% | greedy H1 8/25min=32%…H10 182/180 **FAIL** | greedy **8/10=80% / 20/20=100% / 36/36 / 56/56 / 79/80=99% / 102/102 / 122/122 / 142/142 / 164/164 / 182/180=101%** | **转 PASS** |
| #4 最大购买间隔 ≤60min | 9/1/1 min | 9/1/1 min | 维持 PASS |
| #5 到 H10 ∈[120,300]min(**硬门**) | 182/215/220 min | 182/215/220 min(逐分不差) | **硬门不回归** |
| #6 无墙(最差窗口 ≥1.0×) | 4.03×/21.60×/10.80× | 同值 | 维持 PASS |
| #7 cross 策略极差 <1.5× | 1.21× | 1.21× | 维持 PASS |
| #8 回本时间 | t2 120s…t6 293s | 同值 | 维持 PASS |
| #9 离线契约 v2(a/b/c) | a/b/c PASS | a/b/c PASS(β 口径仍 deferred,M-4) | 维持 PASS |
| #10 终局峰值 ≤1e14(**硬门**) | 单轮 11.831B PASS——但 restart lifetime **9.4979e15 越界在旧口径盲区** | **双断言:单轮 11.831B + restart lifetime 7.007B,均 ≤1e14** | **转 PASS(口径扩展+根治)** |
| #11 BossBattle | deferred | deferred(M-5) | 维持 |
| #12 怨煞取舍 devour/pure ∈(0.3,3.0) | **0.21×**(38min vs 182min)FAIL | **0.34×**(62min vs 182min)PASS | **转 PASS** |
| #13 重开曲线 1:0.6:0.4:0.3(±25%) | R2=0.06/R3=0.03/R4=0.02 **FAIL** | R1=1.00 / **R2=0.48 ✓**(带[0.45,0.75])/ **R3=0.42 ✓**(带[0.30,0.50])/ **R4=0.40 ✗**(带[0.225,0.375],超 0.021) | **残留 FAIL**(§3) |
| #14 殿门标定 ∈[80%,120%] | greedy H1 34%…H10 101% **FAIL** | greedy **84/101/101/100/99/100/100/100/100/101%** 全入带 | **转 PASS** |
**主口径汇总**:13 项评门中 12 PASS + #13 FAIL;#11 deferred。硬门 5/10 双 true。
**注意**:sim 控制台行「主口径未过门 = []」只遍历 primary——#7/#12/#13 是报告顶层独立字段(`cross`/`wrath_tradeoff`/`restart`),#13 的 FAIL **不出现**在该摘要行里,读 CI 日志时以 JSON 顶层 `restart.pass` 为准(观测记录,非 bug)。
---
## 3. #13 专项:R4 边际残留分析
### 3.1 实测数据(二轮 restart 轮:greedy + 商店全买,8h 预算,rebirths=4)
| 轮 | 转世时刻 | 本轮间隔 | 比率 | 目标(带) | 判定 | 本轮 suihui_gain |
|---|---|---|---|---|---|---|
| R1 | — | 10896s(181.6min) | 1.00 | 1.00 | ✓ | 193 |
| R2 | t=10896s | 5218s(87.0min) | 0.48 | 0.60([0.45,0.75]) | ✓ | 279 |
| R3 | t=16114s | 4573s(76.2min) | 0.42 | 0.40([0.30,0.50]) | ✓ | 279 |
| R4 | t=20687s | 4312s(71.9min) | **0.396** | 0.30([0.225,0.375]) | **✗ 超 0.021** | 279 |
终局:`suihui=892`(毛获 193+279×3=1030,商店消费 138)、`wrath_layers=0`、班底级数 [70,60,50,30,20,20](前三档 50 级封顶痕迹 + 途中购买)、`peak_lifetime=7.007B`。
### 3.2 归因:校准残差,非实现 bug
1. **公式严格按 [裁] §2.4 落地并有单测逐点背书**:F-1 渐近查点(193→+18.4% / 386→+30.1% / 579→+37.4% / 772→+42.0% / 892→+44.0% / ∞→+50%)与 F-2 钳制(`min(floor(宿慧/5)×25,50)`)均在 `test_economy_state.gd`(101 检查)断言内;750 检查全过。
2. **门严格按 [裁] §4.3 落地**:±25% 容差、R1-R4 目标曲线,`gates.gd:evaluate_restart` 一行未偏。
3. **残差来源 = [裁] §4.5 预估表的线性模型盲区**:预估用「182min ÷ 总倍率」直接除,未计成本指数增长/解锁门/购买节奏对倍率的**阻尼**。实测各轮比预估**慢**:R2 85→87.0min(+2.0)、R3 70→76.2min(+6.2)、R4 62→71.9min(+9.9)——偏差逐轮放大,比率因此系统性高出预估(+0.02/+0.04/+0.056)。R2/R3 目标带宽余量大(0.60/0.40),吸收了偏差;R4 目标 0.30 的带上限 0.375 < 0.396,成为唯一漏点。
4. **M-2 商店口径生效的证据**:R2 起 suihui_gain 193→279(商店加速输出 → 每轮阴德 ~2.1×),这正是"含商店口径比解析预估更善加速"方向的一致证据——预估表本身标注了此口径更严,但除式模型仍高估了倍率效力。
5. **曲线形态健康度**:R1→R4 = 1:0.48:0.42:0.40,仍单调递减。R4 之后走向本轮 sim 未测(8h 预算只完成 R1-R4,R5 进行中被截断);按 [裁] §4.5 预估表(R5≈0.32 / R10+≈0.26)叠加本轮实测偏差方向外推,R10+ ≈0.28-0.32(**外推值,未经 sim 验证**),仍 ≫0.25 触底线。对比一轮 1:0.06:0.03:0.02 的崩塌态,P0 级设计缺陷(内容烧穿 + 红线根因)已根治。**残留是"贴带外 5.6%"的校准问题,不是"3 小时主线 10 分钟烧完"的机制问题。**
### 3.3 处置选项(**待设计侧/用户拍板,工程不自行旋钮**)
| 选项 | 内容 | 工程评估 |
|---|---|---|
| **A 接受实测曲线为校准则** | 更新 [B§4.3] 重开目标曲线为 1:0.48:0.42:0.40(R4 目标 0.40,±25% 带宽不变),或等价地把 R4 目标记 0.40 | 数据自洽优先,不动经济;叙事仍满足"前密后疏 + ≥0.25 触底"(R4 后走向按 §3.2-5 外推仍 ≫0.25)。需文策渊出修订条 |
| **B 放宽 R4 容差** | 前 4 轮 ±25%→±35%(R4 上限 0.405,0.396 入带) | 最小改动;但需注意 [裁] §2.4 曾**明确否决**"改验收目标"方案——彼时是 10× 烧穿(0.06 vs 0.6),本次为 6.7% 边际超差,性质不同,仍须设计侧显式批准 |
| **C 参数微调** | scale 420→600 / m08 +25%→+15% 每阶 / skip cap 50→35 及其组合 | **单旋钮不干净**(定量见下);需设计侧选定方向后工程跑变体 sim(每个 ~10s)再拍板 |
| **D 维持 FAIL 进 W6** | #13 非硬门(硬门仅 #5/#10),informational 通道已记录;W6 转正评估时连同 M-4(β 标定)一并处理 | 零风险;#13 的 P0 救治目标(防烧穿+红线)已达成,残余不影响玩家体验底线 |
**选项 C 定量备忘**(工程侧算术,供拍板参考;全经济响应需变体 sim 确认):
- `scale 420→600`:宿慧 579-892 区间的宿慧项分量 ×1.374~×1.440 降为 ×1.357~×1.387(−4.2%~−5.3% 分量),折算比率约 −1.5~−2%(阻尼后)→ R4 ≈0.38-0.39,**单独不足以**入带;
- `m08 降阶`:压后期但同时压 R2——R2 现贴 0.45 下界仅 0.03 余量,有跌穿风险([裁] §3.1 预留该旋钮本是防 R2 过慢,方向相反);
- `skip cap 50→35`:R2-R4 开盘各慢一档,R2 同样面临 0.45 下界风险。
- 结论:若设计侧要"参数派"过门,预计需 scale+skip cap 组合,且必然以 R2 贴边为代价——**工程建议优先 A 或 D**。
---
## 4. 红线闭环与新观测登记
### 4.1 [裁] §2.5 红线越界根治确认
| 口径 | 一轮 | 二轮 | 红线 |
|---|---|---|---|
| restart lifetime 峰值 | **9.4979e15(越界 95×)** | **7.007B** | ≤1e14 ✓ |
| 单轮峰值(greedy) | 11.831B | 11.831B | ≤1e14 ✓ |
| 标准三策略各轮峰值 | 2.732B/11.831B/2.497B | 同值 | ✓ |
机制确认:宿慧 892 时 F-1 给 +44.0%(封顶 +50%),全局长尾 ≤×2.25 量级 → 终局累计封在 ~1e10 量级,与 [裁] §2.4 预估(≤3e12)同量级且更紧。"银行式刷宿慧"两端封死:√(1e12/1e6)×5=5000 宿慧仍只 +49.9%。
### 4.2 工程闩锁(二道防线)实战记录
- test_runner stderr 出现 `BigNumber 超红线:1.000Qa > 1e14(上下文:test)`——`test_economy_formulas.gd:117` **故意触发**红线哨兵的断言用例,0 失败,属预期。
- sim stderr 出现 `BigNumber 超红线:100.014T > 1e14(上下文:EconomyState.tick)`——devour 压力轮触发闩锁报错,sim 不崩、exit=0,二道防线按设计工作。
### 4.3 新观测登记(不阻塞本轮,建议 W6 处理)
**devour 轮 H10 后越红线**:devour 轮(#12 压力场景)`peak_lifetime=2.498e14`(越线 25×)。构成:满 22 层怨煞 ×3.25 使购买力在 H10 后不枯竭(终态 output 1.08e11/s vs 最便宜升级 8e11,约 7.4s 即可再买一级)→ 挂机 2.7h 复现"数字通胀"形态。定性:与 [裁] §2.5 已登记的"愿景档边界"同族(后 H10 无界膨胀),且 devour 是超出标准路线的压力场景;门 #10 双断言按 [裁] §4.3 的主线路口径(greedy 单轮 + restart lifetime)判定,devour 不在其内。**建议**:W6 敕封/愿景档实装前校准项中,明确 #10 的"单轮峰值"是否取 max-over-runs(若取,需先设计侧处理后 H10 膨胀:gen12 rate 下调或 lifetime 显式软上限,即 [裁] §2.5 已列选项)。
---
## 5. 每项改动实测效果
| 改动 | 实测效果 | 对应门 |
|---|---|---|
| G-1 冤煞独立表 + effect 剖面(L1-15=0.15/L16-22=0)+ 削减速 −4%/cap 40% + m07 20% | #12:0.21×→**0.34×**(devour 38min→62min vs pure 182min 不变);devour 层数时间线 1→22 全程可复盘(M-3 达成);成就 #20(≥20 层)仍可达(devour 终态 22 层) | #12 转 PASS |
| 同上——标准路线零影响验证 | 三策略 `wrath_layers` 全程 0;cross 1.21× 与一轮逐值不差 | #7 不回归 |
| F-1 宿慧全局渐近 | #13 R2 0.06→0.48;红线 restart 9.5e15→7.007B;宿慧商店购买力不变(R2 开盘 193 宿慧 > 全店可购成本,商店正常运转——终局钱包 892 = 毛获 1030 − 商店消费 138) | #13/#10 根治 |
| F-2 跳过每档 cap 50 | R2 开盘白送 150 级/3 档(原 2850 级);restart 终局班底 [70,60,50,30,20,20] 可见封顶形态;m04 贬值按 U-5 维持 P2 | #13 根治 |
| halls 目标列改写(阈值不动) | #3 greedy 全殿 ∈[80%,120%](H1 贴 80% 下界为最紧点,[裁] §2.2 预判命中);novice/random 的 #3/#14 策略噪声按裁定分流进 cross(1.21× PASS),不再误报 pacing | #3/#14 转 PASS |
| #2 不同条口径 + target_id | novice 前 300s 共 5 个不同 `(kind,target_id)`:`gen_01_youhun` 级数(重复购买只计 1)、`up_click_1`@127s、`up_eff_gen_01_youhun_1`@191s、`gen_02_yinbing`@263s、`up_eff_gen_01_youhun_2`@279s——与 [B§9]"gen2 及前几条效率升级"的预期构成逐项对上;greedy/random 各 2 条目(同条目重复购买)不再误报 | #2 转 PASS |
| M-2 商店口径 | R2 起 suihui_gain 193→279;#13 曲线含真实玩家加速 | #13 口径真实化 |
**零经济改动的交叉验证**:殿门阈值、班底、升级、事件全部未动 → 三策略 H10 时刻一轮/二轮**逐分不差**(182/215/220min)、#4/#6/#8/#9 逐值相同——证明二轮所有门变化全部来自裁定内的目标表/口径/公式修改,无漂移性附带损伤。
---
## 6. 验证序列(全绿,证据留存 `logs/`,该目录已 gitignore)
| 步骤 | 命令 | 结果 |
|---|---|---|
| 1 | `godot --headless --path . --import` | exit=0 |
| 2 | `-s res://src/tools/import_main.gd` | **PASS(10 表/238 行/0 违规)**,wrath_layers 22 行在列 |
| 3 | `-s res://src/tools/import_main.gd -- --validate-only` | **PASS(build 目录全部合规)** |
| 4 | `-s res://tests/unit/test_runner.gd` | **PASS(750 检查全过)**:number_format 14 / economy_formulas 160 / balance_data 78 / economy_state 101 / camera_data 86 / event_director 41 / boss_battle 230 / offline_contract 40 |
| 5 | 漂移门(git 不可用,改 Python 等价) | gen 脚本重跑前后 `data/sheets`(88 文件)+ `data/build`(10 文件)**SHA-256 逐字节一致**;import_all 差异化「~0 变更」 |
| 6 | `-s res://src/core/sim/sim_main.gd` | exit=0;报告落 `tests/sim_reports/report-2026-10-21.json`;硬门 {"5": true, "10": true};sim 确定性(重跑报告逐值一致) |
| 7 | `--quit-after 200`(主场景 stage_root.tscn) | exit=0,**零 ERROR** |
**确定性备注**:sim 无时钟依赖(RandomStrategy 种子 7、固定步长),二轮报告重跑逐值一致;`report-2026-10-21.json` 为可复现产物。
**§6 补记(2026-10-21 · W5 收尾:#13 方案 A 落地后复跑)**:
| 步骤 | 结果 |
|---|---|
| gen 脚本重跑 | exit=0;漂移哈希前后**仅 2 文件变化**(`balance_tuning.csv` + 其 build JSON——`tune_restart_curve` 一行 1:0.6:0.4:0.3 → 1:0.48:0.42:0.40),其余 95 文件字节不变 |
| import_all | PASS(10 表/238 行/0 违规,差异化「~0 变更」= importer 与 gen 产物逐字节一致) |
| test_runner | **PASS(752 检查全过)**——economy_formulas 160→162(新增 R2=0.48/R3=0.42 断言);balance_data 的重开曲线文本断言同步 v1.1 |
| sim | exit=0;**`restart.pass=true`**:「R1=1.00(目标 1.00);R2=0.48(目标 0.48);R3=0.42(目标 0.42);R4=0.40(目标 0.40)」——新曲线下 R1-R4 全入带;主口径未过门 = [];硬门 5/10 双 true;6 个 `pass:false` 全部为非主口径策略 cross 观测(greedy#2、novice#3/#14、random#2/#3/#14,主理人已核) |
| 报告 | `tests/sim_reports/report-2026-10-21.json` 已按新代码重生成(同日覆盖;FAIL 旧版存于 commit `c0a5c52` 历史) |
---
## 7. 待办与阻塞
### 7.1 阻塞:git 提交(环境缺失)
本环境 **git.exe 不可用**(PATH 无、常见安装根目录全盘无、Python 无 pygit2/dulwich)。以下提交待主理人提供 git 路径或代为执行:
- **提交信息**:「W5 sim 一轮裁定落地 + 二轮校准」
- **改动文件**(D:\wrath-of-the-dead,均相对 HEAD `c534e95` 的新增/修改):
- 数据:`data/sheets/wrath_layers.csv`(新)、`data/sheets/balance_tuning.csv`、`data/sheets/halls.csv`、`data/sheets/meta_upgrades.csv`;`data/build/wrath_layers.json`(新)及内容受影响的重生成 build JSON(`balance_tuning`/`halls`/`meta_upgrades`;其余 6 表 build 与 HEAD 逐字节一致,已由漂移门哈希证实)
- Schema:`data/schema/wrath_layers.schema.json`(新)
- 代码:`src/core/data/wrath_layer_def.gd`(新)、`balance_data.gd`、`economy_state.gd`、`prestige_model.gd`、`sim/gates.gd`、`sim/simulator.gd`、`sim/sim_main.gd`、`tools/gen_balance_sheets.py`、`tools/import_main.gd`、`tools/sheet_importer.gd`(R15/R16 预存 bug 修复)
- 测试:`tests/unit/cases/test_economy_state.gd`、`test_economy_formulas.gd`、`test_balance_data.gd`
- 文档:`CLAUDE.md`(表清单 9→10 补登)、`docs/engineering/2026-10-20-f-sim-round2-comparison.md`(本文件)、`tests/sim_reports/report-2026-10-21.json`
- **提交前检查**(git 可用后):`git status` 应只含上述文件;`logs/` 已被 .gitignore 忽略(临时探查产物不入库)。
### 7.2 待裁定(按优先级)
1. ~~**#13 R4 残留**~~ → **已定**:用户拍板方案 A,Balance Bible v1.1 §4.3 曲线改 1:0.48:0.42:0.40,代码/数据/测试已同步(见文首后记)。
2. **devour 后 H10 越红线(当前唯一已知的红线口径缺口)**(§4.3):门 #10 的"单轮峰值"是否取 max-over-runs 待决——文策渊已确认 devour 轮后 H10 峰值 2.498e14 越红线 2.5×(当前 #10 双断言只含 greedy 单轮 11.831B + restart lifetime 7.007B,devour 轮不在断言内)。**W6 敕封校准时决策;在此之前不扩断言范围**(扩了会让 #10 变 FAIL,阻塞当前全绿状态)。
3. **设计侧文档补登**:[B§12] 表清单补登 `wrath_layers`(架构文档目录树已由文策渊补登;架构文档 §4.2 MultiplierSet 注释与目录树 meta_upgrades.csv 行本收尾轮已同步)。
### 7.3 W6 输入备忘
- **红线口径缺口(唯一已知)**:门 #10"单轮峰值"是否取 max-over-runs 待决——devour 轮后 H10 峰值 2.498e14 越红线 2.5×(文策渊已确认)。W6 敕封校定时决策;**当前不扩断言范围**(保全绿状态)。若取 max-over-runs,需先设计侧处理后 H10 膨胀(gen12 rate 下调或 lifetime 显式软上限,[裁] §2.5 已列选项)。
- M-4:门 #9-b 的 β 口径标定(离线 8h 推进比)仍缺数据;
- M-5:门 #11(BossBattle 接入后)与 P-10/P-15 的 #11-d 触发条件;
- #13 触底支路(R5 起 ≥0.25×)本轮未覆盖——8h 预算只完成 R1-R4;新曲线下复跑时 restart 预算提至 10-12h;
- m04 P2 备选("跳过每档封顶 +25 级")是否转正——依赖 #13 曲线数据,v1.1 已列 P2 维持待定;
- 任务 #22/#27/#44(W3/W4/W5 批次提交)同受 git 缺失阻塞,可一并处理。
---
*报告完。二轮结论:裁定落地完整、硬门不回归、红线根治;#13 残留为 5.6% 边际校准残差,选项与定量已备,待拍板。*