63 lines
1.9 KiB
JSON
63 lines
1.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "runtime-contract.schema.json",
|
|
"title": "technical-doc-flow runtime contract",
|
|
"type": "object",
|
|
"required": ["schema_version", "name", "agents", "artifacts", "supported_document_kinds", "supported_output_formats"],
|
|
"properties": {
|
|
"schema_version": {"const": "1.0"},
|
|
"name": {"const": "technical-doc-flow"},
|
|
"agents": {"type": "array", "minItems": 1, "items": {"type": "string", "minLength": 1}, "uniqueItems": true},
|
|
"artifacts": {
|
|
"type": "object",
|
|
"required": ["always", "light", "standard", "deep", "review_mode"],
|
|
"properties": {
|
|
"always": {"$ref": "#/$defs/artifactList"},
|
|
"light": {"$ref": "#/$defs/artifactList"},
|
|
"standard": {"$ref": "#/$defs/artifactList"},
|
|
"deep": {"$ref": "#/$defs/artifactList"},
|
|
"review_mode": {"$ref": "#/$defs/artifactList"}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"supported_document_kinds": {
|
|
"type": "array",
|
|
"items": {"enum": ["explanation", "decision", "how-to", "reference"]},
|
|
"minItems": 4,
|
|
"maxItems": 4,
|
|
"uniqueItems": true
|
|
},
|
|
"supported_output_formats": {
|
|
"type": "array",
|
|
"items": {"const": "markdown"},
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"$defs": {
|
|
"artifactList": {
|
|
"type": "array",
|
|
"items": {
|
|
"enum": [
|
|
"00_run.json",
|
|
"01_input.md",
|
|
"01_sources.json",
|
|
"02_reader_contract.json",
|
|
"03_evidence_map.json",
|
|
"04_logic_map.json",
|
|
"05_term_ledger.json",
|
|
"07_draft.md",
|
|
"08_logic_review.json",
|
|
"08_reader_review.json",
|
|
"08_lint.json",
|
|
"final.md",
|
|
"09_final_report.json"
|
|
]
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|