From 44fc82f456469fe452bfb4da3342eff763bb9f2d Mon Sep 17 00:00:00 2001 From: lili Date: Wed, 17 Jun 2026 14:21:25 -0700 Subject: [PATCH] =?UTF-8?q?docs(skill):=20game-e2e-cdp-harness=20=C2=A710?= =?UTF-8?q?=20=E6=9B=B4=E6=96=B0=E2=80=94=E2=80=94E1=20=E4=B8=89=20archety?= =?UTF-8?q?pe=20=E5=AE=B6=E6=97=8F=E6=B3=9B=E5=8C=96=20+=20=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E7=B1=BB=20I=20=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 回写完整泛化(§7):适配器三族(静态点击/realtime 漂移/控制类 paddle-intercept)均过真九门, 控制类点亮仅其有的 I 门;词汇表(input/update/rule/assets)。退役"声明式过拟合"之虑。 Co-Authored-By: Claude Opus 4.8 --- .agents/skills/game-e2e-cdp-harness.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/skills/game-e2e-cdp-harness.md b/.agents/skills/game-e2e-cdp-harness.md index 6a6c38b9..6f244599 100644 --- a/.agents/skills/game-e2e-cdp-harness.md +++ b/.agents/skills/game-e2e-cdp-harness.md @@ -121,7 +121,7 @@ ## 10. E1 2D 适配器:声明式 gameDefinition → 可玩件(plan 002 U1/U2 实证,2026-06-17) -固定架构消费侧 = 把 `SourceProject.gameDefinition`(声明式)适配成命中 `game-host.d.ts` GameInstance 的工厂(非 LLM 直写整 factory)。`game-runtime/src/adapter/`:`adaptGameDefinition(source)→GameHostFactory` 解释 entities/components(render)/scenes/rules + 最小 behavior 词汇(`input:hit-nearest-target`);`scaffold-from-source.mjs` 把 sourceProject 落成 `generated-factory.js`(entry-bundle 固定 import 目标)→ build.mjs → bundle(= 后端确定性 modify guard-pending 在等的"从源真构建"件)。`_adapter-probe` 真九门全过(A–I + 首局门;tap-targets driver、score 0→3、rule-driven latch)。 +固定架构消费侧 = 把 `SourceProject.gameDefinition`(声明式)适配成命中 `game-host.d.ts` GameInstance 的工厂(非 LLM 直写整 factory)。`game-runtime/src/adapter/`:`adaptGameDefinition(source)→GameHostFactory` 解释 entities/components(render)/scenes/rules + 最小 behavior 词汇(`input:hit-nearest-target`);`scaffold-from-source.mjs` 把 sourceProject 落成 `generated-factory.js`(entry-bundle 固定 import 目标)→ build.mjs → bundle(= 后端确定性 modify guard-pending 在等的"从源真构建"件)。**三 archetype 家族经同一适配器均过真九门**:① 静态点击(tap-targets)② realtime 漂移(drift-targets/update 行为)③ **控制类(control-x + fall-and-catch,paddle-intercept driver,点亮仅控制类才有的 I 门控制跟手)**。词汇:input(hit-nearest-target/control-x)· update(drift-targets/fall-and-catch)· rule(win/lose,序前优先)· assets[] 消费(spec-only 几何兜底)。退役"声明式过拟合/做不了真游戏"之虑。 **★ 必踩契约坑(第一版写错):`_forensicsView()` 返 `{ seed?, state: ()=>snapshot }`,不是裸 snapshot。** `boot-game-host.js:283` 的 `host.state()` 调 `gameForensics.state()`——即 `game._forensicsView().state()`(state 是 thunk)。直接返 `{phase,...}` → `host.state()` 调 `.state()` 时 `undefined()` 抛错、九门 H 读不到态。参照 `tictactoe/generated-factory.js:226`。snapshot 给 `targets:[{idx,x,y,occupied}]`(中心逻辑坐标)喂 tap-targets driver、`phase`(booting|playing|gameover)+ 进展字段(score/moves)喂 H 门 latch。