games-development-ai/docs/brainstorms/2026-06-17-mac-work-list-requirements.md
lili 826047ebfc docs(plan): Mac 前端+引擎线 E1–E6 需求档(ce-brainstorm)+ 实现计划 002(ce-plan)
落地本特性分支的规划 artifacts,使分支自洽(需求→计划→实现 同源):
- docs/brainstorms/2026-06-17-mac-work-list-requirements.md:E1–E6 需求(经 5 人 ce-doc-review + 重锚 + 创始人裁定 game-admin 归本线 / 六类资产=P-CRT-02)。
- docs/plans/2026-06-17-002-feat-mac-engine-frontend-tier0-plan.md:E1–E6 实现计划(经 3 人 headless ce-doc-review,U2 净新建/KTD1 接缝/MVP-latch/producer 跨线 等修订已融)。
本分支已实现 E1(3 archetype + win/lose + asset + 鲁棒)/E2 scaffold/E3 asset;E4/E5/E6/U7 见计划(跨线/设计门)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:27:37 -07:00

10 KiB
Raw Blame History

date, topic
date topic
2026-06-17 mac-work-list

Mac 工作清单(前端+引擎线 · Phase 1 主账)

Summary

为「前端+引擎线」(本机 lili-mac)排定 Phase 1 工作账,锚定在固定游戏架构 + SAA agentic studio(契约 8/8 已冻,我线全部现在可开工)。我线的活 = 协调档 §7.2 的 E1E6 + 广度 8 页:后端 SAA 图产 gameDefinition/assetSpec,我做消费/适配/QA/创作 UI 侧。最高价值首件 = E1 2D 适配器(gameDefinition→LittleJS);关键路径 = 后端 B6 + 引擎 E1/E3/E4 合流出「一句话→生成→玩」M0 真闭环。


Problem Frame

2026-06-17 创始人按"要不要浏览器/视觉"切两开发线,本机由"便宜模型生成 L1"转为「前端+引擎线」。随后两次 pull 落地了契约冻结门 8/8 + SAA 固定架构图 16 节点(B2),协调档 §7 刷新为"契约冻结后各线当前工作清单"。本账重锚到这一现状:早版按旧 W-G1 Python worker 主线 + 旧 §6 搭的骨架(R1R8)已被 §7.2 的 E1E6 取代——主线现是 SAA 图,worker 降为引擎线复用的组件(build.mjs 共调 / asset 角色 / few-shot 来源),不再是"转默认产线"。


已落地基线(re-baseline · 不再列为 TODO)

  • 引擎:game-runtime/src/plugins/ 8 业务插件(collision 含 swept CCD、physics-lite、particles-juice、gamefeel、palette-post、audio-music、save-progress、runtime-probe;_example 样例不计)。预判"4 短板"实测已突破。
  • worker 九门 real-play:scale 18/19 过九门(94.7%),仅 t2048 因 latch 挂(见 E4)。driver 覆盖已补齐:angrybirds drag-aiming(runDragAiming@play.cdp.cjs:368,commit 06e59de6,pass)、multiball(commit cc5fa486,pass)、tap-targets 自产、brief-pin 数值自产化均已落地。首局体验门(组 C,additive 非阻断)已落地、本机 M1 跑通(breakout 全过)。
  • worker 派发壳:service.py 已含 /generate + HMAC-SHA256 X-Callback-Signature + 回调内部路(commit d59093f8),供 SAA/worker 两路复用。
  • 前端:8 个 studio 页已落地(Feed/Play/Create/Message/Profile/Project/Biz/Dashboard,共 10 个 views 目录含 login/share)+ 设计体系(tokens.css/vue-i18n zh+en/组件库/Vant 深色主题)。:这 8 个 ≠ demo 设定的"八大页";demo 八大页里素材中心、玩法模板中心两页仍缺(见广度)。
  • 联合 spike:缓存透传 绿(7693% 命中)、classify 准确率 绿(M3 archetype 93%/$0.003)。

Key Decisions

  • 重锚到 §7.2 E1E6:用协调档/执行档的权威 E-ID 体系,本账作其详账,避免与 §7.2 漂移。
  • 契约 8/8 已冻 → 我线全部可开工:E1E6 不再"卡契约";依赖 B 步只是跨线协调(各对 mock 建半边),非阻塞。
  • worker = 复用组件,非主线:固定架构主线是 SAA 图;worker 提供 build.mjs 共调 / asset 角色 / few-shot 来源 / cost 折算。
  • 插件库不预补门面:18/19 在无预补下达成(限当前语料;若后续 grid/HUD 密集体裁批量重写同逻辑则复评)。
  • 权威 e2e 在 mini-desktop,本机 = 快走查
  • 创始人 2026-06-17 裁定:game-admin 前端归本线(入广度,≈M3)· 六类资产 = P-CRT-02 六类(定 E3 assetSpec)。
flowchart TB
  subgraph FE["前端+引擎线 (本机 lili-mac)"]
    e6["E6 创作/修改/预览 UI"]
    e1["E1 2D 适配器 gameDefinition→LittleJS"]
    e3["E3 asset 产消 (六类资产)"]
    e4["E4 九门 QA + narrative reviewer"]
    e5["E5 Prompt Registry few-shot 冻结"]
  end
  subgraph BE["后端线 (6c6g / mini-desktop)"]
    b6["B6 studio 编排 /studio/create,modify"]
    g["SAA 固定架构图 (16 节点)"]
    cb["handleCallback 建版本→组包→入 feed (唯一写入路径)"]
  end
  e6 -->|"/studio/create (frozen yaml)"| b6
  b6 --> g
  g -->|"gameDefinition"| e1
  g -->|"assetSpec"| e3
  e1 --> e4
  e4 -->|"engineBundle / 过九门"| cb

Requirements

采协调档/执行档权威 E-ID(E1E6);广度页用列表。状态:已落地 / 🔄部分 / 开口。每项附验收(对齐执行档 §10.2)。

Tier 0(生成引擎 · 关键路径 · 现在可开工)

E 工作项 文件 状态 验收(§10.2)
E1 2D 适配器(SourceProject.gameDefinition→LittleJS 可玩)= 最高价值首件:实体→sprite、behavior→逻辑 game-runtime/src/(新增 adapter 层) 开口·新 单测 实体→sprite/behavior→逻辑 + 九门真玩绿
E2 唯一构建实现核对:SAA build 节点与 worker 共调 scripts/build.mjs(不动) game-runtime/scripts/build.mjs 🔄 共调已有,补核对 同源同参 __GameBundle 一致;同 buildInputHash 字节等价
E3 asset 产消(六类资产 = 图元/角色/特效/场景/界面/音乐 · P-CRT-02):asset 节点 spec→assets[]→宿主消费 + provider=mmx-cli 插桩 game-runtime/ + worker asset 角色 开口·新 assets[] 非空 → GamePackage assets[] → 宿主非空 assetContext
E4 九门 QA harness 复用(禁重写)+ narrative 路质量门接 reviewer;含 t2048 latch(唯一剩门) _shared/*(不动)+ reviewer 角色 🔄 18/19,t2048 开口 九门真玩绿(mini-desktop 4320/9222)
E5 Prompt Registry 冻结 few-shot(byte 稳)+ CI 卡 byte(现 _few_shot() 读文件=字节不稳) contracts/prompts/prompt.py 开口·新 CI:few-shot byte 不变
E6 前端创作(接 /studio/create)/ 修改(接 /studio/modify)/ 预览 UI(对 frozen studio.yaml + mock) game-studio/src/ 🔄 Create 已存,补真接+进度 真机 UI 走查(mini-desktop CDP)create/modify/预览闭环
  • E4 子项(t2048):抗死锁盲态体裁——放宽 H 门 latch 为"score↑ ∧ board 变 + G 兜",或升级"填库死锁"driver;立为体裁规则补档。实现期按数据二选一。
  • E6 子项(进度反馈):补 UI 形态(成功/失败/进行中落点),与 SSE/轮询传输选择分离(后者视后端定)。

广度(Tier 1+ · 账本级 · 价值×独立性)

  • 创作页完善 · feed · 钱包 · 消息社交 · 账号(均已有骨架,补真接/完善)
  • 玩法模板中心页(新页,低):浏览/选择/应用模板到草稿;先对 mock,真接等后端模板 API,毕业门绑 M1
  • 素材中心页(新页,低):素材浏览/选用加入草稿;先对 mock,真接等后端素材 API,毕业门绑 M3
  • 设计体系 HJ-FE-DS-001(P1P5 大半已落地)
  • game-admin 运营台前端(创始人 2026-06-17 裁定归本线):限曝光/导出/经营看板 + 赋余额/订阅入口;game-admin repo(huijing-ui-admin-vue3 fork);低优先 ≈ M3
  • 新页验收(mock 阶段最小状态):加载中 / 空列表 / 选中→应用 交互路径可走查

Success Criteria(= 执行档 §10.2 引擎+前端线验收门)

  1. E1:gameDefinition 渲成可玩(实体→sprite、behavior→逻辑)单测绿。
  2. E4:九门真玩绿(mini-desktop),cheap 在固定架构填出过九门游戏 verdict.pass=true;scale 维持 ≥18/19,t2048(唯一剩门)解决后 19/19。:19/19 经放宽 latch 门达成(体裁固有边界,非生成能力增益);语料 19 款(simon×3 变体)无第 20,scale-20 目标另需生成第 20 款。
  3. E3:sourceProject.assets[] 非空 → GamePackage assets[] → 宿主加载(非空 assetContext)。
  4. E2:同 buildInputHash → 字节等价 bundle(从源可复现)。
  5. E6:create/modify/预览闭环真机 UI 走查过(编排器旁路会掩盖 UI 缺陷,真 UI 走查是唯一手段)。
  6. M0 失败门:E1/E4 任一门挂或 GamePackage manifest 不符 schema → M0 不清、阻 M1 在其上开工。

Scope Boundaries

  • 不做(后端线 / 6c6g):SAA 图(B2)、studio 编排 B6、源落库/构建落包、handleCallback 入 feed(唯一写入路径在后端)、全部 game-cloud 后端、契约/Flyway/prompt 后端段。我线只产出过九门的 engineBundle/GamePackage,"入 feed" 是跨线集成点
  • 不做(本 Phase 外 → P2/P3):3D 适配器/Cocos(P2)、云部署/监控运维(P2)、真支付/短信/广告/渠道(P3)、全维优化。

Dependencies / Assumptions

  • 契约 8/8 已冻(源项目 schema+V18 DB · SAA ALL_KEYS · trace 扩展键 · studio.yaml 生命周期 API · GamePackage/构建 API)→ 两线可独立开工,各对 mock 建半边。
  • M0 集成 = 后端 B6 + 引擎 E1/E3/E4 合流(跨线协调点,非阻塞)。
  • 硬约束(回归红线):九门 harness 禁重写;build.mjs 唯一构建脚本不动;GamePackage 产物面既冻;modify 不动 currentVersion、不自动入 feed;new-api 缓存命中只落成本台账、不接收益结算。
  • 接缝:cost.py(B9 缓存命中字段)、few-shot(E5 来源 prompt.py)为 worker/SAA 两路共用,改动须双路兼容。
  • 权威 e2e 机 = mini-desktop(Linux);本机 M1 = 快走查自检。
  • 安全:NEWAPI_KEY 仅在 wg1/gen-worker/.env(gitignore),不入提交;生成 + 九门在本机跑。

Outstanding Questions

原两项 Resolve-Before-Planning 已由创始人 2026-06-17 裁定:game-admin 前端归本线(入广度)· 六类资产 = P-CRT-02 六类(写入 E3)。

Deferred to Planning

  • E4/t2048:走"放宽 latch 门"还是"填库死锁 driver"——实现期按数据定。
  • E6 进度反馈:SSE 节点流(SAA 强项)还是前端轮询——视 B6 契约定。
  • 最简模板首件:M0 端到端先打通哪一档 archetype(8 档:clicker/dodge/match/runner/idle/merge/tycoon/generic;倾向 clicker/dodge 最简)。

Sources / Research

  • 协调档:docs/agent-specs/2026-06-17-多session分工与任务总账.md(§7.2 我线当前清单 E1E6、契约 8/8 冻结进度)。
  • 执行档:docs/agent-specs/2026-06-17-固定游戏架构与SAA-agentic-studio-execution.md(§7.2 E 步定义、§10.2 验收门、§4.1 数据流、§3.2/3.3 文件路径、§5.5 asset 契约)。
  • 现状盘点(file:line 实证):game-runtime/src/all-plugins.js(8 业务插件)、game-runtime/games/_wg1-gen/_shared/play.cdp.cjs:368(runDragAiming)、{angrybirds,multiball}/evidence/verdict.json(pass)、t2048/evidence/verdict.json(pass=false)、wg1/gen-worker/worker/service.py(/generate+HMAC)、game-studio/src/views/(10 目录)、game-studio/src/host/(宿主装载契约)。
  • 提交锚:06e59de6(angrybirds drag-aiming)、cc5fa486(multiball)、d59093f8(worker 派发壳+HMAC)。