# 阶段4B3设计检查点记录 ## D0:恢复上下文与自动推进边界 读取4B2关闭裁决、4B3设计准备、既有4B分期、候选扫描及关键源码。用户明确授权:当前工作完成且没有复审要求时直接进入下一步,不再询问是否继续。维持完整方案独立评审→主会话裁决→编码;必要复审不被取消。仍用中文和原CodexOutput目录,不Git提交。 本轮沿用brainstorming进行设计收敛。用户既定需求和约束已清楚,没有新增必须澄清的产品选项;没有视觉问题。方案采用三路线比较、分期及明确首单元合同,最终交用户指定的外部AI评审,不以作者自审代替独立结论。 ## D1:语法盘点和人工核查 新增B3DesignAudit设计分析工具,以本地SDK的Roslyn只解析2101个源文件;不执行/编译游戏、不修改游戏源码。五种条件符号并集223调用/81文件;212个外部facade、8个内部、3个SDK。保存逐调用源码上下文/参数/await/上游名称候选和源hash。按名称候选不是语义调用图,局部无await不证明上游同步。 人工核对SavePlayerData跨模块序列化前Publish、转盘localOnly后立即消费、评价弹窗await、支付与补单、方法组广告回调、公会现有身份防护、邀请/问卷先奖励后保存、两个泛型活动仓库、渠道绑定外层后续奖励、他人Lv读取及ShowNotice账号缓存。活动仓库异常→默认对象→自动Save链及同实例换档是后续B重点。 ## D2:分期与4B3A完整方案 全B3调用链广,不能将语法台账冒充完成的隔离合同。方案拟A固定入口→B业务归属/内存→C加载发布/生命周期;A完整定义四个静态入口、键结果、错误/取消/guard/所有权、精确白名单和19组验收。只新增既有PlayFabMgr入口与键结果,不重复建设会话框架。B/C暂未批准,旧业务与正式入口保持现状。 源码核查确认ServiceHost通配纳入新PlayerKV结果,新增Editor验证host需UNITY_EDITOR && !SERVICE_HOST;旧csproj不必改。StorageError真实IO失败沿用state.json.tmp目录冲突,AfterReplace不确定结果使用旧3A故障回归与新入口直接return审计,明确证据层次,不承诺未具备的故障注入能力。 ## D3:作者自审与送审封板 核查主方案与调用附件/提示词一致:只有分期和A请求批准,非整B3设计/实现完成;无待决定的A接口/错误/白名单/验收项。B/C未完成项明确留在未来单元,不作为已批准A任务的现场设计。检查符号条件、测试依赖、旧PF字节保持、合成host/缓存路径、guard自身所有权与Close排水;修订了最初过宽的“所有非Ready状态和AfterReplace均经新facade端到端覆盖”表述。 受审基线包含方案、附件、提示词、本记录、分析工具/产物、相关现有源码/测试、未来文件应不存在清单;2101项源hash单列作为全Scripts冻结证据。共享入口/状态/TODO/开发日志由主会话维护,不纳入需要评审者修改的材料。外部报告落盘后先核hash并分别裁决分期与A;未取得该报告不编码。 本轮只产生设计文档和只读分析工具,没有新增4B3生产/测试实现,没有正式服、PlayMode、打包或Unity测试。4B2保持关闭;4B3分期及A待独立审查,B/C待各自完整方案,G4未通过。