init: document-haness 하네스 설계
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"$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}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"$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"}
|
||||
}
|
||||
}
|
||||
},
|
||||
"planning_notes": {"type": "array", "items": {"type": "string", "minLength": 1}}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://claridoc.local/schemas/pipeline.schema.json",
|
||||
"title": "ClariDoc pipeline configuration",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"planner": {
|
||||
"$ref": "#/$defs/provider"
|
||||
},
|
||||
"writer": {
|
||||
"$ref": "#/$defs/provider"
|
||||
},
|
||||
"reviewers": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"role",
|
||||
"provider"
|
||||
],
|
||||
"properties": {
|
||||
"role": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"provider": {
|
||||
"$ref": "#/$defs/providerName"
|
||||
},
|
||||
"model": {
|
||||
"type": "string"
|
||||
},
|
||||
"timeout_seconds": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"default": 300
|
||||
},
|
||||
"options": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"reviser": {
|
||||
"$ref": "#/$defs/provider"
|
||||
},
|
||||
"quality_gate": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"minimum_score": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100,
|
||||
"default": 82
|
||||
},
|
||||
"max_blockers": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"default": 0
|
||||
},
|
||||
"max_errors": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"default": 2
|
||||
},
|
||||
"max_revisions": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"default": 2
|
||||
},
|
||||
"deterministic_weight": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1,
|
||||
"default": 0.4
|
||||
},
|
||||
"model_weight": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1,
|
||||
"default": 0.6
|
||||
}
|
||||
}
|
||||
},
|
||||
"fail_on_reviewer_error": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"providerName": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"mock",
|
||||
"codex",
|
||||
"claude",
|
||||
"antigravity"
|
||||
]
|
||||
},
|
||||
"provider": {
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/$defs/providerName"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider"
|
||||
],
|
||||
"properties": {
|
||||
"provider": {
|
||||
"$ref": "#/$defs/providerName"
|
||||
},
|
||||
"model": {
|
||||
"type": "string"
|
||||
},
|
||||
"timeout_seconds": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"default": 300
|
||||
},
|
||||
"options": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"planner",
|
||||
"writer",
|
||||
"reviewers",
|
||||
"reviser"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://claridoc.local/schemas/review.schema.json",
|
||||
"title": "ClariDoc model review response",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"score",
|
||||
"dimension_scores",
|
||||
"issues",
|
||||
"strengths",
|
||||
"questions"
|
||||
],
|
||||
"properties": {
|
||||
"score": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"dimension_scores": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"reader_goal_alignment",
|
||||
"information_architecture",
|
||||
"logical_flow",
|
||||
"cognitive_load",
|
||||
"evidence_traceability",
|
||||
"example_verifiability",
|
||||
"scannability",
|
||||
"operational_safety",
|
||||
"completeness_and_limits"
|
||||
],
|
||||
"properties": {
|
||||
"reader_goal_alignment": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"information_architecture": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"logical_flow": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"cognitive_load": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"evidence_traceability": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"example_verifiability": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"scannability": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"operational_safety": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"completeness_and_limits": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
"issues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"section",
|
||||
"problem",
|
||||
"why_it_matters",
|
||||
"fix",
|
||||
"severity"
|
||||
],
|
||||
"properties": {
|
||||
"section": {
|
||||
"type": "string"
|
||||
},
|
||||
"problem": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"why_it_matters": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"fix": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"severity": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"blocker",
|
||||
"error",
|
||||
"warning",
|
||||
"info"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"strengths": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"questions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://claridoc.local/schemas/source-pack.schema.json",
|
||||
"title": "ClariDoc source pack",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["sources"],
|
||||
"properties": {
|
||||
"sources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "title", "url"],
|
||||
"properties": {
|
||||
"id": {"type": "string", "pattern": "^[A-Za-z0-9_-]+$", "minLength": 1},
|
||||
"title": {"type": "string", "minLength": 1},
|
||||
"url": {"type": "string", "minLength": 1},
|
||||
"publisher": {"type": "string"},
|
||||
"accessed": {"type": "string"},
|
||||
"facts": {"type": "array", "items": {"type": "string", "minLength": 1}},
|
||||
"notes": {"type": "string"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user