Workspace Intelligence / JSON Schema
Workspai Workspace Verify Last Run
Defines the versioned workspace verify v1 boundary used by Workspai and its consumers.
- Schema version
workspace-verify.v1- Contract path
contracts/workspace-intelligence/workspace-verify.v1.json- Publication
- embedded-type, json-schema
- Defined fields
- 68
- 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 path | Schema | Producer |
|---|---|---|
| .workspai/reports/workspace-verify-last-run.json | workspace-verify.v1 | workspai workspace verify --from-impact .workspai/reports/workspace-impact-last-run.json --json |
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 path | Type | Required | Meaning | Constraints |
|---|---|---|---|---|
| affectedSubgraph | object | Yes | Defines the affectedsubgraph value at this contract boundary. | additionalProperties: false |
| affectedSubgraph.covered | array | Yes | Defines the covered value at this contract boundary. | — |
| affectedSubgraph.directlyChanged | array | Yes | Defines the directlychanged value at this contract boundary. | — |
| affectedSubgraph.totalProjects | integer | Yes | Defines the totalprojects value at this contract boundary. | minimum: 0 |
| affectedSubgraph.transitiveDependents | array | Yes | Defines the transitivedependents value at this contract boundary. | — |
| affectedSubgraph.uncovered | array | Yes | Defines the uncovered value at this contract boundary. | — |
| affectedSubgraph.unverifiable | array | Yes | Defines the unverifiable value at this contract boundary. | — |
| blockingReasons | array | Yes | Defines the blockingreasons value at this contract boundary. | — |
| freshness | object | Yes | Defines the freshness value at this contract boundary. | additionalProperties: false |
| freshness.added | array | Yes | Defines the added value at this contract boundary. | — |
| freshness.baseline | enum | Yes | Defines the baseline value at this contract boundary. | enum: none, recorded |
| freshness.changed | array | Yes | Defines the changed value at this contract boundary. | — |
| freshness.projectHashes | object | Yes | Defines the projecthashes value at this contract boundary. | — |
| freshness.removed | array | Yes | Defines the removed value at this contract boundary. | — |
| freshness.verdict | enum | Yes | Defines the verdict value at this contract boundary. | enum: fresh, stale, unknown |
| fromImpactRef | string | No | Defines the fromimpactref value at this contract boundary. | — |
| generatedAt | string | Yes | Defines the generatedat value at this contract boundary. | format: date-time |
| graphIntegrity | object | Yes | Defines the graphintegrity value at this contract boundary. | additionalProperties: false |
| graphIntegrity.cycles | array | Yes | Defines the cycles value at this contract boundary. | — |
| graphIntegrity.danglingEdges | array | Yes | Defines the danglingedges value at this contract boundary. | — |
| graphIntegrity.danglingEdges[].from | string | Yes | Defines the from value at this contract boundary. | — |
| graphIntegrity.danglingEdges[].kind | string | Yes | Defines the kind value at this contract boundary. | — |
| graphIntegrity.danglingEdges[].missing | enum | Yes | Defines the missing value at this contract boundary. | enum: from, to, both |
| graphIntegrity.danglingEdges[].to | string | Yes | Defines the to value at this contract boundary. | — |
| graphIntegrity.ok | boolean | Yes | Defines the ok value at this contract boundary. | — |
| graphIntegrity.orphans | array | Yes | Defines the orphans value at this contract boundary. | — |
| graphIntegrity.stats | object | Yes | Defines the stats value at this contract boundary. | additionalProperties: false |
| graphIntegrity.stats.cycleCount | integer | Yes | Defines the cyclecount value at this contract boundary. | minimum: 0 |
| graphIntegrity.stats.danglingCount | integer | Yes | Defines the danglingcount value at this contract boundary. | minimum: 0 |
| graphIntegrity.stats.edgeCount | integer | Yes | Defines the edgecount value at this contract boundary. | minimum: 0 |
| graphIntegrity.stats.nodeCount | integer | Yes | Defines the nodecount value at this contract boundary. | minimum: 0 |
| graphIntegrity.stats.orphanCount | integer | Yes | Defines the orphancount value at this contract boundary. | minimum: 0 |
| impact | object | Yes | Defines the impact value at this contract boundary. | additionalProperties: false |
| impact.affectedProjects | integer | Yes | Defines the affectedprojects value at this contract boundary. | minimum: 0 |
| impact.changed | boolean | Yes | Defines the changed value at this contract boundary. | — |
| impact.recommendedCommands | integer | Yes | Defines the recommendedcommands value at this contract boundary. | minimum: 0 |
| impact.risk | enum | Yes | Defines the risk value at this contract boundary. | enum: none, low, medium, high, critical |
| missingEvidence | array | Yes | Defines the missingevidence value at this contract boundary. | — |
| mode | string | Yes | Defines the mode value at this contract boundary. | const: "evidence" |
| policyMode | string | Yes | Defines the policymode value at this contract boundary. | — |
| policyViolations | array | Yes | Defines the policyviolations value at this contract boundary. | — |
| policyViolations[].code | string | Yes | Defines the code value at this contract boundary. | — |
| policyViolations[].message | string | Yes | Defines the message value at this contract boundary. | — |
| policyViolations[].severity | enum | Yes | Defines the severity value at this contract boundary. | enum: error, warning |
| policyViolations[].source | enum | Yes | Defines the source value at this contract boundary. | enum: model, contract |
| policyViolations[].target | string | No | Defines the target value at this contract boundary. | — |
| schemaVersion | string | Yes | Defines the schemaversion value at this contract boundary. | const: "workspace-verify.v1" |
| scope | string | No | Defines the scope value at this contract boundary. | — |
| steps | array | Yes | Defines the steps value at this contract boundary. | — |
| steps[].command | object | Yes | Defines the command value at this contract boundary. | additionalProperties: true |
| steps[].evidencePath | string | No | Defines the evidencepath value at this contract boundary. | — |
| steps[].id | string | Yes | Defines the id value at this contract boundary. | — |
| steps[].label | string | Yes | Defines the label value at this contract boundary. | — |
| steps[].message | string | Yes | Defines the message value at this contract boundary. | — |
| steps[].project | string | No | Defines the project value at this contract boundary. | — |
| steps[].required | boolean | Yes | Defines the required value at this contract boundary. | — |
| steps[].scope | enum | Yes | Defines the scope value at this contract boundary. | enum: workspace, project |
| steps[].status | enum | Yes | Defines the status value at this contract boundary. | enum: pass, warn, fail, missing, skipped |
| summary | object | Yes | Defines the summary value at this contract boundary. | additionalProperties: false |
| summary.exitCode | enum | Yes | Defines the exitcode value at this contract boundary. | enum: 0, 1, 2 |
| summary.stepsFailed | integer | Yes | Defines the stepsfailed value at this contract boundary. | minimum: 0 |
| summary.stepsMissing | integer | Yes | Defines the stepsmissing value at this contract boundary. | minimum: 0 |
| summary.stepsPassed | integer | Yes | Defines the stepspassed value at this contract boundary. | minimum: 0 |
| summary.stepsSkipped | integer | Yes | Defines the stepsskipped value at this contract boundary. | minimum: 0 |
| summary.stepsWarn | integer | Yes | Defines the stepswarn value at this contract boundary. | minimum: 0 |
| summary.verdict | enum | Yes | Defines the verdict value at this contract boundary. | enum: ready, needs-attention, blocked |
| verificationPlan | array | Yes | Defines the verificationplan value at this contract boundary. | — |
| workspacePath | string | Yes | Defines the workspacepath value at this contract boundary. | minLength: 1 |
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://getrapidkit.com/schemas/workspace-verify.v1.json",
"title": "Workspai Workspace Verify Last Run",
"type": "object",
"required": [
"schemaVersion",
"generatedAt",
"workspacePath",
"mode",
"impact",
"summary",
"steps",
"missingEvidence",
"blockingReasons",
"verificationPlan",
"affectedSubgraph",
"graphIntegrity",
"freshness",
"policyMode",
"policyViolations"
],
"properties": {
"schemaVersion": {
"const": "workspace-verify.v1"
},
"generatedAt": {
"type": "string",
"format": "date-time"
},
"workspacePath": {
"type": "string",
"minLength": 1
},
"mode": {
"const": "evidence"
},
"fromImpactRef": {
"type": "string"
},
"scope": {
"type": "string"
},
"impact": {
"type": "object",
"required": [
"changed",
"risk",
"affectedProjects",
"recommendedCommands"
],
"properties": {
"changed": {
"type": "boolean"
},
"risk": {
"enum": [
"none",
"low",
"medium",
"high",
"critical"
]
},
"affectedProjects": {
"type": "integer",
"minimum": 0
},
"recommendedCommands": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"summary": {
"type": "object",
"required": [
"verdict",
"exitCode",
"stepsPassed",
"stepsWarn",
"stepsFailed",
"stepsMissing",
"stepsSkipped"
],
"properties": {
"verdict": {
"enum": [
"ready",
"needs-attention",
"blocked"
]
},
"exitCode": {
"enum": [
0,
1,
2
]
},
"stepsPassed": {
"type": "integer",
"minimum": 0
},
"stepsWarn": {
"type": "integer",
"minimum": 0
},
"stepsFailed": {
"type": "integer",
"minimum": 0
},
"stepsMissing": {
"type": "integer",
"minimum": 0
},
"stepsSkipped": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label",
"scope",
"command",
"status",
"required",
"message"
],
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"scope": {
"enum": [
"workspace",
"project"
]
},
"project": {
"type": "string"
},
"status": {
"enum": [
"pass",
"warn",
"fail",
"missing",
"skipped"
]
},
"required": {
"type": "boolean"
},
"evidencePath": {
"type": "string"
},
"message": {
"type": "string"
},
"command": {
"type": "object",
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"missingEvidence": {
"type": "array",
"items": {
"type": "string"
}
},
"blockingReasons": {
"type": "array",
"items": {
"type": "string"
}
},
"verificationPlan": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"affectedSubgraph": {
"type": "object",
"required": [
"totalProjects",
"directlyChanged",
"transitiveDependents",
"covered",
"uncovered",
"unverifiable"
],
"properties": {
"totalProjects": {
"type": "integer",
"minimum": 0
},
"directlyChanged": {
"type": "array",
"items": {
"type": "string"
}
},
"transitiveDependents": {
"type": "array",
"items": {
"type": "string"
}
},
"covered": {
"type": "array",
"items": {
"type": "string"
}
},
"uncovered": {
"type": "array",
"items": {
"type": "string"
}
},
"unverifiable": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"graphIntegrity": {
"type": "object",
"required": [
"ok",
"cycles",
"danglingEdges",
"orphans",
"stats"
],
"properties": {
"ok": {
"type": "boolean"
},
"cycles": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"danglingEdges": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to",
"kind",
"missing"
],
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
},
"kind": {
"type": "string"
},
"missing": {
"enum": [
"from",
"to",
"both"
]
}
},
"additionalProperties": true
}
},
"orphans": {
"type": "array",
"items": {
"type": "string"
}
},
"stats": {
"type": "object",
"required": [
"nodeCount",
"edgeCount",
"cycleCount",
"danglingCount",
"orphanCount"
],
"properties": {
"nodeCount": {
"type": "integer",
"minimum": 0
},
"edgeCount": {
"type": "integer",
"minimum": 0
},
"cycleCount": {
"type": "integer",
"minimum": 0
},
"danglingCount": {
"type": "integer",
"minimum": 0
},
"orphanCount": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"freshness": {
"type": "object",
"required": [
"verdict",
"baseline",
"changed",
"added",
"removed",
"projectHashes"
],
"properties": {
"verdict": {
"enum": [
"fresh",
"stale",
"unknown"
]
},
"baseline": {
"enum": [
"none",
"recorded"
]
},
"changed": {
"type": "array",
"items": {
"type": "string"
}
},
"added": {
"type": "array",
"items": {
"type": "string"
}
},
"removed": {
"type": "array",
"items": {
"type": "string"
}
},
"projectHashes": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"policyMode": {
"type": "string"
},
"policyViolations": {
"type": "array",
"items": {
"type": "object",
"required": [
"source",
"severity",
"code",
"message"
],
"properties": {
"source": {
"enum": [
"model",
"contract"
]
},
"severity": {
"enum": [
"error",
"warning"
]
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"target": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": true
}