Files
librenotes/.wave/contracts/web-findings.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

86 lines
2.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Web Findings",
"description": "Structured web research results for a given topic",
"type": "object",
"required": ["topic", "sources", "search_queries"],
"properties": {
"topic": {
"type": "string",
"description": "The topic that was researched"
},
"sources": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["url", "title", "key_ideas", "relevance_to_topic"],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Source URL"
},
"title": {
"type": "string",
"description": "Article or page title"
},
"author": {
"type": "string",
"description": "Author name if available"
},
"date": {
"type": "string",
"description": "Publication date if available"
},
"key_ideas": {
"type": "array",
"minItems": 1,
"items": { "type": "string" },
"description": "Key ideas extracted from the source"
},
"quotes": {
"type": "array",
"items": {
"type": "object",
"required": ["text"],
"properties": {
"text": {
"type": "string",
"description": "Direct quote from source"
},
"context": {
"type": "string",
"description": "Context for the quote"
}
}
},
"description": "Notable direct quotes"
},
"relevance_to_topic": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Relevance score (0-1)"
},
"source_type": {
"type": "string",
"enum": ["blog_post", "academic_paper", "documentation", "news_article", "conference_talk", "book_excerpt", "other"],
"description": "Type of source"
}
}
},
"description": "Web sources found and analyzed"
},
"search_queries": {
"type": "array",
"items": { "type": "string" },
"description": "Search queries that were executed"
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}