Reference
Safe Diff Checklist
每次 agent 改完 Unity 项目后,用这张表决定能不能继续。
命令
git status
git diff --stat
git diff --name-only
git diff
命令:真实项目
cd /Users/lionqu/Github/NewHappyMahjongClient/HappyMahjongClient
git status
git diff --stat
git diff --name-only
git diff
Unity 通用红旗文件
| 文件类型 | 为什么危险 | 处理方式 |
|---|---|---|
*.unity | Scene 序列化,可能包含大量对象和引用变化。 | 若任务不涉及 Scene,先回滚或查明原因。 |
*.prefab | 模板变化会影响所有实例,YAML 手写易错。 | 要求说明具体对象、字段、Override。 |
*.asset | 可能是配置、ScriptableObject、资源索引。 | 确认是否为需求必要配置。 |
*.meta | 保存 GUID,错误删除会断引用。 | 资源移动必须带 meta;无故变化要警惕。 |
Packages/* | 依赖变化可能让全项目不可运行。 | 禁止 agent 顺手升级。 |
ProjectSettings/* | 构建、输入、Tag/Layer、渲染等项目级状态。 | 除非任务明确要求,否则不提交。 |
HappyMahjong 项目红旗
| 文件 / 目录 | 为什么危险 | 处理方式 |
|---|---|---|
Assets/Scripts/Base/StrangeIoC/ | 框架源码;产品 / 后台 onboarding 任务不应改。 | 除非明确做框架升级,否则回滚。 |
Hall/AppMain/AppContext.cs | 大厅主容器,150+ 模块绑定。 | 只有新增/调整绑定时才改;必须说明影响范围。 |
Game/GameContext.cs | 游戏容器绑定。 | 先确认需求属于 GameContext,不是 Hall 模块。 |
Game/View/GameUIView.cs | 超大游戏 UI 文件,修改容易误伤。 | 先 grep -n "region" 定位,只改目标 region。 |
Game/View/GameTableView.cs | 牌桌核心 View,影响面大。 | 先找 owner 或相似修复。 |
Assets/Scripts/CodeGen/, Assets/Scripts/Generated/ | 生成代码。 | 不要手改;找生成工具或协议来源。 |
Assets/Scripts/Boot/LoadDll.cs | 启动、热更、DLL 加载入口。 | onboarding 任务只读不改。 |
非客户端开发者 PR checklist
- PR 描述已标明 Green / Yellow / Red 车道。
- 如果是 Yellow lane,已说明链路证据、修改边界、验证结果,以及需要客户端 review 的点。
- 如果 diff 中出现 Red lane 文件,PR 不应继续,除非 owner 接手。
- PR 描述包含 agent analysis 的关键路径:View / Mediator / Command / Service / Model。
- PR 描述包含 Unity Console 状态:是否有新增红错、第一条红错是什么、stack trace 指向哪里。
- 如果新增模块,PR 说明使用了哪个
ScriptTemplates模板。 - 如果改现有模块,PR 说明模块边界,且 diff 基本局限在模块内。
- 如果跨模块,PR 说明架构影响审核结果和 owner。
完成前 checklist
- 改动是否只围绕一个任务?
- 是否没有无关格式化和大范围重命名?
- 是否没有意外改 Scene、Prefab、Asset、Meta、Packages、ProjectSettings?
- 是否没有意外改 StrangeIoC 框架源码、AppContext、GameContext、GameUIView、GameTableView、生成代码?
- 如果改了 `[SerializeField]` 字段名,是否考虑 `FormerlySerializedAs`?
- 事件订阅是否在 OnDisable / OnDestroy 取消?
- 异步请求是否可取消?对象销毁后是否不访问 UI?
- 是否避免在 Update 中做网络、IO、大量查找、每帧分配?
- StrangeIoC 新增 View / Command 时,Context 绑定是否正确且最小?
- 新增模块是否使用
Assets/Editor/Prefab2Code/Scripts/ScriptTemplates/模板? - 现有模块修改是否限制在模块边界内?
- 跨模块修改是否经过架构影响审核?
- UI 加载是否沿用 UIUtil?弹窗是否沿用 PopUpManager?点击绑定是否沿用 Button.onClick / UIEventListener / Empty Click 约定?
- 网络请求是否沿用项目 TSDK / Util / Service 层,没有新造 HttpClient 通道?
- Unity Console 是否无新增红错?如果有,第一条红错和 stack trace 是否已解释?
- 普通 C# 逻辑是否有 Edit Mode Test?
- 涉及 GameObject / Prefab / Scene 的行为是否有 Play Mode Test 或手动验证?
- 产品验收场景是否覆盖正常、失败、超时、重复点击、关闭页面、第二次打开?
- 未验证平台和已知风险是否写清楚?