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

4.3 KiB
Raw Blame History

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:238IntegerList(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保持开放。