51 lines
2.1 KiB
JSON
51 lines
2.1 KiB
JSON
{
|
|
"$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", "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}
|
|
}
|
|
},
|
|
"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}
|
|
}
|
|
}
|