Files
code-crispies/.wave/contracts/epic-assessment.schema.json

88 lines
2.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Epic Issue Assessment",
"description": "Schema for epic/umbrella issue analysis results",
"type": "object",
"required": ["is_epic", "issue", "analysis"],
"properties": {
"is_epic": {
"type": "boolean",
"const": true,
"description": "Must be true for the pipeline to proceed. Set to false if the issue is not an epic or umbrella issue."
},
"issue": {
"type": "object",
"required": ["number", "title", "body", "repository", "url"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$"
},
"url": {
"type": "string",
"format": "uri"
},
"labels": {
"type": "array",
"items": { "type": "string" }
},
"existing_issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": { "type": "integer" },
"title": { "type": "string" },
"labels": { "type": "array", "items": { "type": "string" } }
}
},
"description": "Existing issues in the repo to avoid duplication"
}
}
},
"analysis": {
"type": "object",
"required": ["scope_summary", "proposed_issues_count", "complexity"],
"properties": {
"scope_summary": {
"type": "string",
"minLength": 1,
"description": "Brief summary of what the epic covers"
},
"proposed_issues_count": {
"type": "integer",
"minimum": 1,
"maximum": 15,
"description": "Number of sub-issues to create"
},
"complexity": {
"type": "string",
"enum": ["small", "medium", "large", "epic"],
"description": "Overall complexity of the work"
},
"key_themes": {
"type": "array",
"items": { "type": "string" },
"description": "Major themes or categories of work identified"
},
"risks": {
"type": "array",
"items": { "type": "string" },
"description": "Identified risks or concerns"
}
}
}
}
}