Project record contracts¶
Authoritative source: skill/schemas/project-record-contracts.schema.json
Complete source¶
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.invalid/getdone/project-record-contracts.schema.json",
"title": "Project record contracts",
"type": "object",
"required": [
"schema_version",
"contract_version",
"records"
],
"properties": {
"schema_version": {
"const": 1
},
"contract_version": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
},
"records": {
"type": "object",
"minProperties": 1,
"additionalProperties": {
"$ref": "#/$defs/record"
}
}
},
"additionalProperties": false,
"$defs": {
"field": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"string",
"nullable-string",
"string-array",
"integer"
]
},
"pattern": {
"type": "string"
},
"item_pattern": {
"type": "string"
},
"minimum": {
"type": "integer"
}
},
"additionalProperties": false
},
"record": {
"type": "object",
"required": [
"templates",
"kind",
"authority",
"statuses",
"placeholder_statuses",
"required_frontmatter",
"headings",
"section_rules"
],
"properties": {
"templates": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"kind": {
"enum": [
"singleton",
"repeatable",
"register"
]
},
"authority": {
"type": "string",
"minLength": 1
},
"statuses": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"placeholder_statuses": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"required_frontmatter": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/field"
}
},
"headings": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"section_rules": {
"type": "object",
"additionalProperties": {
"enum": [
"text",
"bullet-list",
"ordered-list",
"code-block",
"criteria:NS",
"criteria:AC",
"criteria:EC",
"criteria:MC",
"table",
"roadmap",
"todo-register"
]
}
},
"completion_statuses": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"custom_validator": {
"enum": [
"roadmap",
"acceptance-report",
"register",
"todo-register",
"change-impact",
"evidence-manifest",
"invariant-register",
"execution-plan"
]
},
"table_headers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
},
"additionalProperties": false
}
}
}