Add Wave contract schemas for pipeline validation
JSON Schema definitions for all pipeline handover contracts including issue analysis, research, enhancement, and sync flows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
106
.wave/contracts/research-topics.schema.json
Normal file
106
.wave/contracts/research-topics.schema.json
Normal file
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Research Topics",
|
||||
"description": "Extracted research topics from GitHub issue analysis",
|
||||
"type": "object",
|
||||
"required": ["issue_reference", "topics"],
|
||||
"properties": {
|
||||
"issue_reference": {
|
||||
"type": "object",
|
||||
"required": ["issue_number", "repository"],
|
||||
"properties": {
|
||||
"issue_number": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"description": "Reference to source issue number"
|
||||
},
|
||||
"repository": {
|
||||
"type": "string",
|
||||
"pattern": "^[^/]+/[^/]+$",
|
||||
"description": "Repository full name (owner/repo)"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Issue title for context"
|
||||
}
|
||||
}
|
||||
},
|
||||
"topics": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 10,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["id", "title", "questions", "keywords", "priority"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"pattern": "^TOPIC-[0-9]{3}$",
|
||||
"description": "Unique topic identifier (e.g., TOPIC-001)"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"minLength": 5,
|
||||
"maxLength": 200,
|
||||
"description": "Concise topic title"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Detailed description of what needs to be researched"
|
||||
},
|
||||
"questions": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 5,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 10
|
||||
},
|
||||
"description": "Specific questions to answer through research"
|
||||
},
|
||||
"keywords": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 10,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 2
|
||||
},
|
||||
"description": "Search keywords for web research"
|
||||
},
|
||||
"priority": {
|
||||
"type": "string",
|
||||
"enum": ["critical", "high", "medium", "low"],
|
||||
"description": "Research priority level"
|
||||
},
|
||||
"category": {
|
||||
"type": "string",
|
||||
"enum": ["technical", "documentation", "best_practices", "security", "performance", "compatibility", "other"],
|
||||
"description": "Topic category for organization"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "List of research topics extracted from the issue"
|
||||
},
|
||||
"extraction_metadata": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"extracted_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp when topics were extracted"
|
||||
},
|
||||
"persona": {
|
||||
"type": "string",
|
||||
"description": "Wave persona that performed the extraction"
|
||||
},
|
||||
"confidence": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1,
|
||||
"description": "Confidence score for topic relevance (0-1)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user