{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://claridoc.local/schemas/brief.schema.json", "title": "ClariDoc document brief", "type": "object", "additionalProperties": false, "required": [ "title", "document_type", "audience", "reader_goal", "core_message", "scope" ], "properties": { "title": { "type": "string", "minLength": 1 }, "document_type": { "type": "string", "enum": [ "technical_blog", "readme", "tutorial", "how_to", "explanation", "reference", "troubleshooting", "design_doc" ] }, "language": { "type": "string", "minLength": 1, "default": "ko-KR" }, "audience": { "type": "object", "additionalProperties": false, "required": [ "roles" ], "properties": { "roles": { "$ref": "#/$defs/nonEmptyStringArray" }, "prior_knowledge": { "$ref": "#/$defs/stringArray" }, "needs": { "$ref": "#/$defs/stringArray" } } }, "reader_goal": { "type": "string", "minLength": 1 }, "core_message": { "type": "string", "minLength": 1 }, "scope": { "$ref": "#/$defs/nonEmptyStringArray" }, "non_scope": { "$ref": "#/$defs/stringArray" }, "prerequisites": { "$ref": "#/$defs/stringArray" }, "required_topics": { "$ref": "#/$defs/stringArray" }, "constraints": { "type": "object", "additionalProperties": false, "properties": { "target_words": { "type": "integer", "minimum": 200, "maximum": 30000, "default": 1600 }, "tone": { "type": "string", "minLength": 1, "default": "professional and direct" }, "version_context": { "type": "string" }, "max_heading_depth": { "type": "integer", "minimum": 2, "maximum": 6, "default": 3 }, "require_citations": { "type": "boolean", "default": true }, "allow_external_knowledge": { "type": "boolean", "default": false }, "citation_style": { "type": "string", "enum": [ "hidden", "footnote", "inline_link", "source_id" ], "default": "hidden" }, "date_policy": { "type": "string", "enum": [ "only_when_material", "always", "never" ], "default": "only_when_material" }, "style_profile": { "type": "string", "minLength": 1, "default": "auto" } } }, "forbidden_claims": { "$ref": "#/$defs/stringArray" }, "metadata": { "type": "object" } }, "$defs": { "stringArray": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }, "nonEmptyStringArray": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }, "uniqueItems": true } } }