lili a205929f15 feat(wg1-gen): L1 对齐官方 latch 壳 + 确定性手感门 + player 校准(founder 锚揭天花板)
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>
2026-06-14 04:58:25 -07:00

163 lines
6.9 KiB
JSON
Raw 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.

{
"stage": "stage1",
"n_samples": 4,
"anchor_note": "权威锚=创始人亲玩(2026-06-14)。原话:A 物理最好;B 第二;C 碰撞有明显问题;D 滑块每次点击只走一格、不符合玩家习惯。fun/verdict 由我把定性排序转成数值(创始人可再覆盖)。**重大发现:创始人排序推翻了我的自动判定**——我曾把 B(v2)判 objective-hollow、C(pro)判 best,均与亲玩相反。",
"rows": [
{
"game_id": "breakout-flash-v3",
"class": "good",
"human": {
"fun": 4,
"verdict": "pass",
"note": "创始人:物理最好(第1)。[原我标 basic=3,低估]",
"anchor": "founder"
},
"vision": {
"completeness": 4,
"fun": 4,
"problems": [
"球起始位置在挡板正上方且初速向下时可能首帧直接掉出(边界条件虽通过测试,但首帧球贴在挡板附近略感不自然)",
"砖块击碎反馈在截图中无法直接看到粒子(静态截图局限),但 F_wiring 显示粒子与音效调用正常"
],
"verdict": "pass",
"note": "经典打砖块实现到位:砖块网格、球反弹、挡板插值跟随、剩余砖数与分数实时变化(30→29、0→1),H_progress 门验证了核心机制真在跑,F_wiring 确认粒子+音效反馈真触发,E_live 15个不同状态说明动画与交互活跃——是款完整可玩、有反馈的休闲小品。"
},
"text": {
"completeness": 5,
"fun": 4,
"problems": [],
"verdict": "pass",
"note": "经典打砖块,所有七门取证通过,核心循环完整且反馈到位,有实际进展和可玩性。"
}
},
{
"game_id": "breakout-pro",
"class": "good",
"human": {
"fun": 2,
"verdict": "fix",
"note": "创始人:碰撞有明显问题。[原我+player 标 best=4,假阳性]",
"anchor": "founder"
},
"vision": {
"completeness": 4,
"fun": 4,
"problems": [
"球在 after-play 中已落至挡板下方区域,可能存在穿透或漏判失败态的风险(球y位置约1400-垫子y约1700之间仍有空间,但需确认未漏detect death)",
"部分橙色砖仍保留(剩余18)说明多次命中机制在工作,但after-play里球已经明显落在挡板下方飞,若该帧是终态前一刻则需验证 phase='gameover' 驻留契约",
"首帧砖块整齐6×7布局 vs 玩后砖块被削去一大块,进度真实(15分对应15块),核心循环成立",
"深色背景+亮色实心图形满足规格,无明显视觉缺陷"
],
"verdict": "pass",
"note": "经典打砖块,核心循环、粒子+音效反馈、多次命中变色、挡板角度反弹都到位,真进展,手感扎实。"
},
"text": {
"completeness": 5,
"fun": 4,
"problems": [],
"verdict": "pass",
"note": "经典打砖块实现完整,粒子与音效反馈到位,操作流畅,胜负态明确,符合终态契约。"
}
},
{
"game_id": "breakout-flash-v2",
"class": "good",
"human": {
"fun": 3,
"verdict": "pass",
"note": "创始人:第2、能玩。[原我标 objective-hollow=1,假阴性——盲打脚本没打到砖→误判空心]",
"anchor": "founder"
},
"vision": {
"completeness": 2,
"fun": 2,
"problems": [
"H_progress 门未过:phase 始终为 booting,未按契约暴露 playing/gameover 状态",
"终态契约未实现:球掉底应驻留 gameover 并显示 GAME OVER + 重玩提示,实际没有",
"掉球后 phase 未切换,宿主轮询会漏判结束",
"可玩回合太短:一次入场只打到 +1 分球就掉,体验未闭环"
],
"verdict": "fix",
"note": "砖块消除/粒子/音效/挡板移动都跑起来了,但终态契约完全没接——phase 锁在 booting,球掉底不切 gameover 不驻留,红线违规,必须修。"
},
"text": {
"completeness": 1,
"fun": 1,
"problems": [
"H_progress 未过,游戏未从 booting 切换到 playing 状态,核心循环未启动",
"无任何游戏进展证据(分数、砖块、球运动等均为零)",
"玩家无法操作或看到实质游戏内容,属于空心游戏"
],
"verdict": "fix",
"note": "运行数据表明游戏卡在 booting 状态,未进入 playing 阶段,无法进行任何游玩,必须修复状态机转换及可观测状态导出。"
}
},
{
"game_id": "breakout-m27",
"class": "fix-control",
"human": {
"fun": 2,
"verdict": "fix",
"note": "创始人:滑块每次点击只走一格、不跟手(控制 bug,不符玩家习惯)",
"anchor": "founder"
},
"vision": {
"completeness": 3,
"fun": 2,
"problems": [
"玩后截图 vs 首帧:Score 仍为 0、Bricks 仍为 24,球位置从右下移到左中但未撞击任何砖块/挡板/墙,无视觉反馈",
"玩后砖块多出一行绿色(首帧 4 行红+橙,玩后 5 行红+橙+绿),首尾帧之间砖块数量/布局不一致,疑似关卡布局不稳定或随机化错误",
"F_wiring 显示 487 次 synthSfx 调用,但 24 块砖一块没碎、0 分,音效调用与游戏事件严重脱钩(可能每帧 spam)",
"缺少明显粒子/数字跳动/消除反馈,无 GAME OVER/YOU WIN 终态截图证据",
"玩家全程只能看到一颗球在空荡中线附近漂,无爽点无反馈,体验空洞"
],
"verdict": "fix",
"note": "砖块未消除、分数零变化、玩后布局突变,核心循环虽存在但玩家视角下无进展,判定空心游戏待修。"
},
"text": {
"completeness": 4,
"fun": 4,
"problems": [
"终态phase驻留未在数据中直接验证,但七门通过暗示实现;缺少多次击中砖块的颜色变化证据"
],
"verdict": "pass",
"note": "游戏核心循环完整,有音效和粒子反馈,进度可感知,手感良好,基本符合Breakout玩法。"
}
}
],
"metrics": {
"vision": {
"model": "MiniMax-M3",
"fun_mae": 0.75,
"verdict_match": "2/4",
"hollow_rejected": "0/0",
"hollow_false_green": "0/0",
"good_accepted": "2/3",
"gatekeeper_ok": false
},
"text": {
"model": "deepseek-v4-flash",
"fun_mae": 1.5,
"verdict_match": "1/4",
"hollow_rejected": "0/0",
"hollow_false_green": "0/0",
"good_accepted": "2/3",
"gatekeeper_ok": false
}
},
"cost": {
"by_model": {
"MiniMax-M3": {
"in": 18939,
"out": 1193,
"rmb": 0.10385
},
"deepseek-v4-flash": {
"in": 4810,
"out": 1882,
"rmb": 0.0071
}
},
"total_rmb": 0.11095
}
}