{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ccc.local/schemas/explore-artifact.schema.json",
"type": "object",
"additionalProperties": false,
"required": [
"version",
"run_id",
"task_card_id",
"task_kind",
"status",
"request",
"evidence",
"output_summary",
"recorded_at"
],
"properties": {
"version": {
"type": "integer",
"const": 1
},
"run_id": {
"type": "string",
"minLength": 1
},
"task_card_id": {
"type": "string",
"minLength": 1
},
"task_kind": {
"type": "string",
"enum": ["explore", "way"]
},
"status": {
"type": "string",
"enum": ["recorded"]
},
"request": {
"type": "object",
"additionalProperties": false,
"required": [
"goal",
"task_title",
"task_kind",
"scope",
"acceptance",
"bounded_operations",
"evidence_limits",
"handoff_to_plan"
],
"properties": {
"goal": {
"type": "string",
"minLength": 1
},
"task_title": {
"type": "string",
"minLength": 1
},
"task_kind": {
"type": "string",
"enum": ["explore", "way"]
},
"scope": {
"type": "string",
"minLength": 1
},
"acceptance": {
"type": "string",
"minLength": 1
},
"bounded_operations": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": ["search", "read", "grep"]
},
"uniqueItems": true
},
"evidence_limits": {
"type": "object",
"additionalProperties": false,
"required": ["max_files", "max_bytes"],
"properties": {
"max_files": {
"type": "integer",
"minimum": 1
},
"max_bytes": {
"type": "integer",
"minimum": 1
}
}
},
"handoff_to_plan": {
"type": "object",
"additionalProperties": false,
"required": ["next_phase", "summary"],
"properties": {
"next_phase": {
"type": "string",
"enum": ["way", "execute", "review"]
},
"summary": {
"type": "string",
"minLength": 1
}
}
}
}
},
"evidence": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["kind", "file", "thread_id", "summary"],
"properties": {
"kind": {
"type": "string",
"enum": ["raw_events_file"]
},
"file": {
"type": ["string", "null"],
"minLength": 1
},
"thread_id": {
"type": ["string", "null"],
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
}
}
}
},
"output_summary": {
"type": "string",
"minLength": 1
},
"recorded_at": {
"type": "string",
"minLength": 1
}
}
}