Workspace Intelligence / JSON Schema
Workspai Goal Index
Defines the versioned goal index v1 boundary used by Workspai and its consumers.
- Schema version
workspai.goal-index.v1- Contract path
contracts/workspace-intelligence/goal-index.v1.json- Publication
- json-schema
- Defined fields
- 30
- Artifact bindings
- 1
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.
Produced artifacts
These durable files are emitted by registered commands and validated against this contract.
| Artifact path | Schema | Producer |
|---|---|---|
| .workspai/goals/index.json | workspai.goal-index.v1 | workspai goal |
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 |
|---|---|---|---|---|
| activeGoalId | string | null | Yes | Defines the activegoalid value at this contract boundary. | — |
| generatedAt | string | Yes | Defines the generatedat value at this contract boundary. | format: date-time |
| goals | array | Yes | Defines the goals value at this contract boundary. | — |
| goals[].agentHandoff | string | Yes | Defines the agenthandoff value at this contract boundary. | pattern: ^\.workspai/goals/[^/]+/agent-handoff\.json$ |
| goals[].category | enum | Yes | Defines the category value at this contract boundary. | enum: release-readiness, dependency-security, test-coverage, defect-repair, feature-change, refactor, performance, documentation, system-understanding |
| goals[].createdAt | string | Yes | Defines the createdat value at this contract boundary. | format: date-time |
| goals[].fingerprint | string | Yes | Defines the fingerprint value at this contract boundary. | pattern: ^[a-f0-9]{64}$ |
| goals[].goalPack | string | Yes | Defines the goalpack value at this contract boundary. | pattern: ^\.workspai/goals/[^/]+/goal-pack\.json$ |
| goals[].id | string | Yes | Defines the id value at this contract boundary. | pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{7,95}$ |
| goals[].lifecycle | enum | Yes | Defines the lifecycle value at this contract boundary. | enum: planned, active, cancelled, verification-ready, verified, failed |
| goals[].objective | string | Yes | Defines the objective value at this contract boundary. | minLength: 1 · maxLength: 2000 |
| goals[].repairTransactionId | string | No | Defines the repairtransactionid value at this contract boundary. | minLength: 1 |
| goals[].repairTransactionIds | array | No | Defines the repairtransactionids value at this contract boundary. | maxItems: 25 |
| goals[].scope | object | Yes | Defines the scope value at this contract boundary. | additionalProperties: false |
| goals[].scope.kind | enum | Yes | Defines the kind value at this contract boundary. | enum: workspace, project, project-set |
| goals[].scope.projects | array | Yes | Defines the projects value at this contract boundary. | minItems: 1 |
| goals[].scope.resolution | enum | No | Defines the resolution value at this contract boundary. | enum: selected, selection-required |
| goals[].scope.selectionSource | enum | Yes | Defines the selectionsource value at this contract boundary. | enum: workspace, single-project-workspace, invocation-project, explicit, interactive |
| goals[].state | enum | Yes | Defines the state value at this contract boundary. | enum: ready-to-plan, needs-confirmation, needs-evidence, blocked |
| goals[].updatedAt | string | Yes | Defines the updatedat value at this contract boundary. | format: date-time |
| goals[].verificationReceipt | object | No | Defines the verificationreceipt value at this contract boundary. | additionalProperties: false |
| goals[].verificationReceipt.attempt | integer | Yes | Defines the attempt value at this contract boundary. | minimum: 1 |
| goals[].verificationReceipt.graphFingerprint | string | Yes | Defines the graphfingerprint value at this contract boundary. | pattern: ^[a-f0-9]{64}$ |
| goals[].verificationReceipt.graphFingerprintSemantics | enum | Yes | Defines the graphfingerprintsemantics value at this contract boundary. | enum: workspace-knowledge-graph-inputs-v1, canonical-json-v1 |
| goals[].verificationReceipt.modelHash | string | Yes | Defines the modelhash value at this contract boundary. | pattern: ^[a-f0-9]{64}$ |
| goals[].verificationReceipt.recordedAt | string | Yes | Defines the recordedat value at this contract boundary. | format: date-time |
| goals[].verificationReceipt.statusHash | string | Yes | Defines the statushash value at this contract boundary. | pattern: ^[a-f0-9]{64}$ |
| goals[].verificationReceipt.verifiedGoalId | string | Yes | Defines the verifiedgoalid value at this contract boundary. | minLength: 1 |
| goals[].verifiedGoalId | string | No | Defines the verifiedgoalid value at this contract boundary. | minLength: 1 |
| schemaVersion | string | Yes | Defines the schemaversion value at this contract boundary. | const: "workspai.goal-index.v1" |
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/goal-index.v1.json",
"title": "Workspai Goal Index",
"type": "object",
"required": [
"schemaVersion",
"generatedAt",
"activeGoalId",
"goals"
],
"properties": {
"schemaVersion": {
"const": "workspai.goal-index.v1"
},
"generatedAt": {
"type": "string",
"format": "date-time"
},
"activeGoalId": {
"type": [
"string",
"null"
]
},
"goals": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"fingerprint",
"objective",
"category",
"state",
"lifecycle",
"scope",
"createdAt",
"updatedAt",
"goalPack",
"agentHandoff"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{7,95}$"
},
"fingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"objective": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"category": {
"enum": [
"release-readiness",
"dependency-security",
"test-coverage",
"defect-repair",
"feature-change",
"refactor",
"performance",
"documentation",
"system-understanding"
]
},
"state": {
"enum": [
"ready-to-plan",
"needs-confirmation",
"needs-evidence",
"blocked"
]
},
"lifecycle": {
"enum": [
"planned",
"active",
"cancelled",
"verification-ready",
"verified",
"failed"
]
},
"scope": {
"type": "object",
"required": [
"kind",
"projects",
"selectionSource"
],
"properties": {
"kind": {
"enum": [
"workspace",
"project",
"project-set"
]
},
"projects": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"selectionSource": {
"enum": [
"workspace",
"single-project-workspace",
"invocation-project",
"explicit",
"interactive"
]
},
"resolution": {
"enum": [
"selected",
"selection-required"
]
}
},
"allOf": [
{
"if": {
"properties": {
"kind": {
"const": "project"
}
}
},
"then": {
"properties": {
"projects": {
"type": "array",
"maxItems": 1
}
}
}
},
{
"if": {
"properties": {
"kind": {
"const": "project-set"
}
}
},
"then": {
"properties": {
"projects": {
"type": "array",
"minItems": 2
}
}
}
},
{
"if": {
"properties": {
"resolution": {
"const": "selection-required"
}
},
"required": [
"resolution"
]
},
"then": {
"properties": {
"kind": {
"const": "workspace"
},
"selectionSource": {
"const": "workspace"
}
}
}
}
],
"additionalProperties": false
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"goalPack": {
"type": "string",
"pattern": "^\\.workspai/goals/[^/]+/goal-pack\\.json$"
},
"agentHandoff": {
"type": "string",
"pattern": "^\\.workspai/goals/[^/]+/agent-handoff\\.json$"
},
"verifiedGoalId": {
"type": "string",
"minLength": 1
},
"repairTransactionId": {
"type": "string",
"minLength": 1
},
"repairTransactionIds": {
"type": "array",
"maxItems": 25,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1
}
},
"verificationReceipt": {
"type": "object",
"required": [
"verifiedGoalId",
"attempt",
"statusHash",
"modelHash",
"graphFingerprint",
"graphFingerprintSemantics",
"recordedAt"
],
"properties": {
"verifiedGoalId": {
"type": "string",
"minLength": 1
},
"attempt": {
"type": "integer",
"minimum": 1
},
"statusHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"modelHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"graphFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"graphFingerprintSemantics": {
"enum": [
"workspace-knowledge-graph-inputs-v1",
"canonical-json-v1"
]
},
"recordedAt": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}