Skip to content

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
    }
  }
}