zizi c99014c243 test(aigc-3b-B): 派发面 e2e 真证安全面+全自动管线闭合(HMAC双向),P5 生成质量转 L1
3b-B e2e(mini-desktop 真跑·证据 wg1/gen-worker/evidence-3bB/):

 P0-P4 安全面+全自动管线=真证闭合(铁证 backend-callback-hmac.log + p4*.txt):
- HMAC 双向证:缺签名头→HTTP 401 / 错签(deadbeef≠482147b5)→HTTP 401 / 正签→过门(走到下游"任务不存在"非401)
  =关死 /dify/callback-internal 裸 @PermitAll 缺口
- 全自动派发链真通:执行器认领 taskId→dispatchGeneric 投 §6.1 job→worker 真生成(真烧模型)→
  HMAC 签名回调→验签通过→handleCallback 落库(gen-9303/9304/9305 三轮齐全)

 P5 一句话真生成=未达终局:三款全 nine_gate_failed。但截图(gen-9303-after-play.png)证生成
  真出 on-theme 可渲可动的「点击小怪物」游戏(Score/3s 倒计时/多彩怪物 monsters/targetScore=12),
  仅点击→计分坏(Score 仍 0)→九门确定性地板正确拦截「看着像但玩不了」=质量门正确履职、拒发不可玩。

判:L0 交付(管线+安全+质量门)已完成且证;缺=便宜模型把「点击命中→计分」写对=L1 生成域
  (prompt 点击坑+模型档+player/calibration,run_studio 自修 max_repairs 未救回)→转 L1 v3 迭代。

附带:serve-and-play.sh 跨平台 Chrome 探测(CHROME_BIN 覆盖>Linux /usr/bin>macOS>PATH 兜底,
  Linux 在前因 mini-desktop x86 是权威 e2e 机);p3bB_*.sql 发布四态/翻 feed 桩。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 16:20:28 +00:00

256 lines
7.6 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"game_id": "gen-9305",
"stage": "stage1",
"pass": false,
"repairs": 5,
"player_rounds_used": 0,
"design_text": "## 设计稿Simon Says记忆序列\n\n**1. 核心机制** \n电脑随机生成一组颜色序列并逐个闪烁提示玩家需按相同顺序点击对应彩色按钮。每轮正确复现后序列长度 +1进入下一关。错误点击则游戏结束。\n\n**2. 胜负条件** \n- 胜:完成当前关(全部正确点击)→ 进入下一关(序列加长),无最终胜利,分数无限递增。 \n- 负:点击顺序与电脑序列不匹配 → 立即 gameover失败态驻留界面分数固定。\n\n**3. 操作** \n触摸点击按钮逻辑像素 390×844 竖屏)。按钮为 4 个等大圆形,均匀分布在屏幕下半区(半径约 60间距 30分别渲染红/绿/蓝/黄色。\n\n**4. 关键数值** \n- 初始序列长度3 \n- 每次提示单个按钮闪烁时间0.5s,间隔 0.2s \n- 玩家点击超时容限:无(不设倒计时,未点击不算错,但不推进) \n- 难度梯度:每关序列长度 +1连续正确累加最大 20+\n\n**5. Juice 反馈** \n- 提示阶段:按钮高亮 + 同时播放对应短促音高C/E/G/B4 \n- 玩家点击正确:按钮瞬间放大 1.1 倍 + 点击音效(短嘀声) \n- 点击错误:屏幕震动 0.1s + 低沉错误音(引擎必备)\n\n**6. 画面要点** \n- 背景:纯黑色,#000000 \n- 按钮圆形,描边白色、半径 60填充分别#FF4136, #2ECC40, #0074D9, #FFDC00 \n- HUD顶部居中显示当前关卡数\"Level 5\" 白色 24pt 字体),左下显示最高分(当前连续关卡数)\n\n**7. 可观测进展** \n- 每关正确完成 → 右上角分数(关卡数)+1 → 序列长度 +1下次提示变长 \n- 失败瞬时phase 从 \"playing\" → \"lose\",分数冻结,按钮变灰不可点击 \n- 进度量化:玩家每次点击后 `remaining` = 当前关剩余待点击步骤数(初始 = 序列长度,点击正确递减)\n\n```gatespec\n{\n \"exportState\": [\"phase\",\"score\",\"sequenceLength\",\"remaining\",\"userStep\"],\n \"driver\": {\"type\":\"none\"},\n \"controlCheck\": null,\n \"assertAfterPlay\": [\n {\"path\":\"score\",\"op\":\"increased\",\"why\":\"正确复现后关卡数上升\"}\n ],\n \"expectLatch\": true\n}\n```",
"gatespec": {
"exportState": [
"phase",
"score",
"sequenceLength",
"remaining",
"userStep"
],
"driver": {
"type": "none"
},
"controlCheck": null,
"assertAfterPlay": [
{
"path": "score",
"op": "increased",
"why": "正确复现后关卡数上升"
}
],
"expectLatch": true
},
"attempts": [
{
"attempt": 0,
"role": "code",
"model": "deepseek-v4-flash",
"stage_fail": "validate",
"usage": {
"in": 4136,
"out": 5211
},
"errors": [
"违禁:禁 Math.random用 ctx.random"
]
},
{
"attempt": 1,
"role": "fix",
"model": "deepseek-v4-flash",
"stage_fail": "seven_gate",
"usage": {
"in": 4181,
"out": 5627
},
"seven_gate_pass": false,
"guards": {
"A_boot": true,
"C_frame": true,
"I_control": true,
"D_render": true,
"E_live": false,
"B_uncaught": true,
"F_wiring": false,
"G_input": false,
"H_progress": false
}
},
{
"attempt": 2,
"role": "fix",
"model": "deepseek-v4-flash",
"stage_fail": "seven_gate",
"usage": {
"in": 4337,
"out": 9020
},
"seven_gate_pass": false,
"guards": {
"A_boot": true,
"C_frame": true,
"I_control": true,
"D_render": true,
"E_live": true,
"B_uncaught": true,
"F_wiring": true,
"G_input": true,
"H_progress": false
}
},
{
"attempt": 3,
"role": "fix",
"model": "deepseek-v4-flash",
"stage_fail": "validate",
"usage": {
"in": 4264,
"out": 5089
},
"errors": [
"违禁:禁 Math.random用 ctx.random"
]
},
{
"attempt": 4,
"role": "fix",
"model": "deepseek-v4-flash",
"stage_fail": "seven_gate",
"usage": {
"in": 4181,
"out": 7544
},
"seven_gate_pass": false,
"guards": {
"A_boot": true,
"C_frame": true,
"I_control": true,
"D_render": true,
"E_live": true,
"B_uncaught": true,
"F_wiring": true,
"G_input": true,
"H_progress": false
}
},
{
"attempt": 5,
"role": "fix",
"model": "deepseek-v4-flash",
"stage_fail": "validate",
"usage": {
"in": 4264,
"out": 4875
},
"errors": [
"违禁:禁 Math.random用 ctx.random"
]
}
],
"seven_gate_verdict": {
"gameId": "gen-9305",
"url": "http://localhost:4320/games/_wg1-gen/gen-9305/index.html",
"ts": null,
"guards": {
"A_boot": {
"pass": true
},
"C_frame": {
"pass": true,
"f0": 60,
"f1": 90,
"delta": 30
},
"I_control": {
"pass": true,
"skipped": "未声明 controlCheck向后兼容"
},
"D_render": {
"pass": true,
"bright": 117266,
"maxCh": 255
},
"E_live": {
"pass": true,
"distinctStates": 62,
"samples": 62
},
"B_uncaught": {
"pass": true,
"uncaught": []
},
"F_wiring": {
"pass": true,
"callCount": 4,
"sample": [
"particles.spawnEmitter",
"audio.synth.synthSfx",
"audio.synth.synthSfx",
"audio.synth.synthSfx"
],
"expected": []
},
"G_input": {
"pass": true,
"inputHash": "ce332c9b",
"controlHash": "10545f53",
"atFrame": 1664,
"ctrlFrame": -1
},
"H_progress": {
"pass": false,
"checks": [
{
"path": "score",
"op": "increased",
"before": 0,
"after": 0,
"pass": false,
"why": "正确复现后关卡数上升"
}
],
"latch": {
"pass": false,
"reason": "真玩未到达 gameover 终态(终态不可达/无失败态/play-spec 未驱动到结束)",
"phaseNow": "playing"
},
"state0": {
"phase": "playing",
"score": 0,
"remaining": 3,
"progress": null,
"gameoverReason": "",
"sequenceLength": 3,
"userStep": 0
},
"state1": {
"phase": "playing",
"score": 0,
"remaining": 3,
"progress": null,
"gameoverReason": "",
"sequenceLength": 3,
"userStep": 0
}
}
},
"pass": false,
"notes": []
},
"player": null,
"tokens": {
"prompt": 26081,
"completion": 38590
},
"tokens_by_model": {
"deepseek-v4-flash": [
26081,
38590
]
},
"cost": {
"by_model": {
"deepseek-v4-flash": {
"in": 26081,
"out": 38590,
"rmb": 0.08201
}
},
"total_rmb": 0.08201,
"gate_rmb": 0.15
},
"wall_s": 564.2,
"models": {
"design": "deepseek-v4-flash",
"code": "deepseek-v4-flash",
"fix": "deepseek-v4-flash",
"player_vision": "MiniMax-M3",
"player_text": "deepseek-v4-flash"
}
}