# 阶段4C2引导准入补充方案独立审查 日期:2026-09-24。审查者:ZCode会话。独立性声明:未参与补充方案编写与实施;此前参与为4C2原方案审查。本轮只读+hash重算+源码核查,未启动游戏/正式请求/许可/数据修改。 ## 受审hash核对 `KVFishingRewardTests/guide-supplement-review-hashes.json`:**419/419重算全部一致**(与原方案319项清单未混用)。 ## 总判定 **接受,批准R0~R4继续。** 无P1/P2;P3三条不阻塞。补充方案是"严格门挡死真实验收"与"放开引导"之间的正确最小解,且可达性闭合经本审查源码独立验证。 ## 七项逐条回答 **1. 范围足够小且可运行:是。** 本审查核实`offline-guide-gate-final.json`:11组相关引导中102恰缺方案点名的7组(unfinished与missingNotSkipped逐名一致,SkipLevel=40不覆盖)——严格门确实挡死全部普通捕鱼,而"通过改测试档完成引导"被正确拒绝。7组精确白名单+保留其余4组(Fish_01/Fish_02/StabFish/FishEscape)必须完成,是最小可行放宽。其余运行门(SubType/免费/重试/固定鱼/对战/礼包/巡游/收集/挑战/活动稳定)全部保留。 **2. 可达性覆盖:闭合(本审查独立验证)。** - `InspectTriggerGuide`的switch `default: continue`(GuideData.cs:362)——None类型在自动巡检中不触发 ✓; - 显式入口确实存在:`StartFishSpSkill`(FishingUpdateSys:2306,经:2234协程启动)、`ShowFrostSkill`(:2318)、`DamageProtectionEnd`(:1231/:1129)——方案不放任的风险为真 ✓; - **技能对象唯一注入来源闭合**:本审查追踪三个运行时技能对象(:269–271 `fishSpSkillData/superDashSpSkillData/dirtyStuckSpSkillData`)的数据源为`curFishData.FishSKillList`(:334)与`curFishData.FishEscape`(:354)——而准入合同第4/5条恰好要求该鱼全部SpSkillID≤0、`TbFishSpSkill.GetOrDefault`为空、三个运行时对象为空:**鱼级配置检查+运行时对象空检查双保险**,无技能事件即无显式入口可触达7组; - `FishEscape`组属四组必须完成之列(102已完成),且无技能鱼无逃逸路径(:1917触发不达);未发现动态注入或后台触发路径。若有遗漏,方案自身的退回条款("发现遗漏则退回")保留。 **3. 配置完整性:足以拒绝漂移。** 资产hash+11组完整序列化投影(名字/触发条件/参数/完整节点字段)双校验,明确"不能只比较组名"、"不能靠磁盘hash掩盖运行时对象变化"——窄实现非新框架 ✓。建议固化投影字段清单时包含每组全部节点数量(防增删节点)。 **4. 预检一致性:一致。** 新条件在扣费前+S1/S2/S3三检查点重复执行;原Guide通知照常发布一次、实际活跃引导须仍为空(发布后复核)——不允许禁用通知/MarkGuideFinished/GMClearGuide/写新引导记录 ✓;失败沿用原Fault/排水合同、费用不回滚不重试 ✓。 **5. 修改边界:足够且应保持收紧。** 仅两个新增reward文件的预检/固定测试+7旧文件"现有门调用处只补同一检查"——本审查建议主会话裁决时把后者进一步限定为**只增加对同一预检函数的调用**(不新增第二个实现),与方案精神一致。 **6. 证据诚实:确认。** 中间报告(阶段4C2实施进展与准入阻塞)如实保留红测未完成/Map Schema/实景生命周期/准入补验等未覆盖项与StorageError未定根因;"当前严格门仍存在,新方案未实施"的定位与本审查观察一致。 **7. R0~R4:批准。** 顺序合同完整(R1保留真实拒绝证据先行、R3全预检过才发v3许可、R4一次消费上限与原C3一致)。 ## P3清单(不阻塞) - **P3-1**:§2.3的7组"首节点是FishingPanel_Advanced"——建议投影校验同时包含**每组末节点**(防止末节点指向奖励后自动触发点)。 - **P3-2**:准入合同第4条的`TbFishSpSkill.GetOrDefault(id)`运行时查询建议记录查询过的id集合进run证据(空集亦记录),使"无可解析技能"可对账。 - **P3-3**:R2补验清单建议显式加入"4C1固定19组81断言复跑"(补充改动触碰的UserService.KVFishingReward.cs与4C1的KVGameplayLoop同进程协作,防回归遗漏——原清单已含奖励host与实际入口,此处点名4C1组)。 ## 保留项 本补充只调整准入;4C2关闭仍需R4真实闭环+独立实施复核;StorageError未定根因、默认非Editor历史错误、4C1首跑边界等全部保留;P2-α/4C整体/热换号/G4不变。 ## 结论 **接受补充方案,批准R0~R4。** 建议3条P3随主会话裁决采纳。