修复 App 端“素材包已下载但进入游戏后图片仍全部加载中”的问题,确保前端能在未走大厅包管理 hook 的情况下接住已安装游戏包,并且不会把 Android
/_capacitor_file_/...本地路径误套进开发态图片 fetch/blob workaround。
-
Phase A: 链路排查与根因确认
- 复核原生安装目录、前端 asset override 注入点、MatchRoom 关键图片加载链路
- 确认启动期 hydration 会跳过“未预注册 fallbackState 的已安装包”
- 确认
OptimizedImage会把/_capacitor_file_/...本地包路径误走开发态fetch -> blobworkaround
-
Phase B: 修复与回归
- 修复
hydrateInstalledNativeGamePackages()对已安装包的兜底 hydration - 收窄
OptimizedImage的 blob-fetch workaround,只保留开发态 public/assets/... - 补定向测试并完成 eslint / vitest 校验
- 修复
分两阶段完成 Smash Up
Oops, You Did It Again四个派系(埃及、牛仔、武士、维京人)的完整交付:先完成图片 intake、可复刻工作流与静态接入;再按Ancient Egyptians → Vikings → Cowboys → Samurai的顺序逐派系实施正式玩法、补齐 UI、新交互类型 E2E、统一审计与证据留档。
-
Phase 1: 发现与设计(intake)
- 阅读 AGENTS、OpenSpec、资产/录入/测试/审计规范
- 创建独立 worktree 与任务分支
- 盘点现有 Smash Up 图片接入链路、脚本、数据结构与目标素材
- 创建 OpenSpec proposal/tasks/design/spec delta
-
Phase 2: 资产处理与录入(intake)
- 锁定权威来源与图片清单,建立 Markdown 核对契约
- 完成图片压缩、图集/切片配置与资源落盘
- 完成 i18n / 静态数据 / atlas / faction metadata 的同步录入
- 沉淀“给一批图片即可录入”的复刻工作流文档
-
Phase 3: 审计与验证(intake)
- 对照描述、资源路径、加载链路做 intake 审计
- 运行相关 Vitest / 审计脚本
- 编写并运行相关 E2E,用截图留证
- 汇总 evidence、结果与残留风险
-
Phase 4: 玩法提案与实施设计(gameplay)
- 创建
add-smashup-oops-faction-gameplayOpenSpec 变更 - 明确用户要求的实施顺序:逐派系实现,全部完成后统一审计与 E2E
- 将 bury UI 与新交互类型纳入正式 scope
- 运行
openspec validate add-smashup-oops-faction-gameplay --strict --no-interactive - 等待用户确认 proposal 后进入
Ancient Egyptians
- 创建
-
Phase 5: Ancient Egyptians
- 补齐 card defs 元数据与
abilityTags - 实现埋葬、翻开、替代去向与相关 base/action/minion ability
- 补齐 owner-visible bury UI 与对手隐藏占位
- 补领域测试与统一 E2E 证据收口
- 补齐 card defs 元数据与
-
Phase 6: Vikings
- 按官方规则书 / Fandom 口径修正 defs、locale 与 ability metadata
- 实现 deck-top / discard / steal / extra-action 联动与相关基地能力
- 补领域测试并完成增量门禁验证
- 统一 E2E 与更严格语义收口已在四派系统一审计阶段完成
-
Phase 7: Cowboys
- 实现官方 duel 内核、move / destroy / ongoing draw 与相关 metadata
- 补决斗/目标选择最小交互断言
- 补完整 duel 浏览器 E2E 与证据收口
-
Phase 8: Samurai
- 按官方规则书 / Fandom 口径修正 defs、locale 与 ability metadata
- 实现 honor / duel / destroy / temporary-buff / ongoing draw 与相关基地能力
- Samurai 专项浏览器 E2E、临时触发精细语义与更严格审计已在统一审计阶段完成
-
Phase 9: 统一审计与收尾
- 四派系完成后再统一做 gameplay 审计
- 运行相关 Vitest / typecheck / OpenSpec 校验
- 运行覆盖新交互类型的 E2E 并留证
- 汇总最终 evidence、残留风险与后续扩展点
| Decision | Rationale | Status |
|---|---|---|
使用独立 worktree feat/smashup-base-faction-assets |
根工作区已有并行任务与规划文件,隔离当前任务避免串改 | Approved |
| 使用 OpenSpec + planning-with-files 双轨记录 | 本次既要落地实现,也要沉淀可复刻流程和验收证据 | Approved |
| 以用户提供图片作为当前任务的直接权威来源 | 符合数据录入规范第 3 优先级,可直接用于资源与索引录入 | Approved |
| Smash Up 规则文本与审计必须走 Wiki 爬虫 | 项目专用强制规范,不能只凭图片或记忆录入 | Approved |
| 本轮 scope 以 intake/静态接入为准 | 用户要求整条资源接入链路,但 OpenSpec 已收束为图片、atlas、静态数据、文档、测试、E2E;不在本 change 内补完四派系完整 gameplay ability | Approved |
aiji.png 按 7x7、aiji_base.png 按 2x4 row-major 切片 |
已通过直接看图确认 48 张卡 + 1 尾格、8 张基地;后续 atlas/index 以此为唯一切片基准 | Approved |
| 武士基地 defId 使用 canonical 英文名,图面英文差异写入证据文档 | 图面为 Kyuden Konbini / Sakura Shigemi,TTS / Wiki canonical 为 Shogun's Palace / Sakura Garden;运行时名称与来源说明必须分离 |
Approved |
| 先完整录入 locale 文本,再最小化卡牌结构标签 | 为避免把“未实现玩法”误录成“已实现 ability”,本轮卡牌 defs 仅承载图片、数量、力量、所属派系与最小结构,详细文本放入 locale | Approved |
| gameplay 以独立 OpenSpec change 推进,而不与 intake 混写 | intake 已完成并可单独验收;玩法补完涉及新交互类型、UI 与审计范围,必须单独建模 | Approved |
gameplay 实施顺序固定为 Ancient Egyptians → Vikings → Cowboys → Samurai |
先打通 bury 主链路与 UI,再做 duel / movement / replacement,更容易收敛和审计 | Approved |
| bury UI 必须纳入 Ancient Egyptians 第一波范围 | 用户已指出吸血鬼 pod 时 bury 体系只有领域逻辑,没有正式 UI;若继续只做逻辑会重复留下未完成实现 | Approved |
| Error | Impact | Resolution |
|---|---|---|
根工作区 task_plan.md/findings.md/progress.md 已服务其他任务 |
不能在原工作区继续维护本次计划 | 新建独立 worktree 承载本任务 |