SDK-003:实现并验收玩家资料改名与头像闭环
Producer-facing 结果
玩家可以从主界面进入个人信息,查看角色基础资料,并按 SDK-001 已审核 contract 完成首次免费或后续付费改名,以及从已解锁英雄头像中修改当前头像;所有成功、失败、锁定和回滚状态均可验收。
输入与依赖
- Depends on:
SDK-001 - Source doc:
features/account-server-login.md - Primary route:
frontend/project2-frontend-codex - Conditional route:
backend/project2-backend-codex - 参考图状态均为
仅参考。实现前必须有任务相关ui-handoff,或有 Producer-approved rationale 证明无需 prefab/art 变更。
预期 workflow DAG
PIP-001:Hub 复核改名、头像、钻石、英雄头像和 UI handoff 输入,冻结单一“玩家资料可编辑”结果。BE-001:Backend principal 实现或核对名称、消耗、敏感词、重复名、头像拥有状态、幂等与持久化的权威校验。FRO-001:Frontend principal 实现个人信息、改名和头像页面/弹窗的 Command、Model、UI、prefab/view binding 与错误反馈。IT-001:核对钻石、英雄解锁、proto/error/language contract 和前后端状态一致性。QA-001:执行 backend tests、Unity compile/tests、prefab audit、状态矩阵 visual QA 与截图/recording review。
In Scope
ACCOUNT-SERVER-LOGIN-R-006至ACCOUNT-SERVER-LOGIN-R-012。- 个人信息展示、首次免费与后续付费改名、名称输入校验、失败原因、头像已解锁/未解锁/当前选中状态。
- 钻石消耗、英雄头像解锁和资料持久化的跨系统 contract 消费。
Out of Scope / Must Not
- SDK 授权、服务器准入、角色创建主链、英雄解锁规则本身、钻石经济规则本身、生产数据修改。
- UI 直接组包、发请求或修改核心 Model;玩家意图必须遵守 repo-local Command/Model/UI 边界。
- 未经 contract 或 Producer确认擅自选择敏感词库、重复名作用域、字符长度算法、改名价格或默认头像 ID。
- 参考图不得自动视为最终视觉;没有 Unity-rendered evidence 时不得把 UI delivery 标记为 review-ready。
验收
- 个人信息正确展示当前头像、名称、战斗力和关卡进度,入口和返回链路可用。
- 首次免费、后续付费、钻石不足、非法字符、长度、重复名、敏感词、重复提交、成功和服务端失败均有明确状态与玩家反馈。
- 默认头像、已解锁可选、未解锁灰态/锁头、当前头像勾选、提交中、成功与失败回滚均可验证。
- 重登、断线重连和刷新后名称、头像和钻石状态与服务端一致。
- MR evidence 包含 Backend tests、Unity compile/tests、boundary lint、asset/prefab audit、状态矩阵截图或 recording、visual QA 与 residual risk。
验证
go test ./service/role/handler/... ./service/role/model/...
python3 tools/project2_ui_boundary_lint.py --changed-only --pretty
python3 tools/project2_asset_guard.py --changed-only --pretty
Unity compile, EditMode or PlayMode tests, prefab audit and state-matrix visual QA through Unity MCP
Frontend principal 应按 repo-local UI delivery policy选择 UI delivery、client integration 与 frontend QA internal routing。Unity MCP 不可用、Editor 未就绪或无法生成状态证据时,应返回 blocker 并给出恢复步骤,不得用纯文件 diff 代替 prefab/visual QA。