All contracts

Workspace Intelligence / JSON Schema

Workspai Doctor Validation Report

Defines the versioned doctor validation v1 boundary used by Workspai and its consumers.

Schema version
workspai.doctor-validation.v1
Contract path
contracts/workspace-intelligence/doctor-validation.v1.json
Publication
json-schema
Defined fields
35
Artifact bindings
1

Why this contract exists

Architecture role

Carries structured evidence, findings, and verdicts across governance boundaries.

Consumption boundary

  • Workspai CLI
  • CI and release automation
  • Developers

Related commands

Commands are linked only when the runtime contract identifies a direct production relationship. Supporting contracts may be consumed without having a single producer command.

Produced artifacts

These durable files are emitted by registered commands and validated against this contract.

Artifact pathSchemaProducer
.workspai/reports/doctor-validation-last-run.jsonworkspai.doctor-validation.v1
workspai doctor capabilities --validate --write

Field reference

Every declared schema property or published capability path is listed here. Required means the contract declares or publishes that field at the shown boundary.

Field pathTypeRequiredMeaningConstraints
$defs.actualOutcome.diagnosisStateenumNoDefines the diagnosisstate value at this contract boundary.enum: confirmed, candidate, unknown
$defs.actualOutcome.domainreferenceNoDefines the domain value at this contract boundary.ref: #/$defs/domain
$defs.actualOutcome.findingbooleanYesDefines the finding value at this contract boundary.
$defs.actualOutcome.repairDispositionenumNoDefines the repairdisposition value at this contract boundary.enum: automatic, approval-required, manual, unavailable
$defs.actualOutcome.statusenumNoDefines the status value at this contract boundary.enum: blocking, advisory
$defs.outcome.diagnosisStateenumNoDefines the diagnosisstate value at this contract boundary.enum: confirmed, candidate, unknown
$defs.outcome.domainreferenceNoDefines the domain value at this contract boundary.ref: #/$defs/domain
$defs.outcome.findingbooleanYesDefines the finding value at this contract boundary.
$defs.outcome.repairDispositionenumNoDefines the repairdisposition value at this contract boundary.enum: automatic, approval-required, manual, unavailable
$defs.outcome.statusenumNoDefines the status value at this contract boundary.enum: blocking, advisory
capabilityRegistryVersionstringYesDefines the capabilityregistryversion value at this contract boundary.const: "universal-doctor-capabilities-v1"
casesarrayYesDefines the cases value at this contract boundary.minItems: 1
cases[].actualreferenceYesDefines the actual value at this contract boundary.ref: #/$defs/actualOutcome
cases[].expectedreferenceYesDefines the expected value at this contract boundary.ref: #/$defs/outcome
cases[].failuresarrayYesDefines the failures value at this contract boundary.
cases[].idstringYesDefines the id value at this contract boundary.minLength: 1
cases[].passedbooleanYesDefines the passed value at this contract boundary.
corpusVersionstringYesDefines the corpusversion value at this contract boundary.const: "doctor-disease-corpus-v1"
limitationsarrayYesDefines the limitations value at this contract boundary.minItems: 1
schemaVersionstringYesDefines the schemaversion value at this contract boundary.const: "workspai.doctor-validation.v1"
scopestringYesDefines the scope value at this contract boundary.const: "synthetic-contract-corpus"
summaryobjectYesDefines the summary value at this contract boundary.additionalProperties: false
summary.declaredPlatformsintegerYesDefines the declaredplatforms value at this contract boundary.minimum: 1
summary.domainCoveragenumberYesDefines the domaincoverage value at this contract boundary.minimum: 0 · maximum: 1
summary.failedCasesintegerYesDefines the failedcases value at this contract boundary.minimum: 0
summary.falseNegativesintegerYesDefines the falsenegatives value at this contract boundary.minimum: 0
summary.falsePositivesintegerYesDefines the falsepositives value at this contract boundary.minimum: 0
summary.passedCasesintegerYesDefines the passedcases value at this contract boundary.minimum: 0
summary.precisionnumberYesDefines the precision value at this contract boundary.minimum: 0 · maximum: 1
summary.recallnumberYesDefines the recall value at this contract boundary.minimum: 0 · maximum: 1
summary.runtimeAdapterCoveragenumberYesDefines the runtimeadaptercoverage value at this contract boundary.minimum: 0 · maximum: 1
summary.runtimeAdaptersExercisedintegerYesDefines the runtimeadaptersexercised value at this contract boundary.minimum: 1
summary.totalCasesintegerYesDefines the totalcases value at this contract boundary.minimum: 1
summary.trueNegativesintegerYesDefines the truenegatives value at this contract boundary.minimum: 0
summary.truePositivesintegerYesDefines the truepositives value at this contract boundary.minimum: 0

Canonical machine-readable definition

The raw synchronized contract remains authoritative. The educational sections above are projections of this definition.

Show raw JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://workspai.dev/schemas/workspace-intelligence/doctor-validation.v1.json",
  "title": "Workspai Doctor Validation Report",
  "type": "object",
  "required": [
    "schemaVersion",
    "corpusVersion",
    "capabilityRegistryVersion",
    "scope",
    "summary",
    "cases",
    "limitations"
  ],
  "properties": {
    "schemaVersion": {
      "const": "workspai.doctor-validation.v1"
    },
    "corpusVersion": {
      "const": "doctor-disease-corpus-v1"
    },
    "capabilityRegistryVersion": {
      "const": "universal-doctor-capabilities-v1"
    },
    "scope": {
      "const": "synthetic-contract-corpus"
    },
    "summary": {
      "type": "object",
      "required": [
        "totalCases",
        "passedCases",
        "failedCases",
        "truePositives",
        "trueNegatives",
        "falsePositives",
        "falseNegatives",
        "precision",
        "recall",
        "domainCoverage",
        "runtimeAdapterCoverage",
        "runtimeAdaptersExercised",
        "declaredPlatforms"
      ],
      "properties": {
        "totalCases": {
          "type": "integer",
          "minimum": 1
        },
        "passedCases": {
          "type": "integer",
          "minimum": 0
        },
        "failedCases": {
          "type": "integer",
          "minimum": 0
        },
        "truePositives": {
          "type": "integer",
          "minimum": 0
        },
        "trueNegatives": {
          "type": "integer",
          "minimum": 0
        },
        "falsePositives": {
          "type": "integer",
          "minimum": 0
        },
        "falseNegatives": {
          "type": "integer",
          "minimum": 0
        },
        "precision": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "recall": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "domainCoverage": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "runtimeAdapterCoverage": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "runtimeAdaptersExercised": {
          "type": "integer",
          "minimum": 1
        },
        "declaredPlatforms": {
          "type": "integer",
          "minimum": 1
        }
      },
      "additionalProperties": false
    },
    "cases": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "id",
          "passed",
          "expected",
          "actual",
          "failures"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "passed": {
            "type": "boolean"
          },
          "expected": {
            "$ref": "#/$defs/outcome"
          },
          "actual": {
            "$ref": "#/$defs/actualOutcome"
          },
          "failures": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "uniqueItems": true
          }
        },
        "additionalProperties": false
      }
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "minItems": 1,
      "uniqueItems": true
    }
  },
  "$defs": {
    "domain": {
      "enum": [
        "runtime",
        "dependency",
        "security",
        "configuration",
        "test",
        "quality"
      ]
    },
    "outcome": {
      "type": "object",
      "required": [
        "finding"
      ],
      "properties": {
        "finding": {
          "type": "boolean"
        },
        "domain": {
          "$ref": "#/$defs/domain"
        },
        "status": {
          "enum": [
            "blocking",
            "advisory"
          ]
        },
        "diagnosisState": {
          "enum": [
            "confirmed",
            "candidate",
            "unknown"
          ]
        },
        "repairDisposition": {
          "enum": [
            "automatic",
            "approval-required",
            "manual",
            "unavailable"
          ]
        }
      },
      "additionalProperties": false
    },
    "actualOutcome": {
      "type": "object",
      "required": [
        "finding"
      ],
      "properties": {
        "finding": {
          "type": "boolean"
        },
        "domain": {
          "$ref": "#/$defs/domain"
        },
        "status": {
          "enum": [
            "blocking",
            "advisory"
          ]
        },
        "diagnosisState": {
          "enum": [
            "confirmed",
            "candidate",
            "unknown"
          ]
        },
        "repairDisposition": {
          "enum": [
            "automatic",
            "approval-required",
            "manual",
            "unavailable"
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}