{ "type": "object", "properties": { "summary": { "type": "string" }, "criteria": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "id": { "type": "string" }, "statement": { "type": "string" }, "part": { "type": "string" }, "verified_by": { "type": "string", "description": "one of: gate, reviewer" }, "covers": { "type": "array", "items": { "type": "integer" }, "description": "0-based indexes into the discovery brief's scope[] that this criterion proves. Every scope index must appear in at least one criterion or the scope-coverage gate fails the stage." } }, "required": ["id", "statement", "part", "verified_by", "covers"], "additionalProperties": false } }, "out_of_scope": { "type": "array", "items": { "type": "string" } } }, "required": ["summary", "criteria", "out_of_scope"], "additionalProperties": false }