Files
ft/CodexOutput/upserver/P2-alpha-A已有存量档只读盘点方案独立审查-2026-09-28.md

42 lines
4.3 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.
# P2-alpha-A已有存量档只读盘点方案独立审查
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写与执行;此前参与为4C1/4C2系列审查(本方案引用的P2-α硬门源自4B2修订2裁决链,本审查者为该链审查方)。本轮只读+hash重算+源码核查,未启动Unity/网络/许可。
## 受审hash核对
`P2AlphaAudit/design-review-hashes.json`:**20/20重算全部一致**。另核实《后续真实运行采样与离线复跑约定》完整落实4C2复核四条P3(DLL路径复跑/apphost禁用/前置采样窗/planned-actual元数据+公式输入与面板属性采集)。
## 总判定
**通过。** 无P1/P2;P3四条不阻塞。方案把P2-α收敛为"样本只读盘点→逐差异兼容方案→产品政策/迁移专项"是正确的第一步,且以**空生产白名单**从结构上杜绝了"盘点顺手改代码"。
## 七项逐条
**1. 收敛合理:是。** 三路线比较成立——直接修101两处null被正确拒绝(M22空态消费语义未证明、不能把"旧档存在"当"合法等价");通用迁移框架被正确拒绝(无代表性样本与目标授权)。产出定位为"可审计差异台账+待确认迁移政策"而非任何执行——与P2-α硬门(4B2修订2裁决)的原始要求逐项对应。
**2. 入口约束诚实且可执行:是。** 本审查核实`KVGameplayLoopSetup.InspectPFBackup`(:51)存在且为固定反射入口(→`PlayerKVGameplayLoop.InspectPFBackupForEditor`);sourceOnly/syntheticDescriptor/隔离容器/不Open不Apply不发布的历史定位(pf-source-schema.json口径)沿用;Enabled=false+无GContext+全新空闲Editor的门,**明确拒绝清静态标记绕过**(上次run遗留Enabled=true须重启编辑器)——诚实且与既定claimed/guard语义一致。
**3. 两个null分类正确:是。** 本审查源码核实:
- M15:旧`InitChallengeData`经`JsonConvert.DeserializeObject<FishingChallengeData>(null字面量)`确实产出**null对象**——但null挑战对象与"无挑战"在全部读取入口处是否等价**未证明**,方案正确地将其列为"需逐读取入口确认"而非自动删键;
- M22:`selections`为`List<int>`字段且构造默认null(旧档可合法携带),而Schema:238`IntegerList(obj["selections"])`要求数组——冲突属实、其余字段的已激活礼包状态**不可整键删除或默认重建**——正确。
- 生产/测试白名单为空=结构性防误改 ✓;cdTime先例不被泛化 ✓。
**4. 覆盖足够且代表性限制明确:是。** 100个样本key出现项(55+45不去重)、31模块双向、非模块键/未知键单列、AD坏槽/未知鱼/配置严格项全部入账;两份专用样本不输出"全量兼容率"——诚实。
**5. 数据边界准确:是。** KV102为已续进度目标态(gold234004/energy383)禁止旧PF重导 ✓;无CAS下的备份/Unknown观察/人工恢复/禁自动双写合同与此前所有裁决语义一致(Unknown只观察不重放、"新读一致仅当时观察")✓。
**6. 政策与操作分离:是。** 拒档/迁移属用户产品确认事项,本单元只读操作批准不含之;方案不关闭P2-α整体与G4 ✓。
**7. A0–A4可验证、无多余工具:是。** 复用既有入口/shell/哈希工具、不建第二套Schema解析器;**A2(离线解码观察)与A3(消费语义盘点)分离、"只跑Decode不自动关闭A"** 的门设计正确。
## P3清单
- **P3-1**:A3台账建议为每个key附"旧PF读写位置"列时**直接引用4B3调用扫描(234行台账)的行号**——为后续4B3B迁移直接复用,避免二次盘点。
- **P3-2**:M15等价性证明范围建议显式枚举`fishingChallengeData`的**全部读取入口清单**(null vs 缺键行为逐行)作为A3证据行,而非笼统"逐入口确认"。
- **P3-3**:cfgData指纹冻结建议同时记录Schema解码所用的Tables内容hash与KV102样本的采样时间基准(与历史诊断usesLocalUtc口径对齐)。
- **P3-4**:A2重启编辑器后的准入核查建议按既有实践记录get-version+playing/enabled/permit状态快照入证据。
## 结论
**通过P2-α-A方案。** 建议主会话核hash(已代验20/20)逐条裁决后进入A1裁决→A2–A4只读执行(开发侧);本报告不构成真实存档迁移授权,P2-α整体与G4保持开放。