games-development-ai/contracts/play-loop/acceptance-provenance-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

93 lines
4.8 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/play-loop/acceptance-provenance-v3.schema.json",
"title": "AcceptanceProvenanceV3",
"description": "acceptance-provenance/3。逐字段镜像 acceptance-request/3含 v3 新增的可选 designRef / referenceAssetRecordIds / consumerRef并绑定完整 canonical request hash 与被测 artifact。新增可选消费溯源字段 consumedReferenceAssets本次 acceptance 实际消费的参照资产对账快照,每条为 recordId + role + artifactHash 三元组——对应金标 SoT §7『消费者按 recordId 对账 role + consumerRef + artifactHash 后才能读取资产』的溯源留痕;快照冻结消费时刻的 role 与 hash注册表后续改动不覆盖历史 provenance。所有 v3 新增字段均可选、不进 required旧 provenancev2 字段集)在本 schema 下仍然 validv2 的 required 集合与修回 if-then 约束不变。",
"type": "object",
"required": [
"schemaVersion", "gameId", "briefHash", "genre", "templateRoute", "proofProfileId",
"proofRegistryVersion", "taskBindingHash", "interactionBinding", "sourceArtifactHash",
"parentAcceptanceRequestHash", "repairOrdinal", "acceptanceRequestHash", "artifactHash"
],
"properties": {
"schemaVersion": { "const": "acceptance-provenance/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] },
"acceptanceRequestHash": { "$ref": "#/$defs/sha256" },
"artifactHash": { "$ref": "#/$defs/sha256" },
"designRef": {
"description": "可选,镜像 acceptance-request/3.designRef。",
"anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }]
},
"referenceAssetRecordIds": {
"description": "可选,镜像 acceptance-request/3.referenceAssetRecordIds声明消费的 recordId 列表)。",
"type": "array",
"items": { "$ref": "#/$defs/recordId" }
},
"consumerRef": {
"description": "可选,镜像 acceptance-request/3.consumerRef消费者身份。",
"anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }]
},
"consumedReferenceAssets": {
"description": "可选。本次 acceptance 实际消费的参照资产对账快照列表。每条冻结消费时刻的 recordId + role + artifactHash 三元组,使历史 provenance 不随注册表后续改动漂移;与请求侧 referenceAssetRecordIds 的区别:前者是声明,本字段是实际消费后的核验留痕。",
"type": "array",
"items": { "$ref": "#/$defs/consumedReferenceAsset" }
}
},
"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._-]*$" },
"consumedReferenceAsset": {
"type": "object",
"required": ["recordId", "role", "artifactHash"],
"properties": {
"recordId": { "$ref": "#/$defs/recordId" },
"role": {
"description": "消费时刻的角色快照,枚举与 ReferenceAssetRecord/1.role 一致。",
"enum": ["harness_fixture", "prompt_eval_gold", "generation_exemplar", "game_content_gold"]
},
"artifactHash": {
"description": "消费时刻核验的制品 hash 快照play-loop 惯例 64 位小写十六进制)。",
"$ref": "#/$defs/sha256"
}
},
"additionalProperties": false
}
}
}