lili a207cb8d65
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
docs(agents): skill 规范化双层收口 + 席位context skill 新增 + W-NSTAR/W-TPL/W-GENLOG 设计波落档
- .agents/skills 25 件全量 frontmatter 规范化与评审修入(含 prompt-governance 大修);.claude/skills 7 件薄壳按双层方案①落位
- 新增 skill:agentic-seat-context-design(agentic 席位与 context 工程设计基线,2026-07-05 探索蒸馏)
- 设计波三件落档:复杂游戏北极星件(W-NSTAR 终审稿待拍)/黄金模板规格件(W-TPL 定稿待批)/生成侧过程蒸馏回路(W-GENLOG 骨架)
- protocol/在飞板/作战清单/数据飞轮 SoT/契约 prompts 索引同步;breakout 九门证据刷新
- .gitignore 补 /localagents.md 真实忽略行(该文件自声明绝不提交,此前声明未被机器执行)
- 刻意不入库:nacos-data/ 与 _tier2-gen、c2v-*、amgen-* 生成产物(可重生成,忽略行格式待拍)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 05:32:56 -07:00

197 lines
4.8 KiB
JSON

{
"gameId": "breakout",
"url": "http://localhost:4320/games/_wg1-gen/breakout/index.html",
"ts": null,
"guards": {
"A_boot": {
"pass": true
},
"C_frame": {
"pass": true,
"f0": 58,
"f1": 89,
"delta": 31
},
"I_control": {
"pass": true,
"paddlePath": "paddle.x",
"results": [
{
"tapX": 50,
"before": 195,
"after": 50.0000000000465,
"moved": -144.9999999999535,
"distToTarget": 4.6497916628140956e-11,
"pass": true
},
{
"tapX": 340,
"before": 50.0000000000465,
"after": 338.0622981535271,
"moved": 288.0622981534806,
"distToTarget": 1.937701846472919,
"pass": true
}
]
},
"D_render": {
"pass": true,
"bright": 154283,
"maxCh": 255
},
"E_live": {
"pass": true,
"distinctStates": 23,
"samples": 23
},
"B_uncaught": {
"pass": true,
"uncaught": []
},
"F_wiring": {
"pass": true,
"callCount": 21,
"sample": [
"particles.spawnEmitter",
"audio.synth.synthSfx",
"particles.spawnEmitter",
"audio.synth.synthSfx",
"audio.synth.synthSfx",
"particles.spawnEmitter",
"audio.synth.synthSfx",
"particles.spawnEmitter",
"audio.synth.synthSfx",
"particles.spawnEmitter",
"audio.synth.synthSfx",
"audio.synth.synthSfx"
],
"expected": [
"particles.",
"audio.synth"
]
},
"G_input": {
"pass": true,
"inputHash": "e1907e50",
"controlHash": "9f4addb3",
"atFrame": 816,
"ctrlFrame": 820
},
"H_progress": {
"pass": true,
"checks": [
{
"path": "remaining",
"op": "decreased",
"before": 30,
"after": 29,
"pass": true,
"why": "适配性真玩(挡板自动接球)下击碎砖块→剩余下降;接不住/碰撞失效则不降"
}
],
"latch": {
"pass": true,
"dwelledMs": 600,
"after": "gameover",
"reason": ""
},
"state0": {
"phase": "playing",
"score": 0,
"remaining": 30,
"progress": 0,
"gameoverReason": "",
"ball": {
"x": 379.66701339285197,
"y": 489.07568696625253,
"vx": -199.9791964288825,
"vy": -311.3010134831855
},
"paddle": {
"x": 195,
"y": 810,
"w": 70
}
},
"state1": {
"phase": "gameover",
"score": 1,
"remaining": 29,
"progress": 0.033333333333333326,
"gameoverReason": "ball_lost",
"ball": {
"x": 146.30569972331975,
"y": 838.7991318744353,
"vx": 253.283090406036,
"vy": 269.71777122460395
},
"paddle": {
"x": 89.5866584777832,
"y": 810,
"w": 70
}
}
}
},
"pass": true,
"notes": [],
"firstPlay": {
"enabled": true,
"categoryDerived": "skill",
"playableMs": 46,
"playableThresholdMs": 2000,
"warmupMs": 640,
"firstFeedback": true,
"firstMove": {
"kind": "tap",
"x": 308.321544643033,
"y": 800
},
"notes": [
"playableMs=预热后 warm 稳态,不覆盖 bundle 首加载退化;warmupMs 记冷启;真机 first-load 阈值校准留 staging(P2)。本门 v0 守得住卡死/装载失败退化,守不住大 bundle/慢首加载退化。",
"首反馈[真判] 动画自走类 A/B(control-body-moved)@f84:控制体paddle.x Δ=145(>moveMin25?) → 输入因果成立(控制体被点动/状态变/信号显著),非「球本就在动」的重言式"
],
"playableOk": true,
"playableScope": "warm",
"firstFeedbackDetail": {
"method": "AB-signal-noise",
"category": "skill",
"clean": true,
"feedback": true,
"reason": "control-body-moved",
"noise": 369,
"signal": 10668,
"ctrlDelta": 144.99999853684997,
"ctrlPath": "paddle.x",
"ctrlA": 195,
"ctrlB": 50.00000146315002,
"moveMin": 25,
"stateChanged": false,
"bMove": {
"kind": "tap",
"x": 50,
"y": 800,
"repeat": 6
},
"signalRatio": 3,
"minSignal": 200,
"noiseCeiling": 6000,
"target": 84,
"frameA": 84,
"frameAp": 84,
"frameB": 106,
"fbFrames": 9,
"bootFrameA": 48,
"bootFrameAp": 48,
"bootFrameB": 48,
"phaseA": "playing",
"phaseB": "playing",
"remainingA": 30,
"remainingB": 30
},
"coreLoopReached": true,
"coreLoopElapsedMs": 23790,
"coreLoopThresholdMs": 60000,
"pass": true
}
}