{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://zeroclaw.dev/schemas/deliverable.json", "title": "AgentDeliverable", "description": "Standard result envelope returned by a worker/lead agent. The caller (usually a lead or orchestrator) consumes this without re-parsing free-form chat.", "type": "object", "required": ["task_id", "agent", "status"], "additionalProperties": false, "properties": { "task_id": { "type": "string", "pattern": "^AOS-\\d+$" }, "agent": { "type": "string", "description": "Name of the agent that produced this deliverable." }, "status": { "enum": ["done", "blocked", "needs_review", "needs_approval", "failed"], "description": "done = complete and self-verified. needs_review = ready for reviewer/QA. needs_approval = paused at a human gate." }, "deliverables": { "type": "array", "description": "Concrete outputs — AOS IDs, file paths, URLs, or inline content.", "items": { "type": "object", "required": ["kind", "ref"], "additionalProperties": false, "properties": { "kind": { "enum": ["aos_record", "file", "url", "inline", "diff"] }, "ref": { "type": "string", "description": "AOS id, file path, URL, or inline content." }, "label": { "type": "string" } } } }, "open_questions": { "type": "array", "description": "Questions for the human or the orchestrator that block progress.", "items": { "type": "string" } }, "risks": { "type": "array", "description": "Anything the caller should know: assumptions made, fragile steps, compliance flags.", "items": { "type": "object", "required": ["description"], "additionalProperties": false, "properties": { "description": { "type": "string" }, "severity": { "enum": ["low", "medium", "high"] }, "mitigation": { "type": "string" } } } }, "cost": { "type": "object", "additionalProperties": false, "properties": { "tokens": { "type": "integer", "minimum": 0 }, "eur": { "type": "number", "minimum": 0, "description": "External spend (ads, API fees). 0 if none." } } }, "review_verdict": { "type": "object", "description": "Only set when this deliverable is a reviewer's verdict on another task.", "additionalProperties": false, "properties": { "reviewed_task_id": { "type": "string" }, "verdict": { "enum": ["approved", "changes_requested", "rejected"] }, "notes": { "type": "string" } } } } }