W-G1 生成主线 L1 worker 本轮收口(lane wg1/gen-worker;便宜模型 + harness 门兜底,HJ-GEN-001): 机制/契约 - 可测性红线 + P0 latch 终态:生成工厂导出 _forensicsView().state().phase (booting|playing|gameover,进 gameover 恒驻留、禁自动重开),对齐官方 P3 契约; flash 实测能遵此契约(v4/v5 latch 驻留 ✓)。 - 套官方 generic 壳:worker 产 generated-factory.js → entry-bundle 用 buildGenericHostConfig 装配(=官方 entry-generic.js 的取证超集,多透传 recHook 供 F 门)→ esbuild __GameBundle。 真玩门(七门→九门) - 门 H 机制+latch:assertAfterPlay 进展断言(剩余↓ 等,证非空心) + expectLatch 真玩到 gameover 且驻留。 - 门 I 控制手感:controlCheck 连点验控制体平滑逼近(逮"一格一跳"/卡死)。 - 适配性真玩 driver:读 state 实体位置自动接球,解"盲打固定坐标打不动技巧游戏"的 H 假阴性(创始人亲玩 + v4/v5 regen 双重实证)。 质量评估(player 校准) - studio(design/code/fix/player panel on AgentScope 2.0.1) + calibrate.py 校准 harness。 - 创始人亲玩锚揭结构性天花板:便宜 player(静态截图+数据)判不出物理/碰撞/控制手感 (把碰撞有问题的 pro 高估为最佳);gate-H 盲打会假阴性;founder/人锚不可替代。 "上下文是杠杆"实证:接地使成本 −50%、修复轮次 −80%;rubric 锚定使 player MAE 1.25→0.75。 含从 dev/2.0.0 @3108009 拉入的官方 P3 通用装载壳(_generic/ + generic-host-config.js + 双 spec) 作 L1 套壳靶(为 lane 自洽,内容与 dev/2.0.0 一致,后续 merge 自去重)。 未提交:AGENTS.md/.gitignore 的 localagents 改动(非本人);生成产物游戏目录(构建 artifact)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
28 lines
2.6 KiB
JSON
28 lines
2.6 KiB
JSON
{
|
||
"title": "打砖块 Breakout",
|
||
"brief": "做一款经典打砖块 Breakout。竖屏逻辑视口 390×844。\n- 底部一块玩家挡板(水平移动,厚度≥14,避免高速穿透)。\n- 一个球斜向匀速运动:碰左/右墙与顶墙反弹;碰挡板反弹,且按击中挡板的位置微调水平速度(越靠边角度越斜)。\n- 顶部一片砖块网格(如 6 列 × 4~5 行),球击中砖块则该砖消除、得分 +1;可让部分砖需击中多次(颜色随剩余命数变化)增加层次。\n- 球掉到挡板下方(越过底边)= 失败;清光所有砖 = 通关。\n- 【终态契约·务必遵守】失败或通关都进入终态:把 _forensicsView().state().phase 置为 'gameover' 并【驻留】——画面停在终态(可显示 GAME OVER / YOU WIN 文案,可提示「点击重玩」),但在玩家主动点击重玩之前 phase 必须恒为 'gameover',**绝不自动重开 / 不下一帧复位回 playing**(宿主每 500ms 轮询 phase 判结束,瞬时终态会被漏读)。\n- 【控制·务必跟手】挡板朝触摸点 x 平滑逼近(每帧向目标 x 插值移动一定比例,如 0.2~0.35),**绝不是每次点击只挪一格**——玩家手指移到哪,挡板要顺滑跟过去。\n- 【可测性·务必导出位置】_forensicsView().state() 除 phase/score/remaining 外,额外导出 ball:{x,y,vx,vy} 和 paddle:{x,y,w}(实时真值,与画面一致)——harness 据此自动接球真玩并验证控制跟手与碰撞。\n- 球速中等:合速度约每秒 300~420 逻辑像素。\n- 反馈(juice):每次击碎砖块触发 getEngine().particles.spawnEmitter 粒子爆发 + getEngine().audio.synth.synthSfx 音效;撞墙/撞挡板也可给轻音效。\n- 画面:深色背景铺满 390×844;挡板/砖块用亮色实心矩形,球用亮色实心圆;顶部单行文字显示分数与剩余砖数。",
|
||
"play_spec": {
|
||
"controlCheck": {
|
||
"paddlePath": "paddle.x",
|
||
"paddleY": 800,
|
||
"tapXs": [50, 340],
|
||
"tapsPerTarget": 6,
|
||
"moveMin": 25,
|
||
"tolerance": 70,
|
||
"why": "挡板须平滑逼近触点 x(逮「一格一跳」/卡死:连点同一 x 后挡板应明显移动且最终靠近该 x)"
|
||
},
|
||
"driver": {
|
||
"type": "paddle-intercept",
|
||
"ballPath": "ball.x",
|
||
"paddleY": 800,
|
||
"steps": 60,
|
||
"stepMs": 130
|
||
},
|
||
"expectedEngineCallPrefixes": ["particles.", "audio.synth"],
|
||
"assertAfterPlay": [
|
||
{ "path": "remaining", "op": "decreased", "why": "适配性真玩(挡板自动接球)下击碎砖块→剩余下降;接不住/碰撞失效则不降" }
|
||
],
|
||
"expectLatch": true
|
||
}
|
||
}
|