Platform contracts / Capability contract
Project Entry Capability V1
Defines the versioned project entry capability v1 boundary used by Workspai and its consumers.
- Schema version
workspai-project-entry-capability-v1- Contract path
contracts/project-entry-capability.v1.json- Publication
- json-schema
- Defined fields
- 37
- 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
- • Contract-aware integrations
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 |
|---|---|---|---|---|
| boundaries | object | Yes | Published boundaries capability data. | — |
| boundaries.allowedClaims | array | Yes | Published allowedclaims capability data. | — |
| boundaries.allowedClaims[] | string | Yes | Published allowedclaims[] capability data. | — |
| boundaries.forbiddenClaims | array | Yes | Published forbiddenclaims capability data. | — |
| boundaries.forbiddenClaims[] | string | Yes | Published forbiddenclaims[] capability data. | — |
| entryRoutes | array | Yes | Published entryroutes capability data. | — |
| entryRoutes[] | object | Yes | Published entryroutes[] capability data. | — |
| entryRoutes[].commands | array | Yes | Published commands capability data. | — |
| entryRoutes[].commands[] | string | Yes | Published commands[] capability data. | — |
| entryRoutes[].id | string | Yes | Published id capability data. | — |
| entryRoutes[].purpose | string | Yes | Published purpose capability data. | — |
| entryRoutes[].status | string | Yes | Published status capability data. | — |
| name | string | Yes | Published name capability data. | — |
| plainLanguageRule | string | Yes | Published plainlanguagerule capability data. | — |
| runtimeSignals | object | Yes | Published runtimesignals capability data. | — |
| runtimeSignals.examples | array | Yes | Published examples capability data. | — |
| runtimeSignals.examples[] | string | Yes | Published examples[] capability data. | — |
| runtimeSignals.purpose | string | Yes | Published purpose capability data. | — |
| runtimeSignals.rule | string | Yes | Published rule capability data. | — |
| schemaVersion | string | Yes | Published schemaversion capability data. | — |
| supportDepths | array | Yes | Published supportdepths capability data. | — |
| supportDepths[] | object | Yes | Published supportdepths[] capability data. | — |
| supportDepths[].examples | array | Yes | Published examples capability data. | — |
| supportDepths[].examples[] | string | Yes | Published examples[] capability data. | — |
| supportDepths[].id | string | Yes | Published id capability data. | — |
| supportDepths[].label | string | Yes | Published label capability data. | — |
| supportDepths[].meaning | string | Yes | Published meaning capability data. | — |
| universalExistingProjectEntry | object | Yes | Published universalexistingprojectentry capability data. | — |
| universalExistingProjectEntry.appliesTo | array | Yes | Published appliesto capability data. | — |
| universalExistingProjectEntry.appliesTo[] | string | Yes | Published appliesto[] capability data. | — |
| universalExistingProjectEntry.doesNotRequire | array | Yes | Published doesnotrequire capability data. | — |
| universalExistingProjectEntry.doesNotRequire[] | string | Yes | Published doesnotrequire[] capability data. | — |
| universalExistingProjectEntry.minimumConditions | array | Yes | Published minimumconditions capability data. | — |
| universalExistingProjectEntry.minimumConditions[] | string | Yes | Published minimumconditions[] capability data. | — |
| universalExistingProjectEntry.result | array | Yes | Published result capability data. | — |
| universalExistingProjectEntry.result[] | string | Yes | Published result[] capability data. | — |
| universalExistingProjectEntry.status | string | Yes | Published status 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-project-entry-capability-v1",
"name": "Project Entry Capability",
"plainLanguageRule": "Any readable project can enter Workspace Intelligence through adopt/import. Runtime-specific detection improves understanding depth; it is not the permission gate.",
"entryRoutes": [
{
"id": "create",
"status": "available",
"purpose": "Start a new project only through native kits or available official generator paths listed in the create planner contract.",
"commands": [
"create workspace",
"create project"
]
},
{
"id": "adopt",
"status": "available",
"purpose": "Register an existing local project in place without moving or rewriting its source.",
"commands": [
"adopt"
]
},
{
"id": "import",
"status": "available",
"purpose": "Attach an existing project, repository folder, or imported path to a workspace inventory.",
"commands": [
"import",
"workspace import"
]
}
],
"universalExistingProjectEntry": {
"status": "available",
"appliesTo": [
"any readable repository",
"any readable local project folder",
"monorepos and multi-project workspaces",
"known runtimes, unknown runtimes, and mixed stacks"
],
"minimumConditions": [
"The path is readable by the CLI.",
"The workspace can write Workspai metadata or record an external adopted path.",
"The project can be represented with at least a name, path, and entry record."
],
"doesNotRequire": [
"native scaffold support",
"official generator support",
"module command support",
"a known runtime detector",
"moving source files into the workspace"
],
"result": [
"project registry membership",
"workspace model participation",
"workspace context participation",
"governance and evidence participation according to available facts"
]
},
"supportDepths": [
{
"id": "registered",
"label": "Registered",
"meaning": "The project is known to the workspace and can participate in inventory, context, and governance.",
"examples": [
"unknown runtime",
"custom stack",
"legacy service"
]
},
{
"id": "detected",
"label": "Detected",
"meaning": "The CLI recognizes runtime or framework signals and can label the project with higher confidence.",
"examples": [
"node package.json",
"python pyproject.toml",
"php composer.json"
]
},
{
"id": "operational",
"label": "Operational",
"meaning": "The CLI can infer or use lifecycle commands, health checks, or workspace run stages.",
"examples": [
"test script",
"build script",
"doctor evidence"
]
},
{
"id": "deep",
"label": "Deep",
"meaning": "The project has stack-specific module, doctor, or scaffold support beyond generic Workspace Intelligence.",
"examples": [
"FastAPI module support",
"NestJS module support",
"native Workspai kit"
]
}
],
"runtimeSignals": {
"purpose": "Help the planner and model recognize common existing-project requests and improve labels.",
"examples": [
"php",
"ruby",
"rust",
"elixir",
"clojure",
"scala",
"kotlin"
],
"rule": "Runtime signals are examples for detection and messaging, not a closed allowlist for adopt/import."
},
"boundaries": {
"allowedClaims": [
"Any readable project can enter Workspace Intelligence through adopt/import when it can be registered.",
"Known runtime and framework detectors improve confidence and depth, but unknown projects can still be registered.",
"Create support is limited to native kits and available official generator paths in the create planner contract."
],
"forbiddenClaims": [
"Do not say adopt/import supports only the listed runtime signals.",
"Do not say every imported project receives deep runtime-specific module support.",
"Do not say Workspai can natively scaffold every language or framework."
]
}
}