All contracts

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 pathTypeRequiredMeaningConstraints
adaptersarrayYesPublished adapters capability data.
adapters[]objectYesPublished adapters[] capability data.
adapters[].ecosystemstringYesPublished ecosystem capability data.
adapters[].idstringYesPublished id capability data.
adapters[].limitationstringYesPublished limitation capability data.
adapters[].lockfilesarrayYesPublished lockfiles capability data.
adapters[].lockfiles[]stringYesPublished lockfiles[] capability data.
adapters[].manifestsarrayYesPublished manifests capability data.
adapters[].manifests[]stringYesPublished manifests[] capability data.
adapters[].packageManagersarrayYesPublished packagemanagers capability data.
adapters[].packageManagers[]stringYesPublished packagemanagers[] capability data.
adapters[].requiredToolFamiliesarrayYesPublished requiredtoolfamilies capability data.
adapters[].requiredToolFamilies[]stringYesPublished requiredtoolfamilies[] capability data.
adapters[].stagesobjectYesPublished stages capability data.
adapters[].stages.auditstringYesPublished audit capability data.
adapters[].stages.buildstringYesPublished build capability data.
adapters[].stages.reconcilestringYesPublished reconcile capability data.
adapters[].stages.teststringYesPublished test capability data.
adapters[].supportstringYesPublished support capability data.
consumerProtocolobjectYesPublished consumerprotocol capability data.
consumerProtocol.capabilityProbeobjectYesPublished capabilityprobe capability data.
consumerProtocol.capabilityProbe.argsarrayYesPublished args capability data.
consumerProtocol.capabilityProbe.args[]stringYesPublished args[] capability data.
consumerProtocol.capabilityProbe.schemaVersionstringYesPublished schemaversion capability data.
consumerProtocol.contractsobjectYesPublished contracts capability data.
consumerProtocol.contracts.operationResultstringYesPublished operationresult capability data.
consumerProtocol.contracts.proposalstringYesPublished proposal capability data.
consumerProtocol.contracts.transactionstringYesPublished transaction capability data.
consumerProtocol.invocationobjectYesPublished invocation capability data.
consumerProtocol.invocation.actionsarrayYesPublished actions capability data.
consumerProtocol.invocation.actions[]stringYesPublished actions[] capability data.
consumerProtocol.invocation.commandstringYesPublished command capability data.
consumerProtocol.invocation.workspaceResolutionarrayYesPublished workspaceresolution capability data.
consumerProtocol.invocation.workspaceResolution[]stringYesPublished workspaceresolution[] capability data.
consumerProtocol.protocolVersionstringYesPublished protocolversion capability data.
consumerProtocol.transientPathsarrayYesPublished transientpaths capability data.
consumerProtocol.transientPaths[]stringYesPublished transientpaths[] capability data.
consumerProtocol.versionProbeobjectYesPublished versionprobe capability data.
consumerProtocol.versionProbe.argsarrayYesPublished args capability data.
consumerProtocol.versionProbe.args[]stringYesPublished args[] capability data.
consumerProtocol.versionProbe.schemaVersionstringYesPublished schemaversion capability data.
invariantsobjectYesPublished invariants capability data.
invariants.approvalBoundToPlanHashbooleanYesPublished approvalboundtoplanhash capability data.
invariants.canonicalVerificationRequiredbooleanYesPublished canonicalverificationrequired capability data.
invariants.changeReceiptstringYesPublished changereceipt capability data.
invariants.consumerHandshakeRequiredbooleanYesPublished consumerhandshakerequired capability data.
invariants.consumerTimelinestringYesPublished consumertimeline capability data.
invariants.ephemeralProposalsAreEvidencebooleanYesPublished ephemeralproposalsareevidence capability data.
invariants.missingToolsstringYesPublished missingtools capability data.
invariants.multiAdapterProjectsbooleanYesPublished multiadapterprojects capability data.
invariants.mutationAuthoritystringYesPublished mutationauthority capability data.
invariants.rollbackConflictDetectionbooleanYesPublished rollbackconflictdetection capability data.
invariants.silentFallbackToModelExecutionbooleanYesPublished silentfallbacktomodelexecution capability data.
invariants.targetClosurestringYesPublished targetclosure capability data.
invariants.typedDecisionCausesbooleanYesPublished typeddecisioncauses capability data.
invariants.unsupportedEcosystemsstringYesPublished unsupportedecosystems capability data.
ownerstringYesPublished owner capability data.
schemaVersionstringYesPublished schemaversion capability data.
workflowarrayYesPublished workflow capability data.
workflow[]stringYesPublished 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."
    }
  ]
}