Files
librenotes/.wave/contracts/research-topics.schema.json
Michael Czechowski 59411ede0f 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>
2026-02-25 17:02:07 +01:00

107 lines
3.1 KiB
JSON

{
"$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)"
}
}
}
}
}