83 lines
2.4 KiB
JSON
83 lines
2.4 KiB
JSON
|
|
{
|
||
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
|
|
"title": "Analyst Output",
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"task_id",
|
||
|
|
"issue_summary",
|
||
|
|
"affected_layers",
|
||
|
|
"affected_files",
|
||
|
|
"existing_patterns",
|
||
|
|
"related_tests",
|
||
|
|
"security_surface",
|
||
|
|
"assumptions",
|
||
|
|
"risks_discovered"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"task_id": { "type": "string", "minLength": 1 },
|
||
|
|
"issue_summary": { "type": "string", "minLength": 1 },
|
||
|
|
"affected_layers": {
|
||
|
|
"type": "array",
|
||
|
|
"minItems": 1,
|
||
|
|
"items": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": ["Repository", "Service", "pages", "templates", "web/js", "web/css", "modules", "config", "db", "bin"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"affected_files": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"required": ["path", "role"],
|
||
|
|
"properties": {
|
||
|
|
"path": { "type": "string", "minLength": 1 },
|
||
|
|
"role": { "type": "string", "minLength": 1 }
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"existing_patterns": {
|
||
|
|
"type": "array",
|
||
|
|
"items": { "type": "string" },
|
||
|
|
"description": "Partials, helpers, services, or conventions already in use for this area."
|
||
|
|
},
|
||
|
|
"related_tests": {
|
||
|
|
"type": "array",
|
||
|
|
"items": { "type": "string" },
|
||
|
|
"description": "Existing test files relevant to the change."
|
||
|
|
},
|
||
|
|
"security_surface": {
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"authz_relevant": { "type": "boolean" },
|
||
|
|
"tenant_scope_relevant": { "type": "boolean" },
|
||
|
|
"input_handling": { "type": "boolean" },
|
||
|
|
"crypto_relevant": { "type": "boolean" },
|
||
|
|
"file_upload_relevant": { "type": "boolean" },
|
||
|
|
"notes": { "type": "string" }
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
},
|
||
|
|
"module_context": {
|
||
|
|
"type": "object",
|
||
|
|
"description": "Present only when a module is involved.",
|
||
|
|
"properties": {
|
||
|
|
"module_id": { "type": "string" },
|
||
|
|
"active": { "type": "boolean" },
|
||
|
|
"manifest_declarations": { "type": "array", "items": { "type": "string" } }
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
},
|
||
|
|
"assumptions": {
|
||
|
|
"type": "array",
|
||
|
|
"items": { "type": "string" },
|
||
|
|
"description": "Ambiguities the Planner must resolve."
|
||
|
|
},
|
||
|
|
"risks_discovered": {
|
||
|
|
"type": "array",
|
||
|
|
"items": { "type": "string" }
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
}
|