主力批 7/8 真可玩(Opus 对抗审计 0 假绿)、压测 match3 ✅;失败收敛:3 键盘款(2048/Tetris/Asteroids)挂宿主缺 keydown 桥=唯一真·L0 门面缺口(已 spawn_task 交 L0)、multiball/flappy/愤怒小鸟=driver-coverage(非模型)。spec 预判 CCD/文本HUD/网格/match/手势缺口全推翻(便宜 flash 自带 swept CCD/自写网格文本)。
- driver 库 1→6 型(tap-targets/flap-to-gap/seek-x/tap-pairs/key-cycle/paddle-intercept)+ drag 输入事件 + key() Arrow 修
- M3 视觉 player 当生产过滤器实证(与门 8/9 一致、抓显性空心)→ 门(地板)+M3(主观过滤)+创始人(人锚)三层互补
- 短板量化报告定稿 + 两 skill 沉淀(game-e2e §8 driver库/门承重/键盘缺口 · cheap-model §9 模型能力画像)
- 2 个 ultracode 对抗 workflow(审计10+诊断7 agents)抓 saolei 弱断言、纠 flappy 归因(driver 非模型)、定位宿主键盘根因
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
13 lines
2.5 KiB
JSON
13 lines
2.5 KiB
JSON
{
|
||
"title": "跳跃者 Doodle Jump",
|
||
"brief": "做一款经典 Doodle Jump(垂直无尽跳跃)。竖屏逻辑视口 390×844(坐标 y 向下为正)。\n- 角色落到平台上【自动反弹】向上(反弹力稳定,使角色每次踩台都能明显向上跳起一段);点击屏幕左半 = 角色持续左移、点击右半 = 持续右移(水平移动要明显、跟手);角色水平移出屏幕一侧从另一侧穿回。\n- 平台在上方程序化随机生成,**相邻平台的水平与垂直间距适中**——保证下一块平台总在角色一次跳跃 + 水平移动够得到的范围内(不要生成够不到的平台)。相机随角色上升而上移;角色掉到屏幕底部以下 = 失败。\n- score = 已上升高度:**开局必为 0**,随角色不断上升而单调增加(用相机上移总量 / 角色到达过的最高点计)。\n- 顶部文本 HUD:高度分 / 状态。\n- 【终态契约·务必遵守】掉落失败即把 _forensicsView().state().phase 置 'gameover' 并【驻留】(显示结果 + 「点击重玩」提示);玩家点击重玩前 phase 必须恒为 'gameover',**绝不自动重开 / 不下一帧复位**(宿主每 500ms 轮询 phase 判结束)。gameover 下点击一律忽略;仅「重玩」按钮重开。\n- 【可测性·务必导出状态】_forensicsView().state() 返回纯只读实时真值:\n · phase;result:null | 'lose'\n · score:整数,已上升高度(开局必为 0,随上升增加)\n · bird:{ x, y, vy }(角色中心逻辑像素坐标与竖直速度,实时)\n · nextPlatform:{ x, y }(角色【正上方最近、应当跳上去】的那块平台中心逻辑像素;harness 据此左右移动接住,务必指向真正该踩的下一块)。\n harness 读 bird.x 与 nextPlatform.x 点屏左/右半把角色水平移到该平台下方接住、踩台上升。\n- 反馈(juice):弹跳 / 失败触发 getEngine().particles.spawnEmitter + getEngine().audio.synth.synthSfx。\n- 画面:深色背景铺满 390×844;角色 / 平台 / 文字亮色实心。",
|
||
"play_spec": {
|
||
"driver": { "type": "seek-x", "steps": 70, "stepMs": 120, "deadzone": 16 },
|
||
"expectedEngineCallPrefixes": ["particles.", "audio.synth"],
|
||
"assertAfterPlay": [
|
||
{ "path": "score", "op": "increased", "why": "适配性真玩(读 bird.x/nextPlatform.x 左右趋近接台)→高度分上升;落不住或计分语义错则不升" }
|
||
],
|
||
"expectLatch": true
|
||
}
|
||
}
|