- 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>
65 lines
4.0 KiB
JSON
65 lines
4.0 KiB
JSON
{
|
||
"$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 闭环工件契约①:GameDesign(HJ-AGENT-LOOP-EXEC-001 §6.2,评审版 HJ-AGENT-LOOP-REVIEW-001 §3.2 原文照落,owner=WS2)。独立策划 LLM(prompt:config.clicker-designer,fix 轮: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.3):runtime 今天只消费 config.target,title 经 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.2:resume 按 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-5:designIntent 或 theme 截 500)。",
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"maxLength": 100
|
||
},
|
||
"expectedPlaySeconds": {
|
||
"description": "预期单局时长(秒),正整数(评审版 §3.2:integer>0)。策划自报,供对抗评审校核(如 target 与时长矛盾属 P1「target 与意图矛盾」);不直接参与 §10 决策表判定。",
|
||
"type": "integer",
|
||
"exclusiveMinimum": 0
|
||
},
|
||
"config": {
|
||
"description": "模板玩法配置(GameConfig)。结构由对应模板 schema 约束(真源 gen_spike.py:44-81,C1 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" } } }
|
||
}
|
||
]
|
||
}
|