games-development-ai/contracts/agent-loop/game-design.schema.json
zizi 208a36ee6c feat(agent-loop): v1 全闭环建设波收口 — D1-D5 五件交付 + 双spec + 种子/烟测产物
- D1: Registry 3 prompt(策划/对抗/fix)+eval 骨架+registry 注册
- D2: agent-loop 2 schema + 4 模板 schema(对齐 gen_spike 真源, additionalProperties:false)
- D3: 编排器+裁决引擎(judge D1-D10 决策表/账本幂等重放/预算闸熔断/eval 回流/批报告), 59 单测绿(mini-desktop)
- D5: 玩家 CDP 取证 player_cdp.py(真点击/蛇形→驼峰映射/demo 三信号/三角合成判定), 9001 自测 PASS
- (D4 后端件已在 9bf3d54 先行入库, 三条 mvn 两轮独立实跑全绿)
- spec: 评审版(已拍板)+execution 版(已审定+建设期补充裁决 D4-a~d/D5-a~c/D2-a/D3-a)
- W2 试点/种子 9003-9008/B4 四链路烟测 产物与总账/作战清单同步
- eval 种子: C1 spike 52 条转入 config.clicker-designer(inputs 52/labels 13)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 06:24:43 +08:00

65 lines
4.0 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.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://wanxiang.ai/contracts/agent-loop/game-design.schema.json",
"title": "GameDesign",
"description": "agent 化生成 QA 闭环工件契约①GameDesignHJ-AGENT-LOOP-EXEC-001 §6.2,评审版 HJ-AGENT-LOOP-REVIEW-001 §3.2 原文照落owner=WS2。独立策划 LLMpromptconfig.clicker-designerfix 轮fix.design-revise产出 designIntent/expectedPlaySeconds/config 三段,外层 designId/idea/templateId/round 由编排器 run_batch.py 补齐成完整工件。消费方:对抗评审 prompt 输入、裁决引擎 judge.py 的 schema 门E1、回调组包 meta 来源§8.4、JSONL 账本与 eval 回流§7.7快照对象。诚实边界§6.3runtime 今天只消费 config.targettitle 经 meta 上 feed 卡片theme/scoreLabel v1 仅文本评审面。",
"type": "object",
"required": ["designId", "idea", "templateId", "designIntent", "expectedPlaySeconds", "config", "round"],
"additionalProperties": false,
"properties": {
"designId": {
"description": "设计唯一 ID = sha256(idea+templateId+round) 的 64 位小写 hex评审版 §3.2 原文。编排器账本的幂等重放键§7.2resume 按 designId 断点续跑,已有 verdict 的整体跳过)。",
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"idea": {
"description": "创意原文ideas/batch-001.txt 中一行),非空字符串。",
"type": "string",
"minLength": 1
},
"templateId": {
"description": "玩法模板 ID四选一。须与 config.templateId 自洽——顶层 allOf 按本字段条件绑定对应模板 schema。v1 仅 clicker 走全闭环dodge/runner/match 仅契约落盘不跑批§1.2)。",
"type": "string",
"enum": ["clicker", "dodge", "runner", "match"]
},
"designIntent": {
"description": "设计意图≤100 字(评审版 §3.2 原文)。供对抗评审判题文一致性;回调组包时作 GamePackage.meta.summary 来源之一§8.4-5designIntent 或 theme 截 500。",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"expectedPlaySeconds": {
"description": "预期单局时长(秒),正整数(评审版 §3.2integer>0。策划自报供对抗评审校核如 target 与时长矛盾属 P1「target 与意图矛盾」);不直接参与 §10 决策表判定。",
"type": "integer",
"exclusiveMinimum": 0
},
"config": {
"description": "模板玩法配置GameConfig。结构由对应模板 schema 约束(真源 gen_spike.py:44-81C1 52/52 已验口径):顶层 allOf 按 templateId 条件 $ref 绑定 ../templates/{clicker,dodge,runner,match}.schema.json含 additionalProperties:false 与全字段 required。",
"type": "object"
},
"round": {
"description": "回炉计数0=首轮1=回炉轮§10.1 总则schema 重出与 P1-fix 共享全流程唯一 1 轮回炉额度round=1 后任何不满足 accept 的分支不再回炉)。注意 designId 哈希因子含 round。",
"type": "integer",
"enum": [0, 1]
}
},
"allOf": [
{
"if": { "properties": { "templateId": { "const": "clicker" } }, "required": ["templateId"] },
"then": { "properties": { "config": { "$ref": "../templates/clicker.schema.json" } } }
},
{
"if": { "properties": { "templateId": { "const": "dodge" } }, "required": ["templateId"] },
"then": { "properties": { "config": { "$ref": "../templates/dodge.schema.json" } } }
},
{
"if": { "properties": { "templateId": { "const": "runner" } }, "required": ["templateId"] },
"then": { "properties": { "config": { "$ref": "../templates/runner.schema.json" } } }
},
{
"if": { "properties": { "templateId": { "const": "match" } }, "required": ["templateId"] },
"then": { "properties": { "config": { "$ref": "../templates/match.schema.json" } } }
}
]
}