Workspace operations / Capability contract
Workspace Repair Capabilities V1
Defines the versioned workspace repair capabilities v1 boundary used by Workspai and its consumers.
- Schema version
workspai.workspace-repair-capabilities.v1- Contract path
contracts/workspace-repair-capabilities.v1.json- Publication
- capability-contract
- Defined fields
- 60
- 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 |
|---|---|---|---|---|
| adapters | array | Yes | Published adapters capability data. | — |
| adapters[] | object | Yes | Published adapters[] capability data. | — |
| adapters[].ecosystem | string | Yes | Published ecosystem capability data. | — |
| adapters[].id | string | Yes | Published id capability data. | — |
| adapters[].limitation | string | Yes | Published limitation capability data. | — |
| adapters[].lockfiles | array | Yes | Published lockfiles capability data. | — |
| adapters[].lockfiles[] | string | Yes | Published lockfiles[] capability data. | — |
| adapters[].manifests | array | Yes | Published manifests capability data. | — |
| adapters[].manifests[] | string | Yes | Published manifests[] capability data. | — |
| adapters[].packageManagers | array | Yes | Published packagemanagers capability data. | — |
| adapters[].packageManagers[] | string | Yes | Published packagemanagers[] capability data. | — |
| adapters[].requiredToolFamilies | array | Yes | Published requiredtoolfamilies capability data. | — |
| adapters[].requiredToolFamilies[] | string | Yes | Published requiredtoolfamilies[] capability data. | — |
| adapters[].stages | object | Yes | Published stages capability data. | — |
| adapters[].stages.audit | string | Yes | Published audit capability data. | — |
| adapters[].stages.build | string | Yes | Published build capability data. | — |
| adapters[].stages.reconcile | string | Yes | Published reconcile capability data. | — |
| adapters[].stages.test | string | Yes | Published test capability data. | — |
| adapters[].support | string | Yes | Published support capability data. | — |
| consumerProtocol | object | Yes | Published consumerprotocol capability data. | — |
| consumerProtocol.capabilityProbe | object | Yes | Published capabilityprobe capability data. | — |
| consumerProtocol.capabilityProbe.args | array | Yes | Published args capability data. | — |
| consumerProtocol.capabilityProbe.args[] | string | Yes | Published args[] capability data. | — |
| consumerProtocol.capabilityProbe.schemaVersion | string | Yes | Published schemaversion capability data. | — |
| consumerProtocol.contracts | object | Yes | Published contracts capability data. | — |
| consumerProtocol.contracts.operationResult | string | Yes | Published operationresult capability data. | — |
| consumerProtocol.contracts.proposal | string | Yes | Published proposal capability data. | — |
| consumerProtocol.contracts.transaction | string | Yes | Published transaction capability data. | — |
| consumerProtocol.invocation | object | Yes | Published invocation capability data. | — |
| consumerProtocol.invocation.actions | array | Yes | Published actions capability data. | — |
| consumerProtocol.invocation.actions[] | string | Yes | Published actions[] capability data. | — |
| consumerProtocol.invocation.command | string | Yes | Published command capability data. | — |
| consumerProtocol.invocation.workspaceResolution | array | Yes | Published workspaceresolution capability data. | — |
| consumerProtocol.invocation.workspaceResolution[] | string | Yes | Published workspaceresolution[] capability data. | — |
| consumerProtocol.protocolVersion | string | Yes | Published protocolversion capability data. | — |
| consumerProtocol.transientPaths | array | Yes | Published transientpaths capability data. | — |
| consumerProtocol.transientPaths[] | string | Yes | Published transientpaths[] capability data. | — |
| consumerProtocol.versionProbe | object | Yes | Published versionprobe capability data. | — |
| consumerProtocol.versionProbe.args | array | Yes | Published args capability data. | — |
| consumerProtocol.versionProbe.args[] | string | Yes | Published args[] capability data. | — |
| consumerProtocol.versionProbe.schemaVersion | string | Yes | Published schemaversion capability data. | — |
| invariants | object | Yes | Published invariants capability data. | — |
| invariants.approvalBoundToPlanHash | boolean | Yes | Published approvalboundtoplanhash capability data. | — |
| invariants.canonicalVerificationRequired | boolean | Yes | Published canonicalverificationrequired capability data. | — |
| invariants.changeReceipt | string | Yes | Published changereceipt capability data. | — |
| invariants.consumerHandshakeRequired | boolean | Yes | Published consumerhandshakerequired capability data. | — |
| invariants.consumerTimeline | string | Yes | Published consumertimeline capability data. | — |
| invariants.ephemeralProposalsAreEvidence | boolean | Yes | Published ephemeralproposalsareevidence capability data. | — |
| invariants.missingTools | string | Yes | Published missingtools capability data. | — |
| invariants.multiAdapterProjects | boolean | Yes | Published multiadapterprojects capability data. | — |
| invariants.mutationAuthority | string | Yes | Published mutationauthority capability data. | — |
| invariants.rollbackConflictDetection | boolean | Yes | Published rollbackconflictdetection capability data. | — |
| invariants.silentFallbackToModelExecution | boolean | Yes | Published silentfallbacktomodelexecution capability data. | — |
| invariants.targetClosure | string | Yes | Published targetclosure capability data. | — |
| invariants.typedDecisionCauses | boolean | Yes | Published typeddecisioncauses capability data. | — |
| invariants.unsupportedEcosystems | string | Yes | Published unsupportedecosystems capability data. | — |
| owner | string | Yes | Published owner capability data. | — |
| schemaVersion | string | Yes | Published schemaversion capability data. | — |
| workflow | array | Yes | Published workflow capability data. | — |
| workflow[] | string | Yes | Published workflow[] capability data. | — |
Canonical machine-readable definition
The raw synchronized contract remains authoritative. The educational sections above are projections of this definition.
Show raw JSON
{
"schemaVersion": "workspai.workspace-repair-capabilities.v1",
"owner": "Workspai CLI",
"workflow": [
"plan",
"preconditions",
"approval",
"target-precondition",
"checkpoint",
"execute",
"reconcile",
"audit",
"test",
"build",
"target-producer-verify",
"canonical-verify",
"close-or-rollback-or-decision"
],
"invariants": {
"multiAdapterProjects": true,
"missingTools": "decision-required",
"unsupportedEcosystems": "decision-required",
"silentFallbackToModelExecution": false,
"mutationAuthority": "cli-only",
"targetClosure": "selected-causal-action-set",
"changeReceipt": "checkpoint-hash-delta",
"consumerTimeline": "durable-transaction-events",
"typedDecisionCauses": true,
"consumerHandshakeRequired": true,
"ephemeralProposalsAreEvidence": false,
"approvalBoundToPlanHash": true,
"canonicalVerificationRequired": true,
"rollbackConflictDetection": true
},
"consumerProtocol": {
"protocolVersion": "workspai.workspace-repair-consumer-protocol.v1",
"versionProbe": {
"args": [
"--version",
"--json"
],
"schemaVersion": "rapidkit-version-v1"
},
"capabilityProbe": {
"args": [
"workspace",
"repair",
"capabilities",
"--json"
],
"schemaVersion": "workspai.workspace-repair-capabilities.v1"
},
"invocation": {
"command": "workspace repair",
"workspaceResolution": [
"process-cwd",
"--workspace"
],
"actions": [
"capabilities",
"plan",
"propose",
"approve",
"decide",
"execute",
"resume",
"status",
"list",
"rollback",
"cancel"
]
},
"contracts": {
"operationResult": "workspai-cli-operation-result-v1",
"proposal": "workspai.workspace-repair-proposal.v1",
"transaction": "workspai.workspace-repair-transaction.v1"
},
"transientPaths": [
".workspai/repair/inbox/*.json",
".workspai/repair/engine.lock"
]
},
"adapters": [
{
"id": "node",
"ecosystem": "JavaScript / TypeScript",
"manifests": [
"package.json"
],
"lockfiles": [
"package-lock.json",
"npm-shrinkwrap.json",
"pnpm-lock.yaml",
"yarn.lock",
"bun.lock",
"bun.lockb"
],
"packageManagers": [
"npm",
"pnpm",
"yarn",
"bun"
],
"support": "full",
"stages": {
"reconcile": "native",
"audit": "native",
"test": "declared",
"build": "declared"
},
"requiredToolFamilies": [
"selected package manager"
]
},
{
"id": "python",
"ecosystem": "Python",
"manifests": [
"pyproject.toml",
"requirements.txt"
],
"lockfiles": [
"uv.lock",
"poetry.lock",
"requirements.txt"
],
"packageManagers": [
"uv",
"poetry",
"pip"
],
"support": "conditional",
"stages": {
"reconcile": "conditional",
"audit": "conditional",
"test": "conditional",
"build": "declared"
},
"requiredToolFamilies": [
"isolated Python",
"selected environment manager",
"pip-audit or governed Doctor audit"
],
"limitation": "A bounded isolated environment and an installed audit surface are required."
},
{
"id": "go",
"ecosystem": "Go",
"manifests": [
"go.mod"
],
"lockfiles": [
"go.sum"
],
"packageManagers": [
"go modules"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"go",
"govulncheck"
],
"limitation": "govulncheck must be installed; the engine never fetches an unreviewed tool."
},
{
"id": "rust",
"ecosystem": "Rust",
"manifests": [
"Cargo.toml"
],
"lockfiles": [
"Cargo.lock"
],
"packageManagers": [
"cargo"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"cargo",
"cargo-audit"
],
"limitation": "The cargo-audit subcommand must already be installed."
},
{
"id": "php-composer",
"ecosystem": "PHP",
"manifests": [
"composer.json"
],
"lockfiles": [
"composer.lock"
],
"packageManagers": [
"composer"
],
"support": "full",
"stages": {
"reconcile": "native",
"audit": "native",
"test": "declared",
"build": "declared"
},
"requiredToolFamilies": [
"composer"
]
},
{
"id": "ruby-bundler",
"ecosystem": "Ruby",
"manifests": [
"Gemfile"
],
"lockfiles": [
"Gemfile.lock"
],
"packageManagers": [
"bundler"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "declared",
"build": "declared"
},
"requiredToolFamilies": [
"bundle",
"bundle-audit"
],
"limitation": "bundle-audit and the declared Rake tasks must already exist."
},
{
"id": "elixir-mix",
"ecosystem": "Elixir",
"manifests": [
"mix.exs"
],
"lockfiles": [
"mix.lock"
],
"packageManagers": [
"mix"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"mix",
"Hex audit task"
],
"limitation": "The project must expose the Hex audit task used by its dependency policy."
},
{
"id": "deno",
"ecosystem": "Deno",
"manifests": [
"deno.json",
"deno.jsonc"
],
"lockfiles": [
"deno.lock"
],
"packageManagers": [
"deno"
],
"support": "full",
"stages": {
"reconcile": "native",
"audit": "native",
"test": "declared",
"build": "declared"
},
"requiredToolFamilies": [
"deno"
]
},
{
"id": "dotnet",
"ecosystem": ".NET",
"manifests": [
"*.sln",
"*.csproj",
"*.fsproj",
"*.vbproj"
],
"lockfiles": [
"Directory.Packages.props",
"packages.lock.json"
],
"packageManagers": [
"NuGet / dotnet"
],
"support": "full",
"stages": {
"reconcile": "native",
"audit": "native",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"dotnet"
]
},
{
"id": "jvm-maven",
"ecosystem": "JVM / Maven",
"manifests": [
"pom.xml"
],
"lockfiles": [],
"packageManagers": [
"Maven Wrapper",
"Maven"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"mvnw or mvn",
"governed Doctor audit"
],
"limitation": "A project-specific dependency audit command must be declared by Doctor evidence."
},
{
"id": "jvm-gradle",
"ecosystem": "JVM / Gradle",
"manifests": [
"build.gradle.kts",
"build.gradle"
],
"lockfiles": [
"gradle.lockfile",
"gradle/libs.versions.toml"
],
"packageManagers": [
"Gradle Wrapper",
"Gradle"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"gradlew or gradle",
"governed Doctor audit"
],
"limitation": "A project-specific dependency audit command must be declared by Doctor evidence."
},
{
"id": "clojure",
"ecosystem": "Clojure",
"manifests": [
"deps.edn",
"project.clj"
],
"lockfiles": [],
"packageManagers": [
"Clojure CLI",
"Leiningen"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "conditional",
"build": "conditional"
},
"requiredToolFamilies": [
"clojure or lein",
"governed project audit"
],
"limitation": "Tests and builds run only when the selected Clojure project surface declares a deterministic entrypoint."
},
{
"id": "scala-sbt",
"ecosystem": "Scala / sbt",
"manifests": [
"build.sbt"
],
"lockfiles": [],
"packageManagers": [
"sbt"
],
"support": "conditional",
"stages": {
"reconcile": "native",
"audit": "conditional",
"test": "native",
"build": "native"
},
"requiredToolFamilies": [
"sbt",
"governed project audit"
],
"limitation": "A project-specific dependency audit command must be declared by Doctor evidence."
}
]
}