{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://claridoc.local/schemas/outline.schema.json", "title": "ClariDoc outline contract", "type": "object", "additionalProperties": false, "required": [ "title", "document_type", "sections" ], "properties": { "title": { "type": "string", "minLength": 1 }, "document_type": { "type": "string", "enum": [ "technical_blog", "tutorial", "how_to", "explanation", "reference", "troubleshooting", "design_doc" ] }, "sections": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": [ "id", "intent", "title", "reader_question", "purpose" ], "properties": { "id": { "type": "string", "minLength": 1 }, "intent": { "type": "string", "minLength": 1 }, "title": { "type": "string", "minLength": 1 }, "reader_question": { "type": "string", "minLength": 1 }, "purpose": { "type": "string", "minLength": 1 }, "must_include": { "type": "array", "items": { "type": "string", "minLength": 1 } }, "evidence_ids": { "type": "array", "items": { "type": "string", "pattern": "^[A-Za-z0-9_-]+$" } }, "transition_to_next": { "type": "string" }, "decision_requirements": { "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "planning_notes": { "type": "array", "items": { "type": "string", "minLength": 1 } } } }