games-development-ai/docs/plans/2026-06-19-001-feat-coredone-验收闭环执行-plan.md
lili 0518d24592 docs(plan): plan003 Plan B — Phase-1 core-done 验收闭环执行(双线拆分)
ce-plan 据 2026-06-19 验收闭环需求档产出 Plan B(core-done):引擎资产渲染(原003-U5)+
验收 harness(核心纵切e2e/广度抽检/8页走查/smoke)+ 双里程碑收口。
依赖排序:Phase1 六单元全独立(执行期可并行 fan-out)、Phase2 gated on gen-done(Plan A ≥80%产出)、Phase3 最终收口。
gd-runtime 整面归本档(解 U5↔U1 共面冲突,Plan A 走 DESIGN_SYSTEM)。gen-done(U1/U2)=Plan A 另 session。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:45:00 -07:00

14 KiB
Raw Blame History

title, status, date, type, origin
title status date type origin
feat: plan003 Plan B — Phase-1 core-done 验收闭环执行(引擎资产 + 验收 harness + 广度/前端真验证) active 2026-06-19 feat docs/brainstorms/2026-06-19-plan003-phase1验收闭环-requirements.md

feat: plan003 Plan B — Phase-1 core-done 验收闭环执行

双线拆分:本档 = Plan Bcore-done。Plan Agen-done = 003-U1 用对 M3 + 003-U2 flip在另一 sessiongamedef-qc lane并行,不依赖本档。本档与 Plan A 代码面不相交Plan B 拥 gd-runtime/前端/验收层;Plan A 拥 SAA java/worker python;唯一耦合 = 本档 Phase 2/3 的 game-quality 门消费 Plan A 产出(单向、末段),及 mini-desktop e2e 串行排队。

摘要

把验收闭环需求档落成 core-done 执行:建/接各门 harness(复用 nine-gate play.cdp.cjs 四件套 / CDP 走查 / staging-ops / 已合的 003-U1 e2e 工具)、引擎资产渲染(原 003-U5)、广度/前端真验证,再做双里程碑收口。Plan-A 依赖步骤后置:Phase 1 全独立(可并行 fan-out),Phase 2 gated on gen-done 产出,Phase 3 最终收口。

问题背景

总账诚实口径:plan002 前端 + 广度后端多停在「build 绿 + mock + 代码评审」,真验证(staging + mini-desktop CDP + 三跨 e2e)= open;引擎资产渲染(003-U5)未做且 gd-runtimeGAMEDEF_KEYS strip 掉 assets = 死代码。core-done 要把这些 open 收成真证据 + 补齐资产渲染,作 Phase-1「done」的非生成半边。生成半边(gen-done)归 Plan A。

关键技术决策KTD

  1. 本档 = 验收/收口执行层 + 引擎资产,不重排 Plan A 的生成/prompt 开发(消费其产出)。
  2. gd-runtime 整面归本档(U1):解 plan003「U5 ↔ U1 共面、同 owner 串改」冲突——Plan A 的 remaining 语义走 DESIGN_SYSTEM java,本档独占 gd-runtime/build-from-source,两面零撞。
  3. 复用现成 harness 不另起:nine-gate play.cdp.cjs(R4/R9 划界)、ui-walkthrough-cdp(R5/R7/R8 CDP)、staging-ops+smoke-test.sh(R3/R8 staging)、SaaFullGraphE2eTest(R4 经我建的 003-U1 工具)。
  4. 依赖排序 = 独立先、gen-依赖后:Phase 1 六单元无 Plan A 依赖,执行期 fan-out 成并行后台 worktree 子代理;Phase 2/3 的 game-quality 门(feed 真玩/rubric/M0 core/最终验收)gated on gen-done。
  5. rubric 与九门划界(R9):九门已客观覆盖项(F/I/H/control)不重打,rubric 只补九门测不到的设计完整性层(资产/玩法目标),资产对位一票否决。

高层技术设计HTD— 阶段依赖

flowchart TB
  subgraph P1["Phase 1 · 独立(无 Plan A 依赖,可并行 fan-out)"]
    U1["U1 引擎资产渲染 + asset 孤儿闭合"]
    U2["U2 审核→发布纵切 e2e"]
    U3["U3 经济赋余额→C端三跨+幂等"]
    U4["U4 广度域抽检 harness"]
    U5["U5 8页 CDP 走查 harness"]
    U6["U6 smoke 5链路 staging 真绿 + R3 reframe"]
  end
  subgraph P2["Phase 2 · gated on gen-done + U1"]
    U7["U7 设计完整性 rubric 评分"]
    U8["U8 创作→生成→feed真玩 + 资产可见"]
    U9["U9 M0 core 联合验收门"]
  end
  subgraph P3["Phase 3 · 最终收口"]
    U10["U10 双里程碑收口 + 最终 Phase-1 验收"]
  end
  GenDone["Plan A · gen-done(≥80% + flip)"]
  U1 --> U7
  U1 --> U8
  GenDone -.消费产出.-> U7
  GenDone -.消费产出.-> U8
  GenDone -.消费产出.-> U9
  U8 --> U9
  P1 --> U10
  P2 --> U10
  GenDone -.-> U10

需求追溯

需求(origin) 单元 阶段
R11 资产可见 / 003-U5 引擎资产 + T3 U1 1
R5 审核→发布 U2 1
R6 经济赋余额→C端+幂等 U3 1
R8 广度抽检 U4 1
R7 8页走查 U5 1
R3 smoke 5链路 U6 1
R9 rubric U7 2(gated)
R4 feed真玩 + R11 in-context U8 2(gated)
003-U3 M0 core U9 2(gated)
R10 总判 / 003-U4 最终验收 U10 3

Plan A 落的:R1/R2(gen-done)+ T1/T2(回退同契约 / flip 两步)。本档 Phase 2/3 消费其 ≥80% 产出。


实现单元

Phase 1 — 独立单元(无 Plan A 依赖,执行期可并行 fan-out

U1. 引擎资产渲染 + asset 孤儿闭合(原 003-U5 + T3 reconcile

  • Goal:gd-runtime 支撑带美术的简单游戏——六类资产 ref→GamePackage.assets→drawImage/audio 渲染链路 + GAMEDEF_KEYS 纳入 assets(消死代码)+ drawEntity 支持 shape:'sprite';R11 代理判据 = 素材 ref 可识别特征在 play 截图比对命中。
  • Requirements:R11;origin 003-U5;跨档 T3(reconcile plan003 003-U5 独立门 ↔ R11 嵌入判据,以 R11 代理判据为最终口径)。
  • Dependencies:无(引擎 js 独立);本单元独占 gd-runtime 整面(解共面冲突,Plan A 不碰)。
  • Files:game-runtime/src/host/gd-runtime.jsgame-runtime/src/host/build-from-source.mjsgame-runtime/src/host/build-from-source.test.mjs、渲染器。
  • Approach:GAMEDEF_KEYS 纳入 assets + drawEntity 经受控面加载 sprite,把 asset 注入移到 validate 装配前(二选一,消「validate 后 merge=永不被消费」死代码);六类资产(sprite/character/effect/scene/ui/music)逐类 ref→draw;4 短板(文本HUD/grid/CCD/drag)先核差分勿重造。
  • Patterns:.agents/skills/game-e2e-cdp-harness.md §5-6(引擎掌帧/能力接线像素门);现 gd-runtime/build-from-source;plan003 003-U5 六类资产逐类验收门。
  • Test scenarios:happy build-from-source 单测断言 sprite 实体产 drawImage 调用 + 截图非空;六类资产逐类各 1 demo ref→assets→draw 真渲染 + 截图;Covers R11 端到端孤儿闭合(002-U6 选用素材 ref 特征在 play 截图比对命中,非"非空即过");edge 缺资产/错 ref 兜底;4 短板逐项 demo。
  • Verification:build-from-source 单测绿 + 六类资产 demo 各截图 + 孤儿闭合截图(特征命中)+ game-runtime 构建绿。

U2. 审核→发布纵切真机 e2eR5

  • Goal:admin 审核通过→game_project 置发布态 + game_feed_rank 写入(同事务),CDP + DB 行级证据。
  • Requirements:R5。
  • Dependencies:无(plan002 admin 审核台已建,本单元真验证)。
  • Files:验收脚本(game-admin CDP 走查 + DB 断言);无 prod 改(除非走查逮缺陷)。
  • Approach:复用 HJ-FE-WALK admin /wanxiang/review 走查范式(接 staging),审核通过→DB 行级核 status + feed_rank 同事务。
  • Patterns:.agents/skills/ui-walkthrough-cdp.md;总账链路②已闭合先例(2026-06-11 链路②波)。
  • Test scenarios:happy 审核通过→status=4 + game_feed_rank(zone,status1)写入;驳回路;权限 RBAC;空队列。
  • Verification:CDP 截图(队列减项)+ DB 行级实证。

U3. 经济赋余额→C端三跨 + 幂等R6

  • Goal:admin 赋余额→trade_flow 入账 + trade_account 余额增 + C 端余额显示变;同 bizNo 重投不二次入账。
  • Requirements:R6。
  • Dependencies:无(trade 成熟 + plan002 U10 赋余额前端)。
  • Files:验收脚本(admin + C 端 CDP + DB 断言 + API curl)。
  • Approach:三跨 = 前端 CDP(C 端余额变)+ 后端 API(同 bizNo 幂等返 200)+ DB(trade_account 余额行 + trade_flow 流水行);同 bizNo 重复投递一次断言不二次变动。
  • Patterns:deploy/smoke-test.sh 链路④;trade 幂等(uk_source 逐笔 / 余额 CAS)。
  • Test scenarios:happy 赋余额三跨;幂等 同 bizNo 重投不二次入账;赋订阅→C 端查态;权限 RBAC;审计日志(赋值可溯)。
  • Verification:三跨证据(CDP+API+DB)+ 幂等断言 HOLD。

U4. 广度域抽检 harnessR8

  • Goal:社区 / 素材 / admin 运营 各:关键 API 200/code=0 + 单测绿 + ≥1 CDP 页抽检。
  • Requirements:R8。
  • Dependencies:无(plan002 广度已建)。
  • Files:抽检脚本(API curl + 各域 1 CDP 页)。
  • Approach:定每域 CDP 页(解原「留待规划」):社区→排行/评论页;素材→素材中心页;admin→经营看板页。抽检证据,不逐域三跨 e2e;本组证据可滚动累计。
  • Patterns:deploy/smoke-test.sh envelope 检;.agents/skills/ui-walkthrough-cdp.md
  • Test scenarios:各域关键 API 200/code=0 + 空数据 + 权限/归属隔离;各域 1 CDP 页关键元素渲染。
  • Verification:每域三件(API/单测/CDP 抽检)就绪即冻。

U5. 8页 CDP 走查 harnessR7

  • Goal:8 页真数据走查,零未捕获异常 + 零 5xx/关键接口 4xx + 每页关键元素/数据渲染断言(非"控制台零 error")。
  • Requirements:R7。
  • Dependencies:无(play 页本阶段用 seed 游戏;SAA 生成游戏走查在 U8)。
  • Files:走查脚本(CDP,8 页)。
  • Approach:studio 创作 / feed / play / admin 审核 / admin 运营 / 素材中心 / 玩法中心 / 创作者主页;某页发布前不可达则标 skipped+原因,不自动判 B 不过。
  • Patterns:.agents/skills/ui-walkthrough-cdp.md;HJ-FE-WALK-001。
  • Test scenarios:每页关键元素/数据渲染断言;零未捕获异常;零 5xx/关键 4xx;skipped 路记原因。
  • Verification:8 页截图 + 断言(skipped 页注原因)。

U6. smoke 5链路 staging 真绿 + R3 reframeR3

  • Goal:deploy/smoke-test.sh 五条业务链路 staging 真绿(含 --deep 入队 200/code=0);明示 R3 = 基础设施/链路就绪门,不代理 R1(对 dispatcher=http/saa 同绿)。
  • Requirements:R3。
  • Dependencies:无(staging 在线)。
  • Files:deploy/smoke-test.sh(若需补口径注释)、运行记录。
  • Approach:跑 smoke 默认 + --deep;确认五链路绿;记录 R3 不作生成路证据(评审 P0-1)。
  • Patterns:.agents/skills/staging-ops.md;deploy/smoke-test.sh
  • Test scenarios:五链路逐项 PASS;--deep 入队 200/code=0;任一 FAIL 归因。
  • Verification:SMOKE_VERDICT=PASS

Phase 2 — gated on gen-donePlan A ≥80%+ U1 资产

U7. 设计完整性 rubric 评分R9

  • Goal:rubric(5 项 ×0-2:资产对位[一票否决]/玩法目标完整/反馈充分/难度/内容非退化)对 Plan A 的 ≥80% 批抽 8 款人工逐项打分,均分 ≥1.4 且 资产对位 ≥1
  • Requirements:R9。
  • Dependencies:Plan A gen-done(≥80% 批)+ U1(资产渲染)
  • Files:rubric 评分表/记录(docs/agent-specs/ 或 evidence 目录)。
  • Approach:与九门划界——F/I/H/control 引用不重打,rubric 只补九门测不到层;人工(创始人或指派)亲玩/观玩打分。
  • Test scenarios:Test expectation: none —— 评分流程,非代码单元;交付 = 打分协议 + 8 款评分表。
  • Verification:8 款评分表 + 均分 ≥1.4 + 资产对位项无 0。

U8. 创作→生成→feed真玩纵切 + 资产可见R4 + R11 in-context

  • Goal:一句话经 SAA 路生成→发布→feed 真玩到终局,资产可见。
  • Requirements:R4、R11。
  • Dependencies:Plan A gen-done + U1 资产;mini-desktop(与 Plan A e2e 串行排队)。
  • Files:e2e 脚本(SaaFullGraphE2eTest / play.cdp.cjs + feed CDP)。
  • Approach:最小断言集 = CDP 启动帧(非空 canvas)+ 交互后状态截图 + game_project ≥ published + 遥测 session_start/终局事件;用 SAA 路生成的游戏;资产经 U1 比对命中。
  • Patterns:game-runtime/games/_wg1-gen/_shared/play.cdp.cjs nine-gate;SaaFullGraphE2eTest;003-U1 e2e 工具。
  • Test scenarios:Covers R4 feed 真玩到终局 + CDP 截图 + 落库/遥测事件;Covers R11 资产特征比对命中;edge 生成失败就地降级。
  • Verification:CDP 四件套 + DB/遥测行。

U9. M0 core 联合验收门003-U3

  • Goal:M0 core e2e = 一句话真生成可玩游戏 + 三契约(API/dispatcher/manifest)对齐。
  • Requirements:origin 003-U3。
  • Dependencies:Plan A gen-done + U1 + U8;mini-desktop。
  • Files:集成验收(无新文件);挂总账 M0 里程碑追踪。
  • Approach:mini-desktop CDP 一句话端到端 + 三契约核;M0+(入 feed/审核)随就绪联合验。
  • Test scenarios:Test expectation: none —— 集成验收门;交付 = M0 core e2e 证据。
  • Verification:M0 core e2e 过 + 三契约对上。

Phase 3 — 最终收口(全依赖)

U10. 双里程碑收口 + 最终 Phase-1 验收R10 / 003-U4

  • Goal:core-done = U1U9 证据冻;Phase-1 done = gen-done ∧ core-done;创始人签核;最终回归。
  • Requirements:R10;origin 003-U4。
  • Dependencies:U1U9 + Plan A gen-done
  • Files:收口记录 + docs/mvp/MVP进度总账.md 回填。
  • Approach:收口口径 = R1/R2/R4/R5/R6 同一运行窗口(≤2 工作日)收齐 + R8 滚动累计 + 创始人 24h 签核;最终回归 = deploy/smoke-test.sh 绿 + 8 页 CDP 走查真数据 + 简单游戏 e2e + 经济 e2e;M1/M2/M3 域逐项绑 002 对应 unit + 证据。
  • Test scenarios:Test expectation: none —— 最终回归/收口门。
  • Verification:全过 = Phase-1 done(gen-done ∧ core-done 各自打勾 + 总判签核)。

范围边界

Deferred to Follow-Up Work

  • 广度域逐域三跨 e2e(本档只抽检);MQ 异步化、best-of-N。

非本档(归他处)

  • gen-done = Plan A(003-U1 用对 M3 + 003-U2 flip)+ T1/T2 跨档 TODO。
  • 性能/可用性轴(feed 首屏 P75<3s / 可用性 ≥99.5%)延后 Phase-2(风险接受,见 origin)。
  • 真广告/真支付/实名/ICP(日历闸门)= mock;3D/Cocos/复杂游戏(P2/P3)。

依赖与前置

  • Plan A(gen-done):Phase 2/3 的 game-quality 门(U7/U8/U9/U10)消费其 ≥80% 产出(单向、末段)。Plan A 另落 T1(回退同契约实证)、T2(flip 两步消 R1↔R2 循环)。
  • mini-desktop(九门 e2e + 端口 4320/9222 + flock):U8/U9/U10 e2e 与 Plan A 量测串行排队
  • 003-U1 e2e 工具(已合 dev/2.0.0)、NEWAPI_KEY(docs/内网凭据与端点.md)。
  • Phase 1 真验证前提:plan002 前端(U8/U9/U10)VITE_API_BASE→staging。

风险

  • R1 game-quality 门等 gen-done:Plan A ≥80% 可达性未证(v3 用法错为主因但 n=5)→ U7/U8/U9 收口时点不定。缓解:Phase 1 全独立先冻,gen-done 到再跑 Phase 2。
  • R2 gd-runtime 单 owner:本档独占 gd-runtime,Plan A 走 DESIGN_SYSTEM——若 Plan A 误改 gd-runtime 则冲突。缓解:Plan A prompt 已铁律标注。
  • R3 mini-desktop 串行瓶颈:两线 e2e 排队;缓解 = flock 单实例锁 + 错峰。

来源

  • docs/brainstorms/2026-06-19-plan003-phase1验收闭环-requirements.md(origin,过 §6.8 双评审)。
  • docs/plans/2026-06-18-003-feat-gen-quality-converge-and-m0-integration-plan.md(003-U3/U4/U5)。
  • .agents/skills/{game-e2e-cdp-harness,ui-walkthrough-cdp,staging-ops,saa-graph-orchestration}.md
  • deploy/smoke-test.sh;docs/mvp/MVP进度总账.md