games-development-ai/contracts/play-loop/acceptance-request-v3.schema.json
lili 87777975c7 feat(w-axis): R1 生成可信闸代码收口(actor/judge闭合+W-GOLD-LIVE+full_gate+三批闸门)
actor/judge prompt eval 闭合: actor 3.0.5 正文强化+baseline(7轮); judge 3.0.14 正文强化+anyTerms同义词补全+baseline(judge-a 13轮/judge-b 33轮); registry/checker 版本对齐+顺序锚点 fail-closed 双保险
W-GOLD-LIVE live_prompt: play-loop 契约开口(request/3+provenance/3+ReferenceAssetRecord/1+Registry/1+迁移清单15条); cheap_verify 切v3+消费对账六闸(只消费active)+生成prompt注入接线(0 active不注入); Node runner playtest-v3.cdp.cjs 升/3+绊线恢复; 真模型回归验向后兼容
full_gate+三批基线: full_gate.py 集成runner串六子门+降级+22测; baseline_gates.py fresh25阈值+historical11预期表(2 needs_human交创始人定标)+shadow20框架+38测
注: registry cheap-system 登记 1.8.0→1.8.1 同步此前在途 cheap-system.md frontmatter 升版(修 pre-commit 版本漂移); cheap_verify/cheap_studio/validate/test_acceptance_v3/test_cheap_service_driver 为在途M含本会话叠加+此前W-AXIS在途(同一线无法hunk分离); 3红测试根因与raw审计未入本提交
2026-07-25 18:47:47 -07:00

70 lines
4.1 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.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://wanxiang.ai/contracts/play-loop/acceptance-request-v3.schema.json",
"title": "AcceptanceRequestV3",
"description": "acceptance-request/3。在 acceptance-request/2 之上为 W-GOLD-LIVE 参照资产消费开口:新增三个可选字段 designRef / referenceAssetRecordIds / consumerRef全部不进 required旧 acceptance不带这三个字段在本 schema 下仍然 valid——v2 的 required 集合、repairOrdinal 的 if-then 修回约束、interactionBinding 嵌套规则与 canonical acceptanceRequestHash 口径一律不变。交互身份只允许嵌套 InteractionBinding/1 或显式 null。designRef/referenceAssetRecordIds 指向的持久记录定义见 reference-asset-record.schema.json金标 SoT §7消费者按 recordId 对账 role + consumerRef + artifactHash 后才能读取资产,未 active 的记录不得被消费为校准锚/生成范例/内容金标。",
"type": "object",
"required": [
"schemaVersion", "gameId", "briefHash", "genre", "templateRoute", "proofProfileId",
"proofRegistryVersion", "taskBindingHash", "interactionBinding", "sourceArtifactHash",
"parentAcceptanceRequestHash", "repairOrdinal"
],
"properties": {
"schemaVersion": { "const": "acceptance-request/3" },
"gameId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
"briefHash": { "$ref": "#/$defs/sha256" },
"genre": { "enum": ["narrative", "trpg", "heritage", "puzzle", "sim-business"] },
"templateRoute": { "type": "string", "pattern": "^_template-[a-z0-9-]+$" },
"proofProfileId": { "type": "string", "pattern": "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*$" },
"proofRegistryVersion": { "type": "string", "minLength": 1 },
"taskBindingHash": { "$ref": "#/$defs/sha256" },
"interactionBinding": {
"anyOf": [
{ "$ref": "interaction-binding.schema.json" },
{ "type": "null" }
]
},
"sourceArtifactHash": { "anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] },
"parentAcceptanceRequestHash": { "anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] },
"repairOrdinal": { "enum": [0, 1] },
"designRef": {
"description": "可选。本次 acceptance 所依据的已批准 designIntent 引用(持久记录 recordId 或设计文档 ref/路径,如金标 SoT §7.1《山海行纪》追认记录)。不带本字段等价于『未声明设计引用』,与 v2 行为一致。",
"anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }]
},
"referenceAssetRecordIds": {
"description": "可选。本次 acceptance 声明消费的参照资产 recordId 列表ReferenceAssetRecord/1.recordId。仅声明消费意图实际消费对账快照role + artifactHash落在 acceptance-provenance/3 的 consumedReferenceAssets。元素必须形如合法 recordId。",
"type": "array",
"items": { "$ref": "#/$defs/recordId" }
},
"consumerRef": {
"description": "可选。本次 acceptance 的消费者身份runner/profile、Actor/Judge/rubric 版本、prompt id@version 或内容评测版本),供参照资产注册表按 recordId 对账消费方。语义与 ReferenceAssetRecord/1.consumerRef 同源。",
"anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }]
}
},
"additionalProperties": false,
"allOf": [
{
"if": { "properties": { "repairOrdinal": { "const": 0 } }, "required": ["repairOrdinal"] },
"then": {
"properties": {
"sourceArtifactHash": { "type": "null" },
"parentAcceptanceRequestHash": { "type": "null" }
}
}
},
{
"if": { "properties": { "repairOrdinal": { "const": 1 } }, "required": ["repairOrdinal"] },
"then": {
"properties": {
"sourceArtifactHash": { "$ref": "#/$defs/sha256" },
"parentAcceptanceRequestHash": { "$ref": "#/$defs/sha256" }
}
}
}
],
"$defs": {
"sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
"recordId": { "type": "string", "pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$" }
}
}