Workspace Intelligence / JSON Schema
Workspai Studio Blocker Handoff
Defines the versioned studio blocker handoff v1 boundary used by Workspai and its consumers.
- Schema version
rapidkit-studio-blocker-handoff-v1- Contract path
contracts/workspace-intelligence/studio-blocker-handoff.v1.json- Publication
- json-schema
- Defined fields
- 53
- Artifact bindings
- 0
Why this contract exists
Architecture role
Defines a versioned interoperability boundary used by Workspai and contract-aware consumers.
Consumption boundary
- • Workspai CLI
- • Workspace Intelligence consumers
- • IDEs and agents
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.
This is a supporting, capability, cache, compatibility, or consumer contract. It has no single direct producer command in the canonical Workspace Intelligence execution registry.
Produced artifacts
These durable files are emitted by registered commands and validated against this contract.
No canonical file artifact is registered for this contract. It may describe capabilities, embedded data, runtime exchange, or supporting state instead of a standalone report.
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 |
|---|---|---|---|---|
| affectedProjectNames | array | No | Defines the affectedprojectnames value at this contract boundary. | — |
| artifactPath | string | Yes | Defines the artifactpath value at this contract boundary. | — |
| blockers | array | Yes | Defines the blockers value at this contract boundary. | — |
| blockerSignature | string | No | Defines the blockersignature value at this contract boundary. | minLength: 8 |
| blocking | boolean | No | Contract-backed release posture. False means the card is advisory even when warnings or blocker-like guidance are present. | — |
| cardId | string | Yes | Defines the cardid value at this contract boundary. | minLength: 1 |
| cardLabel | string | No | Defines the cardlabel value at this contract boundary. | — |
| cardStatus | enum | Yes | Defines the cardstatus value at this contract boundary. | enum: pass, warn, fail, missing |
| commandRunCount | integer | No | Defines the commandruncount value at this contract boundary. | minimum: 0 |
| doctorFindings | array | No | Exact causal Doctor findings used to bind Studio repair to stable finding and capability identifiers. | — |
| doctorFindings[].applicability | enum | No | Defines the applicability value at this contract boundary. | enum: applicable, not-applicable, unknown |
| doctorFindings[].capabilityId | string | No | Defines the capabilityid value at this contract boundary. | — |
| doctorFindings[].causalKey | string | No | Defines the causalkey value at this contract boundary. | — |
| doctorFindings[].diagnosisState | enum | No | Defines the diagnosisstate value at this contract boundary. | enum: confirmed, candidate, unknown |
| doctorFindings[].id | string | Yes | Defines the id value at this contract boundary. | minLength: 1 |
| doctorFindings[].issueClass | string | No | Defines the issueclass value at this contract boundary. | — |
| doctorFindings[].probeId | string | No | Defines the probeid value at this contract boundary. | — |
| doctorFindings[].projectName | string | No | Defines the projectname value at this contract boundary. | — |
| doctorFindings[].projectPath | string | No | Defines the projectpath value at this contract boundary. | — |
| doctorFindings[].repairDisposition | enum | No | Defines the repairdisposition value at this contract boundary. | enum: automatic, approval-required, manual, unavailable, not-needed |
| doctorFindings[].requiresFreshEvidence | boolean | No | Defines the requiresfreshevidence value at this contract boundary. | — |
| doctorFindings[].status | enum | Yes | Defines the status value at this contract boundary. | enum: blocking, advisory, informational, unknown |
| doctorFindings[].symptom | string | Yes | Defines the symptom value at this contract boundary. | minLength: 1 |
| doctorFindings[].verifyCommand | string | No | Defines the verifycommand value at this contract boundary. | — |
| exitCode | integer | null | No | Defines the exitcode value at this contract boundary. | — |
| handoffSource | enum | No | Defines the handoffsource value at this contract boundary. | enum: repair, artifacts, advisor, tree, dashboard |
| incidentSummary | object | No | Defines the incidentsummary value at this contract boundary. | additionalProperties: false |
| incidentSummary.auditStatus | enum | Yes | Defines the auditstatus value at this contract boundary. | enum: not-started, pending, saved, failed, unknown |
| incidentSummary.phase | enum | Yes | Defines the phase value at this contract boundary. | enum: detect, diagnose, fix, verify, audit |
| incidentSummary.primaryAction | string | Yes | Defines the primaryaction value at this contract boundary. | minLength: 1 |
| incidentSummary.title | string | Yes | Defines the title value at this contract boundary. | minLength: 1 |
| incidentSummary.verifyRequired | boolean | Yes | Defines the verifyrequired value at this contract boundary. | — |
| projectPath | string | No | Defines the projectpath value at this contract boundary. | — |
| resolutionClass | enum | No | Defines the resolutionclass value at this contract boundary. | enum: artifact-missing, command-failed-repeat, config-fixable, semantic-attention, unresolvable-without-human |
| resolutionHints | array | No | Defines the resolutionhints value at this contract boundary. | — |
| schemaVersion | string | Yes | Defines the schemaversion value at this contract boundary. | const: "rapidkit-studio-blocker-handoff-v1" |
| scope | enum | Yes | Defines the scope value at this contract boundary. | enum: workspace, project |
| selectedTarget | object | No | One immutable causal finding target selected from an aggregate card for the next CLI-owned transaction. | additionalProperties: false |
| selectedTarget.actionIds | array | Yes | Defines the actionids value at this contract boundary. | minItems: 1 |
| selectedTarget.causalKey | string | No | Defines the causalkey value at this contract boundary. | minLength: 1 |
| selectedTarget.findingId | string | Yes | Defines the findingid value at this contract boundary. | minLength: 1 |
| selectedTarget.projectName | string | No | Defines the projectname value at this contract boundary. | minLength: 1 |
| selectedTarget.projectPath | string | No | Defines the projectpath value at this contract boundary. | minLength: 1 |
| selectedTarget.repairMode | enum | Yes | Defines the repairmode value at this contract boundary. | enum: edit-file, run-command, refresh-evidence, verify-before-fix, manual-guidance |
| selectedTarget.sourceMutation | enum | Yes | Defines the sourcemutation value at this contract boundary. | enum: required, allowed, forbidden |
| selectedTarget.sourcePaths | array | No | Defines the sourcepaths value at this contract boundary. | — |
| selectedTarget.verifyCommand | string | No | Defines the verifycommand value at this contract boundary. | minLength: 1 |
| sourceCommand | string | Yes | Defines the sourcecommand value at this contract boundary. | — |
| stderrTail | string | No | Defines the stderrtail value at this contract boundary. | — |
| studioMode | enum | No | Defines the studiomode value at this contract boundary. | enum: FIX, RUN_ONCE, VERIFY_ONLY, EXPLAIN |
| verifyArtifact | string | No | Defines the verifyartifact value at this contract boundary. | — |
| verifyCommand | string | No | Defines the verifycommand value at this contract boundary. | — |
| workspacePath | string | No | Defines the workspacepath value at this contract boundary. | — |
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/studio-blocker-handoff.v1.json",
"title": "Workspai Studio Blocker Handoff",
"type": "object",
"required": [
"schemaVersion",
"cardId",
"cardStatus",
"blockers",
"artifactPath",
"sourceCommand",
"scope"
],
"properties": {
"schemaVersion": {
"const": "rapidkit-studio-blocker-handoff-v1"
},
"cardId": {
"type": "string",
"minLength": 1
},
"cardLabel": {
"type": "string"
},
"cardStatus": {
"enum": [
"pass",
"warn",
"fail",
"missing"
]
},
"blocking": {
"type": "boolean",
"description": "Contract-backed release posture. False means the card is advisory even when warnings or blocker-like guidance are present."
},
"blockers": {
"type": "array",
"items": {
"type": "string"
}
},
"affectedProjectNames": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"doctorFindings": {
"type": "array",
"description": "Exact causal Doctor findings used to bind Studio repair to stable finding and capability identifiers.",
"items": {
"type": "object",
"required": [
"id",
"symptom",
"status"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"causalKey": {
"type": "string"
},
"projectName": {
"type": "string"
},
"projectPath": {
"type": "string"
},
"probeId": {
"type": "string"
},
"issueClass": {
"type": "string"
},
"symptom": {
"type": "string",
"minLength": 1
},
"status": {
"enum": [
"blocking",
"advisory",
"informational",
"unknown"
]
},
"applicability": {
"enum": [
"applicable",
"not-applicable",
"unknown"
]
},
"diagnosisState": {
"enum": [
"confirmed",
"candidate",
"unknown"
]
},
"repairDisposition": {
"enum": [
"automatic",
"approval-required",
"manual",
"unavailable",
"not-needed"
]
},
"capabilityId": {
"type": "string"
},
"verifyCommand": {
"type": "string"
},
"requiresFreshEvidence": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"selectedTarget": {
"type": "object",
"description": "One immutable causal finding target selected from an aggregate card for the next CLI-owned transaction.",
"required": [
"findingId",
"actionIds",
"repairMode",
"sourceMutation"
],
"properties": {
"findingId": {
"type": "string",
"minLength": 1
},
"causalKey": {
"type": "string",
"minLength": 1
},
"actionIds": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1
}
},
"sourcePaths": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1
}
},
"projectName": {
"type": "string",
"minLength": 1
},
"projectPath": {
"type": "string",
"minLength": 1
},
"repairMode": {
"enum": [
"edit-file",
"run-command",
"refresh-evidence",
"verify-before-fix",
"manual-guidance"
]
},
"sourceMutation": {
"enum": [
"required",
"allowed",
"forbidden"
]
},
"verifyCommand": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"artifactPath": {
"type": "string"
},
"sourceCommand": {
"type": "string"
},
"scope": {
"enum": [
"workspace",
"project"
]
},
"stderrTail": {
"type": "string"
},
"exitCode": {
"type": [
"integer",
"null"
]
},
"blockerSignature": {
"type": "string",
"minLength": 8
},
"commandRunCount": {
"type": "integer",
"minimum": 0
},
"resolutionClass": {
"enum": [
"artifact-missing",
"command-failed-repeat",
"config-fixable",
"semantic-attention",
"unresolvable-without-human"
]
},
"studioMode": {
"enum": [
"FIX",
"RUN_ONCE",
"VERIFY_ONLY",
"EXPLAIN"
]
},
"incidentSummary": {
"type": "object",
"required": [
"title",
"phase",
"primaryAction",
"verifyRequired",
"auditStatus"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"phase": {
"enum": [
"detect",
"diagnose",
"fix",
"verify",
"audit"
]
},
"primaryAction": {
"type": "string",
"minLength": 1
},
"verifyRequired": {
"type": "boolean"
},
"auditStatus": {
"enum": [
"not-started",
"pending",
"saved",
"failed",
"unknown"
]
}
},
"additionalProperties": false
},
"resolutionHints": {
"type": "array",
"items": {
"$ref": "blocker-resolution.v1.json"
}
},
"verifyCommand": {
"type": "string"
},
"verifyArtifact": {
"type": "string"
},
"handoffSource": {
"enum": [
"repair",
"artifacts",
"advisor",
"tree",
"dashboard"
]
},
"workspacePath": {
"type": "string"
},
"projectPath": {
"type": "string"
}
},
"additionalProperties": false
}