{ "type": "object", "properties": { "brief": { "type": "object", "properties": { "what": { "type": "string" }, "why": { "type": "string" }, "who": { "type": "array", "items": { "type": "string" } }, "scope": { "type": "array", "items": { "type": "string" } }, "non_goals": { "type": "array", "items": { "type": "string" } }, "constraints": { "type": "array", "items": { "type": "string" } }, "assumptions": { "type": "array", "items": { "type": "string" } } }, "required": ["what", "why", "who", "scope", "non_goals", "constraints", "assumptions"], "additionalProperties": false }, "ready": { "type": "boolean", "description": "true when the request is clear and grounded enough to plan; false when you are raising questions" }, "questions": { "type": "array", "description": "open questions only the operator can resolve. Empty when ready is true.", "items": { "type": "object", "properties": { "prompt": { "type": "string", "description": "the question, in full" }, "options": { "type": "array", "items": { "type": "string" }, "description": "suggested answers when the answer is a choice among known alternatives" }, "multiSelect": { "type": "boolean", "description": "true if more than one option may apply (default false)" }, "header": { "type": "string", "description": "1-2 word label for the question (e.g. \"Scope\", \"Stack\", \"Endpoint\")" } }, "required": ["prompt"] } } }, "required": ["brief", "ready", "questions"], "additionalProperties": false }