From 26f91f3efe4c2aa6f5d37ebb7980f3d18159b1e6 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sat, 19 Sep 2026 15:58:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(acceptance):=20=E6=8E=B7=E7=82=B9=E5=8F=91?= =?UTF-8?q?=E7=8E=B0=E6=A0=B9=E5=9B=A0=E4=BF=AE=E6=AD=A3=E6=89=B9=E2=80=94?= =?UTF-8?q?=E2=80=94=E7=AA=84=E7=A7=8D=E5=AD=90=E7=AA=97=C3=97=E5=A4=8D?= =?UTF-8?q?=E7=94=A8=E6=94=BE=E5=A4=A7=EF=BC=88=E9=9D=9E=E6=B4=BE=E7=94=9F?= =?UTF-8?q?=E5=85=AC=E5=BC=8F=E7=BC=BA=E9=99=B7=EF=BC=89=EF=BC=8C=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E5=BD=B1=E5=93=8D=E9=99=8D=E7=BA=A7=E4=B8=BA=E6=9C=BA?= =?UTF-8?q?=E4=BC=9A=E6=B6=A8=E8=90=BD=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=B8=89?= =?UTF-8?q?=E6=A1=88=E5=91=88=E6=8A=A5=EF=BC=882026-09-19=EF=BC=89?= =?UTF-8?q?=E2=80=94=E2=80=94=E2=91=A0=E6=B7=B1=E5=8B=98=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=3D=E7=94=A8=E6=88=B7=E8=B4=A8=E8=AF=A2=E4=BC=AA=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E5=BF=85=E8=A6=81=E6=80=A7=EF=BC=9B=E2=91=A12000=20?= =?UTF-8?q?=E8=B7=A8=E6=AD=A5=E7=A7=8D=E5=AD=90=E5=85=A8=E5=B1=80=E5=AF=B9?= =?UTF-8?q?=E7=85=A7=20=CF=87=C2=B2=3D22.8=20=E8=AF=81=E6=98=8E=E6=B4=BE?= =?UTF-8?q?=E7=94=9F=E5=85=AC=E5=BC=8F=E5=9D=87=E5=8C=80=EF=BC=88splitmix?= =?UTF-8?q?=20=E7=89=88=E5=90=8C=E5=B9=B2=E5=87=80=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E6=8E=A8=E7=BF=BB=E5=8F=B0=E8=B4=A6=2084=E3=80=8C=E9=A6=96?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E7=BC=BA=E9=99=B7=E3=80=8D=E5=AE=9A=E6=80=A7?= =?UTF-8?q?=EF=BC=9B=E2=91=A2=E7=9C=9F=E6=A0=B9=E5=9B=A0=3D=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=2030=20=E7=A7=8D=E5=AD=90=C3=97=E5=A4=B4=E9=83=A8?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=C3=9740=20=E5=B1=80=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E7=AA=97=E5=8F=A3=E5=BD=A9=E7=A5=A8=E6=94=BE=E5=A4=A7?= =?UTF-8?q?=2040=20=E5=80=8D=E7=81=8C=E8=BF=9B=E8=81=9A=E5=90=88=EF=BC=88?= =?UTF-8?q?=E7=9C=9F=E5=AE=9E=E6=97=A5=E5=BF=97=E9=80=90=E7=A7=8D=E5=AD=90?= =?UTF-8?q?=2018=20=E7=82=B9=200=E2=86=92131=20=E8=BF=9C=E8=B6=85=E4=BA=8C?= =?UTF-8?q?=E9=A1=B9=20=CF=83=E2=89=886=EF=BC=89=EF=BC=9B=E2=91=A3?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E5=8D=95=E5=B1=80=E5=BD=B1=E5=93=8D=E9=99=8D?= =?UTF-8?q?=E7=BA=A7=E2=89=88=E6=97=A0=EF=BC=8817~40=20=E6=8E=B7=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E4=B8=8E=E8=BF=90=E6=B0=94=E5=8C=BA=E5=88=86=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E5=AE=9E=E5=AE=B3=E9=9D=A2=3D=E6=B5=8B=E9=87=8F?= =?UTF-8?q?=E6=9C=89=E6=95=88=E6=80=A7=EF=BC=9B=E2=91=A4=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=89=E6=A1=88=EF=BC=9AA=20=E5=AE=BD=E7=A7=8D=E5=AD=90?= =?UTF-8?q?=E5=B8=A6=EF=BC=88=E6=8E=A8=E8=8D=90=E9=9B=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=89/B=20master=20=E6=B7=B7=E6=B7=86=E5=8A=A0=E5=9B=BA?= =?UTF-8?q?=EF=BC=88=E9=BB=84=E9=87=91=E5=90=91=E9=87=8F=E9=87=8D=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=EF=BC=89/C=20=E7=9C=9F=E9=9A=8F=E6=9C=BA+=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=EF=BC=88=E8=AF=84=E4=BC=B0=E4=B8=8D=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=EF=BC=89=EF=BC=9B=E2=91=A5=E6=8A=A5=E5=91=8A=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E5=8F=91=E7=8E=B0=E8=8A=82=E9=87=8D=E5=86=99+=E5=8F=B0?= =?UTF-8?q?=E8=B4=A6=2085?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- production/qa/acceptance-rerun-20260919.md | 34 ++++++++++++---------- production/session-state/active.md | 3 ++ 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/production/qa/acceptance-rerun-20260919.md b/production/qa/acceptance-rerun-20260919.md index 951060d9..ded94ecc 100644 --- a/production/qa/acceptance-rerun-20260919.md +++ b/production/qa/acceptance-rerun-20260919.md @@ -9,29 +9,31 @@ --- -## ⚠️ 核心发现:掷点流存在结构性面值偏置(本批最重要产出) +## ⚠️ 核心发现:窄种子窗 × 复用放大——掷点统计失真(本批最重要产出;2026-09-19 深勘后根因已修正定稿) -**一句话**:d20 掷点在单局内不是均匀分布——每个种子的冒险只消费掷点流头部约 17~40 个 scope,而「派生种子 → PCG 首输出」在头部 scope 区间有系统性面值聚类,玩家的实际掷点体验随种子漂移(有的种子 18 点频发、有的种子整局零 18 点)。阶段一多数 gate 失败归因于此,按口径 §4e 边界 1「先查实现缺陷再谈调参」,**压力验收判定顺延至掷点修复批之后**。 +**一句话**:d20 掷点流的派生公式本身是均匀的,但「30 个连续种子 × 每局只消费头部 ~17~40 个 scope × 每种子被复用 ~40 局」的组合,把头部窗口自身的面值彩票放大 ~40 倍灌进全部聚合统计——验收的档位分布/EV gate 读数因此失真。**修正记录**:本报告首稿曾定性为"派生种子首输出缺陷、真实玩家体验受损",经 2000 种子全局对照与跨步种子对照推翻——公式无恙、玩家单局影响≈机会涨落水平,真实受害者是测量有效性。 ### 证据链(可复现,探针脚本形态见附录) 1. **逐位比对**:种子 4227 首局前 23 个日志掷点与 `rng.open_stream("armor_roll")` 逐 scope 首输出序列**完全一致**——日志掷点 = 派生种子首输出,无其他变换。 -2. **种子级头部偏置**:种子 4227 头部 30 scope 含 4 个 18 点(13%);种子 4211 头部 30 scope **零 18 点**。真实日志按种子聚合:4227 → 120 个 18 点(4.1× 期望)、4211 → 0 个。MC 每局平均仅 ~17 次掷点、每种子被 20 个配置格复用 → 头部偏置被放大 40 倍,与日志完全定量吻合(120 ≈ 40 局 × 头部 3 个 18 点)。 -3. **真实消费模式复现**:按「30 种子 × 40 局 × 每局 8~31 掷」模拟聚合,复现日志失真签名:18 点 1876/23822(期望 1191,**+57%**,≈20σ)、16 点 +26%、4 点 +23%、1/2/3 点 −25% 量级缺口。 -4. **排除项**:纯随机种子首输出均匀(4 万次最大偏差 2.7σ,正常);同流长短序列聚合均匀(2 万 scope)——缺陷特定于「派生种子族 + 头部窗口」的组合。 +2. **逐种子失真**:真实日志按种子聚合 18 点数 0→131(种子 4211 = 0、4227 = 120);二项分布下 n≈700 的 σ≈6,此散布远超抽样涨落——复用放大实锤(每局重吃同一种子的头部窗口,窗口彩票 ×40)。 +3. **全局均匀对照**:2000 个跨步种子 × 头部 31 scope 等权聚合,χ²=22.8(19df 95% 临界 30.1)——**派生公式全局无偏**;splitmix 混淆版同样干净(χ²=23.5),混淆不解决本问题(问题不在公式)。 +4. **窗口彩票对照**:MC 实际窗口(连续 30 种子 × 头部 41 scope)18 点 +35% 集中在高权重头部;同规模跨步种子窗口 χ²=26 正常——特定窗口运气 × 复用 = 失真。 +5. **真实消费模式复现**:按「30 种子 × 40 局 × 每局 8~31 掷」聚合,复现 18 点 +57%(1876/23822)的日志签名。 +6. **排除项**:纯随机种子首输出均匀(4 万次最大偏差 2.7σ)——引擎 PCG 本体无恙。 -### 影响面评估 +### 影响面评估(修正后) -- **玩家体验(真实影响,非测量伪影)**:一局冒险 = 一个种子 = 只吃该种子头部窗口。d20 均匀假设是 AC 档位设计(全额 55%/×0.75 15%/×0.5 20%/×0.25 10%、EV 减免 21.25%)的地基;现状下不同局的实际掷点分布随种子系统性漂移,暴击率与档位体验逐局不可比。这属于**引擎级机制缺陷**,不是调参问题。 -- **测量有效性**:本批全部掷点面 gate(档位分布/EV 减免/nat20)读数被污染,判为失败不能归因到机制实现或数值配置。 -- **连带怀疑面**:同一派生公式服务全部五条流(board_gen/reward_roll/encounter/armor_roll/behavior_roll),其他流的消费窗口同样偏头部——棋盘布局、奖励摇号、遭遇骰的逐种子行为同理存疑,修复批应一并核查。 +- **玩家单局体验:≈无**。一局只有 ~17~40 次掷点,即使种子头部窗口有偏,也与普通骰子运气无法区分(17 次均匀掷点本身就有 ±10pp 级涨落)。**首稿"玩家体验随种子漂移"的说法降级为理论可能性**(只有在单局掷点数大幅增长的未来内容里才可能被感知)。 +- **测量有效性:实害**。验收掷点面(档位分布/EV/nat20)与任何基于这 30 个种子的聚合统计,都被窗口彩票 ×40 放大污染——本批阶段一两个 gate FAIL 由此归因,不能算到机制或数值头上。**同构隐患**:五条流(board_gen/reward_roll/encounter/armor_roll/behavior_roll)共享此消费模式,窄种子窗 + 短消费窗 + 复用的分析面都会中招。 +- **潜在陷阱(非现行故障)**:若未来种子外露(种子分享玩法)或单局掷点数大增,窄窗彩票从测量问题升级为体验问题。 -### 修复方向试探(均在探针级验证,未动游戏代码) +### 修复方向(三案,均已评估;探针级验证见附录) -- 单次预热(丢弃首输出取第二输出):**无效**(相关性在种子空间不在生成器内部)。 -- 派生种子过 splitmix64 非线性混淆后再喂 PCG:**部分改善未达标**(最大面偏差 685→369,仍 ≈11σ),需专门验证批找正确混入方式。 -- 结构性候选:armor_roll 改「每冒险一条持久生成器顺序取号」(标准做法,代价 = 牺牲注册表登记的逐 scope 独立复放语义);或重设计派生公式并配黄金向量回归。 -- **处置建议**:登记 06 待办立项「掷点流种子偏置修复批」(改 `rng_service.gd` 属架构面,须用户拍板修复方案);修复批自带义务=黄金向量重登记 + 冒烟断言 + 修复后重跑本验收阶段一。 +- **方案 A(推荐,零游戏代码)**:掷点统计面改用宽种子带——如 4200 起步长 7919 取 ≥100 个种子(保留 4200–4229 子段则历史坐标仍可比),窗口彩票按 1/√种子数摊平;实现 = MC 工具加一档「掷点扫描批」参数。承伤/通关率等压力读数同理受益。 +- **方案 B(可选加固,一处小改)**:`rng_service.gd` 派生前对 master 做一次非线性混淆(如 splitmix64 finalizer)——任何窄种子窗表现如随机抽样,根治"连续小整数种子"陷阱。逐 scope 回放语义不变;代价 = 黄金向量重登记 + 冒烟回归。全局均匀性已被证明,此案是防御性投资,不紧急。 +- **方案 C(用户提案:真随机 + 逐次记录)**:技术上可行但代价不成比例——存档序列化快照契约(master_seed)、反事实重算工具(analyze_playtest 依赖确定性重模拟)、逐次可回放语义全部重做,记录文件随局数无限增长;而它解决的问题 A/B 已以小得多的代价覆盖。不推荐,除非未来设计转向"非确定性掷点"价值观。 +- **共性注记**:无论何案,单局 17~40 掷的"运气窗"本身(某局恰好 18 点多)是骰子本性,修复对象是"系统性放大"而非"运气存在"。 --- @@ -112,9 +114,9 @@ ## 待办与回流 1. **真人批**(用户):基线档 3–5 局 → k 系数 + 零掉血轮宽口径真人对照 → 本报告终稿。 -2. **掷点流种子偏置修复批**(新立项,须拍板):登记 06 待办;修复方案选择 + 黄金向量重登记 + 重跑阶段一。 +2. **掷点测量修复**(待拍板选案):方案 A(宽种子带,零代码)/方案 B(master 混淆加固,黄金向量重登记)/方案 C(真随机+记录,不推荐);选 A 则登记 06 待办为「验收掷点扫描种子带改造」,选 B 则为 rng_service 加固批;阶段一在修复后重跑。 3. **口径文档连带修订**(归合并批):`docs/acceptance-ap6-ac.md` 快照 buffs 盲区节改写、Boss 血量锚参照值重校准(58 现值)、§2 消费读数行补刷新两读数;`06-待办清单`「刷新经济性监控」条目保留至调参批定阈值。 -4. **曲线调参批门**:确认改为「掷点修复批后」起跑(原门=验收读数)。 +4. **曲线调参批门**:确认改为「掷点测量修复 + 阶段一重跑后」起跑(原门=验收读数)。 ## 附录:探针脚本(复现用) diff --git a/production/session-state/active.md b/production/session-state/active.md index dbbc2f20..fef3f981 100644 --- a/production/session-state/active.md +++ b/production/session-state/active.md @@ -239,3 +239,6 @@ 91. **gitignore 缓存误写忽略批(2026-09-19,本会话——用户质询仓库根 {GUID}*.db 文件触发;纯仓库卫生零游戏代码)**:**定性**——仓库根怪目录 `%SystemDrive%/ProgramData/Microsoft/Windows/Caches/` 内三文件(cversions.2.db+{6AF0698E-…}.2.ver0x…01.db+{DDF571F2-…}.2.ver0x…01.db)与真实系统目录 C:\ProgramData\Microsoft\Windows\Caches\ 同名同构(版本后缀 01 vs 系统现役 10),系 Windows shell(资源管理器)缓存库(ESE 格式,非 SQLite、非 ZCode 记忆——记忆在 ~/.zcode/cli/memories/);成因=某进程环境变量 SystemDrive 未展开,按字面相对路径把缓存库写进仓库根(台账 90 遗留 flag 本批处置)。**落地**——.gitignore OS 节增 `%SystemDrive%/` 整目录忽略;另收编主区在飞行 .zcode/plans/ 行(计划模式存档目录、无自动清理机制,会话批准计划即落快照属预期行为非垃圾);误写目录本体经核对为系统缓存副本后删除。**流程**——按 worktree 铁律:worktree 分支 batch/gitignore-junk-caches 两笔提交合并回 master;合并前主区 .gitignore 在飞脏改动(.zcode/plans/ 行)checkout 丢弃(内容已收编入本批提交防冲突);台账预写 90 撞号(并行会话技能池收口批先登记) amend 改 91。**验证**——git status 复核 %SystemDrive%/ 不再出现在未跟踪;冒烟不适用(零游戏代码)。 92. **验收读数重测批·初稿(2026-09-19,本会话——独立 worktree 分支 `acceptance-rerun-20260919`,主工作区并行改动零接触)**:①执行面=worktree 检出 d236d9f(编辑器缓存刷新后冒烟 317 项 0 失败三闸全过)→ 模拟批 level_monte_carlo N=30 种子 4200+30 both 两关共 1200 局 → 日志批 log_analysis.py + 专项脚本(方向档位分布/基线格承伤分位/按种子直方图)。②**核心发现=掷点流结构性种子偏置**(证据链四步:种子 4227 首局前 23 掷与 open_stream("armor_roll") 逐 scope 首输出逐位一致;种子级头部偏置——4227 头部 30 scope 含 4 个 18 点、4211 零 18 点;真实消费模式 30 种子×40 局×8~31 掷复现失真签名 18 点 +57%≈20σ;纯随机种子对照均匀排除引擎 RNG 本体)——机理=每局从 scope 0 重取号(可回放设计)×派生种子首输出头部聚类×MC 短局(均 ~17 掷)把头部重采样 40 遍;**真实玩家影响**=单局 d20 体验随种子系统性漂移,AC 档位 55/15/20/10 设计地基受损;修复试探=单次预热无效、splitmix64 种子混淆未达标(685→369 仍 11σ),建议立项掷点修复批(含黄金向量重登记+阶段一重跑义务),五条流连带核查。③阶段一判读=零承伤轮 0 PASS/nat20 4.53% PASS(带污染注记)/档位分布与 EV 减免 FAIL(归因 RNG)/Boss 血量锚参照值过期(58 现值)/快照 buffs 非空 8790/14402 盲区口径已破(rider 批后快照携带状态,好消息)/未配对 battle_end 1200 系统性行序伪影(1/局,不影响核心统计)。④阶段二初稿=L1 完美档基线格通关率 87% 越 gate[35,65] 上界+承伤 p10=13/p90=25 远低于带 [35,45]/[55,65](压力不足方向),F4 满配格两关全 PASS,台阶倒挂消失(87vs87),Boss 承伤占比 26.7%/35.7% 出列正常;双 gate 判定顺延掷点修复后终判(§4e 边界 1 先查实现缺陷)。⑤07⑦ 刷新经济基线已采:弃图率 MC 完美档 L1 基线格 0.23/L2 0.03 次/局、normal 档 0、每轮刷新率 ≤0.6%——分析器新增两读数列(弃图率=受理刷新/局与 MC 同口径、每轮刷新率=刷新÷结算轮数),阈值仍归调参批;07⑥ 速杀占比经核不可推导(battle_end 无格面状态面)注记后延。⑥产出=log_analysis.py 读数+07⑦ 基线注记+production/qa/acceptance-rerun-20260919.md 判读报告(真人位留空);06「刷新经济性监控」保留至调参批。⑦诊断探针 rng_face_probe.gd 已删不留残留;/tmp 探针脚本复现路径记录于报告附录。 + +84. **验收读数重测批·初稿(2026-09-19,本会话——独立 worktree 分支 `acceptance-rerun-20260919`,主工作区并行改动零接触)**:①执行面=worktree 检出 d236d9f(编辑器缓存刷新后冒烟 317 项 0 失败三闸全过)→ 模拟批 level_monte_carlo N=30 种子 4200+30 both 两关共 1200 局 → 日志批 log_analysis.py + 专项脚本(方向档位分布/基线格承伤分位/按种子直方图)。②**核心发现=掷点流结构性种子偏置**(证据链四步:种子 4227 首局前 23 掷与 open_stream("armor_roll") 逐 scope 首输出逐位一致;种子级头部偏置——4227 头部 30 scope 含 4 个 18 点、4211 零 18 点;真实消费模式 30 种子×40 局×8~31 掷复现失真签名 18 点 +57%≈20σ;纯随机种子对照均匀排除引擎 RNG 本体)——机理=每局从 scope 0 重取号(可回放设计)×派生种子首输出头部聚类×MC 短局(均 ~17 掷)把头部重采样 40 遍;**真实玩家影响**=单局 d20 体验随种子系统性漂移,AC 档位 55/15/20/10 设计地基受损;修复试探=单次预热无效、splitmix64 种子混淆未达标(685→369 仍 11σ),建议立项掷点修复批(含黄金向量重登记+阶段一重跑义务),五条流连带核查。③阶段一判读=零承伤轮 0 PASS/nat20 4.53% PASS(带污染注记)/档位分布与 EV 减免 FAIL(归因 RNG)/Boss 血量锚参照值过期(58 现值)/快照 buffs 非空 8790/14402 盲区口径已破(rider 批后快照携带状态,好消息)/未配对 battle_end 1200 系统性行序伪影(1/局,不影响核心统计)。④阶段二初稿=L1 完美档基线格通关率 87% 越 gate[35,65] 上界+承伤 p10=13/p90=25 远低于带 [35,45]/[55,65](压力不足方向),F4 满配格两关全 PASS,台阶倒挂消失(87vs87),Boss 承伤占比 26.7%/35.7% 出列正常;双 gate 判定顺延掷点修复后终判(§4e 边界 1 先查实现缺陷)。⑤07⑦ 刷新经济基线已采:弃图率 MC 完美档 L1 基线格 0.23/L2 0.03 次/局、normal 档 0、每轮刷新率 ≤0.6%——分析器新增两读数列(弃图率=受理刷新/局与 MC 同口径、每轮刷新率=刷新÷结算轮数),阈值仍归调参批;07⑥ 速杀占比经核不可推导(battle_end 无格面状态面)注记后延。⑥产出=log_analysis.py 读数+07⑦ 基线注记+production/qa/acceptance-rerun-20260919.md 判读报告(真人位留空);06「刷新经济性监控」保留至调参批。⑦诊断探针 rng_face_probe.gd 已删不留残留;/tmp 探针脚本复现路径记录于报告附录。 +93. **掷点发现根因修正批(2026-09-19,本会话——用户质询"为何用伪随机/有无修复方案"触发深勘)**:①修正内容=台账 84 首稿定性「派生种子首输出缺陷、玩家体验受损」**两项均推翻**——2000 跨步种子×头部 31 scope 等权对照 χ²=22.8 证明派生公式全局均匀(splitmix 混淆版 χ²=23.5 同干净);跨步种子窗口 χ²=26 正常 vs 连续 30 种子窗口 18 点 +35% 集中高权重头部。②修正后根因=**窄种子窗(连续 30 种子×头部 ~17~40 scope)×每种子 40 局复用**→窗口自身面值彩票放大 40 倍灌进聚合统计;真实玩家单局影响≈机会涨落(一局仅 17~40 掷,与均匀骰子运气不可区分),实害面=测量有效性(阶段一档位/EV gate 读数失真归因于此,不能算机制/数值账);同构隐患=五条流共享消费模式。③修复三案呈报:A 宽种子带掷点扫描批(推荐,零游戏代码,保 4200–4229 子段可比性)/B rng_service master 混淆加固(可选,保逐 scope 回放语义,黄金向量重登记)/C 真随机+逐次记录(用户原提案,评估后不推荐——存档契约/反事实重算/回放语义全重做+文件无限增长,被 A/B 以小代价覆盖);共性注记=单局运气窗是骰子本性,修复对象是系统性放大。④判读报告核心发现节已重写(修正记录留痕),待用户选案后执行。