{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ccc.local/schemas/way.schema.json",
"type": "object",
"oneOf": [
{
"additionalProperties": false,
"required": [
"summary"
],
"anyOf": [
{
"required": ["task_cards"]
},
{
"required": ["planned_rows"]
}
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"task_cards": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/taskCard"
}
},
"planned_rows": {
"type": "array",
"items": {
"$ref": "#/$defs/plannedRow"
},
"minItems": 1
}
}
},
{
"additionalProperties": false,
"required": [
"summary",
"clarification_request"
],
"properties": {
"summary": {
"type": "string",
"minLength": 1
},
"clarification_request": {
"type": "string",
"minLength": 1
}
}
}
],
"$defs": {
"taskCard": {
"type": "object",
"additionalProperties": false,
"required": [
"title",
"intent",
"scope",
"acceptance",
"execution_prompt"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"intent": {
"type": "string",
"minLength": 1
},
"scope": {
"type": "string",
"minLength": 1
},
"acceptance": {
"type": "string",
"minLength": 1
},
"execution_prompt": {
"type": "string",
"minLength": 1
},
"task_kind": {
"type": "string",
"enum": ["execution", "review", "explore", "way"]
},
"acceptance_checks": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"auto_review_after": {
"type": "boolean"
},
"depends_on_indexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"uniqueItems": true
},
"fan_in_from_indexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"uniqueItems": true
},
"node_kind": {
"type": "string",
"enum": ["execution", "fan_in"]
},
"allowed_files": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"uniqueItems": true
},
"forbidden_surfaces": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"uniqueItems": true
},
"do_not_do": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"uniqueItems": true
},
"smallest_verification": {
"type": "string",
"minLength": 1
},
"token_budget": {
"type": "integer",
"minimum": 1
}
}
},
"plannedRow": {
"type": "object",
"additionalProperties": false,
"required": [
"title",
"planned_role",
"planned_agent_id",
"scope",
"acceptance",
"status"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"planned_role": {
"type": "string",
"minLength": 1
},
"planned_agent_id": {
"type": "string",
"minLength": 1
},
"scope": {
"type": "string",
"minLength": 1
},
"acceptance": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": ["planned", "ready", "blocked", "materialized", "skipped", "cancelled"]
},
"task_card_id": {
"type": ["string", "null"],
"minLength": 1
},
"materialized_at": {
"type": "string",
"minLength": 1
},
"updated_at": {
"type": "string",
"minLength": 1
},
"evidence_links": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"result_links": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"routing_summary": {
"type": "string",
"minLength": 1
},
"routing_trace": {
"type": "object"
}
}
}
}
}