fix(ci): correct image digest separator

This commit is contained in:
2026-04-30 12:20:26 +02:00
parent 339de0769d
commit 6652303b3e
232 changed files with 22956 additions and 2 deletions

View File

@@ -0,0 +1,44 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ADR Context",
"description": "Contextual information gathered for an Architecture Decision Record",
"type": "object",
"required": ["decision_topic", "current_state", "constraints", "timestamp"],
"properties": {
"decision_topic": { "type": "string", "minLength": 5 },
"current_state": {
"type": "object",
"required": ["description"],
"properties": {
"description": { "type": "string", "minLength": 10 },
"affected_files": { "type": "array", "items": { "type": "string" } },
"affected_components": { "type": "array", "items": { "type": "string" } }
}
},
"constraints": {
"type": "array",
"items": {
"type": "object",
"required": ["type", "description"],
"properties": {
"type": { "type": "string", "enum": ["technical", "organizational", "timeline"] },
"description": { "type": "string", "minLength": 5 }
}
}
},
"precedents": {
"type": "array",
"items": {
"type": "object",
"required": ["description"],
"properties": {
"description": { "type": "string" },
"location": { "type": "string" },
"outcome": { "type": "string" }
}
}
},
"stakeholders": { "type": "array", "items": { "type": "string" } },
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ADR Options Analysis",
"description": "Analysis of options for an architectural decision",
"type": "object",
"required": ["decision_topic", "options", "recommendation", "timestamp"],
"properties": {
"decision_topic": { "type": "string", "minLength": 5 },
"options": {
"type": "array",
"minItems": 2,
"items": {
"type": "object",
"required": ["name", "description", "pros", "cons"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"description": { "type": "string", "minLength": 10 },
"pros": { "type": "array", "items": { "type": "string" } },
"cons": { "type": "array", "items": { "type": "string" } },
"effort": { "type": "string", "enum": ["trivial", "small", "medium", "large", "epic"] },
"risk": { "type": "string", "enum": ["low", "medium", "high"] },
"reversibility": { "type": "string", "enum": ["easy", "moderate", "difficult", "irreversible"] },
"compatibility": { "type": "string", "enum": ["high", "medium", "low"] }
}
}
},
"recommendation": {
"type": "object",
"required": ["option", "rationale", "confidence"],
"properties": {
"option": { "type": "string", "minLength": 1 },
"rationale": { "type": "string", "minLength": 20 },
"confidence": { "type": "string", "enum": ["high", "medium", "low"] }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,60 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Speckit Analysis Report",
"description": "Cross-artifact consistency and quality analysis report before implementation.",
"type": "object",
"required": ["total_requirements", "total_tasks", "coverage_percent", "can_proceed", "feature_dir", "summary"],
"properties": {
"total_requirements": {
"type": "integer",
"description": "Total number of requirements extracted from spec"
},
"total_tasks": {
"type": "integer",
"description": "Total number of tasks in the task breakdown"
},
"coverage_percent": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Percentage of requirements covered by tasks (0-100)"
},
"can_proceed": {
"type": "boolean",
"description": "Whether the feature is ready for implementation"
},
"feature_dir": {
"type": "string",
"minLength": 1,
"description": "Path to the feature directory"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief summary of the analysis findings"
},
"issues": {
"type": "object",
"properties": {
"critical": {
"type": "integer",
"description": "Number of critical severity issues"
},
"high": {
"type": "integer",
"description": "Number of high severity issues"
},
"medium": {
"type": "integer",
"description": "Number of medium severity issues"
},
"low": {
"type": "integer",
"description": "Number of low severity issues"
}
},
"description": "Issue counts grouped by severity level"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,84 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Audit Findings",
"description": "Output from the audit-items step: per-item fidelity classification with evidence",
"type": "object",
"required": ["findings", "summary", "timestamp"],
"properties": {
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["item_number", "item_type", "item_url", "title", "category", "evidence"],
"properties": {
"item_number": {
"type": "integer",
"minimum": 1,
"description": "Source issue or PR number"
},
"item_type": {
"type": "string",
"enum": ["issue", "pr"],
"description": "Whether the source item is an issue or PR"
},
"item_url": {
"type": "string",
"description": "Full GitHub URL for reference"
},
"title": {
"type": "string",
"minLength": 1,
"description": "Item title for readability"
},
"category": {
"type": "string",
"enum": ["verified", "partial", "regressed", "obsolete", "unverifiable"],
"description": "Fidelity classification"
},
"evidence": {
"type": "array",
"items": { "type": "string" },
"description": "File paths, code references, and commit SHAs supporting the classification"
},
"unmet_criteria": {
"type": "array",
"items": { "type": "string" },
"description": "Specific acceptance criteria not satisfied (for partial/regressed)"
},
"remediation": {
"type": "string",
"description": "Actionable description of what needs to change (empty for verified/obsolete)"
}
}
},
"description": "Per-item audit findings"
},
"summary": {
"type": "object",
"required": ["total_audited"],
"properties": {
"total_audited": {
"type": "integer",
"minimum": 0,
"description": "Total number of items audited"
},
"by_category": {
"type": "object",
"properties": {
"verified": { "type": "integer", "minimum": 0 },
"partial": { "type": "integer", "minimum": 0 },
"regressed": { "type": "integer", "minimum": 0 },
"obsolete": { "type": "integer", "minimum": 0 },
"unverifiable": { "type": "integer", "minimum": 0 }
},
"description": "Count of findings per fidelity category"
}
}
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the audit was performed"
}
}
}

View File

@@ -0,0 +1,116 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Audit Inventory",
"description": "Output from the collect-inventory step: all closed issues and merged PRs with extracted metadata",
"type": "object",
"required": ["scope", "items", "timestamp"],
"properties": {
"scope": {
"type": "object",
"required": ["mode"],
"properties": {
"mode": {
"type": "string",
"enum": ["full", "time_range", "label"],
"description": "How the inventory was scoped"
},
"filter": {
"type": "string",
"description": "The filter expression applied (e.g., 'last 30 days', 'label:enhancement')"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name (owner/repo)"
}
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": ["number", "type", "title", "url", "close_reason", "closed_at"],
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"description": "GitHub issue or PR number"
},
"type": {
"type": "string",
"enum": ["issue", "pr"],
"description": "Whether this is an issue or pull request"
},
"title": {
"type": "string",
"minLength": 1,
"description": "Issue or PR title"
},
"url": {
"type": "string",
"description": "Full GitHub URL"
},
"body": {
"type": "string",
"description": "Full issue/PR body text"
},
"labels": {
"type": "array",
"items": { "type": "string" },
"description": "Associated labels"
},
"close_reason": {
"type": "string",
"description": "Why the item was closed (completed, merged, not_planned)"
},
"closed_at": {
"type": "string",
"format": "date-time",
"description": "When the item was closed"
},
"linked_prs": {
"type": "array",
"items": { "type": "integer" },
"description": "PR numbers linked to this issue"
},
"linked_commits": {
"type": "array",
"items": { "type": "string" },
"description": "Commit SHAs associated with this item"
},
"acceptance_criteria": {
"type": "array",
"items": { "type": "string" },
"description": "Extracted acceptance criteria from the body"
}
}
},
"description": "All inventory items to audit"
},
"summary": {
"type": "object",
"properties": {
"total_issues": {
"type": "integer",
"minimum": 0,
"description": "Number of closed issues in inventory"
},
"total_prs": {
"type": "integer",
"minimum": 0,
"description": "Number of merged PRs in inventory"
},
"excluded_not_planned": {
"type": "integer",
"minimum": 0,
"description": "Number of issues excluded due to not_planned close reason"
}
}
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the inventory was collected"
}
}
}

View File

@@ -0,0 +1,80 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Audit Publish Result",
"description": "Output from the publish step: GitHub issue creation results for actionable findings",
"type": "object",
"required": ["success", "repository", "timestamp"],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the publish operation completed successfully"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name (owner/repo)"
},
"issues_created": {
"type": "array",
"items": {
"type": "object",
"required": ["number", "url", "source_item", "category"],
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"description": "Created GitHub issue number"
},
"url": {
"type": "string",
"description": "URL to the created issue"
},
"source_item": {
"type": "integer",
"minimum": 1,
"description": "Original issue/PR number that this finding references"
},
"category": {
"type": "string",
"enum": ["partial", "regressed"],
"description": "Fidelity category of the finding"
}
}
},
"description": "List of GitHub issues created for fixable gaps"
},
"issues_skipped": {
"type": "integer",
"minimum": 0,
"description": "Number of findings skipped (verified, obsolete, unverifiable, or no remediation)"
},
"skipped": {
"type": "boolean",
"description": "True if no issues were created because all findings are verified/obsolete"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": ["authentication_failed", "rate_limit_exceeded", "permission_denied", "network_error", "api_error", "unknown_error"],
"description": "Error code"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"retryable": {
"type": "boolean",
"description": "Whether the operation can be retried"
}
},
"description": "Error details (only present if success=false)"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Operation timestamp"
}
}
}

View File

@@ -0,0 +1,133 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Audit Triage Report",
"description": "Output from the compose-triage step: aggregated findings with prioritized action list",
"type": "object",
"required": ["metadata", "summary", "findings", "prioritized_actions"],
"properties": {
"metadata": {
"type": "object",
"required": ["scope", "timestamp", "repository", "total_items_audited"],
"properties": {
"scope": {
"type": "string",
"description": "Audit scope description (e.g., 'full', 'last 30 days', 'label:enhancement')"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the triage report was composed"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name (owner/repo)"
},
"total_items_audited": {
"type": "integer",
"minimum": 0,
"description": "Total number of items that were audited"
}
}
},
"summary": {
"type": "object",
"required": ["verified", "partial", "regressed", "obsolete", "unverifiable"],
"properties": {
"verified": {
"type": "integer",
"minimum": 0,
"description": "Items fully implemented and intact"
},
"partial": {
"type": "integer",
"minimum": 0,
"description": "Items with some acceptance criteria unmet"
},
"regressed": {
"type": "integer",
"minimum": 0,
"description": "Items that were implemented but later broken"
},
"obsolete": {
"type": "integer",
"minimum": 0,
"description": "Items no longer applicable to current codebase"
},
"unverifiable": {
"type": "integer",
"minimum": 0,
"description": "Items with no traceable implementation artifacts"
}
}
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["item_number", "item_type", "item_url", "title", "category", "evidence"],
"properties": {
"item_number": {
"type": "integer",
"minimum": 1,
"description": "Source issue or PR number"
},
"item_type": {
"type": "string",
"enum": ["issue", "pr"],
"description": "Whether the source item is an issue or PR"
},
"item_url": {
"type": "string",
"description": "Full GitHub URL"
},
"title": {
"type": "string",
"minLength": 1,
"description": "Item title"
},
"category": {
"type": "string",
"enum": ["verified", "partial", "regressed", "obsolete", "unverifiable"],
"description": "Fidelity classification"
},
"evidence": {
"type": "array",
"items": { "type": "string" },
"description": "Supporting evidence (file paths, code refs, commit SHAs)"
},
"remediation": {
"type": "string",
"description": "Actionable fix description"
}
}
},
"description": "All findings grouped by category (regressed first, then partial, then unverifiable, then obsolete, then verified)"
},
"prioritized_actions": {
"type": "array",
"items": {
"type": "object",
"required": ["priority", "item_number", "action_description"],
"properties": {
"priority": {
"type": "integer",
"minimum": 1,
"description": "Priority rank (1 = highest)"
},
"item_number": {
"type": "integer",
"minimum": 1,
"description": "Source issue or PR number"
},
"action_description": {
"type": "string",
"minLength": 1,
"description": "What needs to be done to resolve this finding"
}
}
},
"description": "Prioritized list of remediation actions (regressed first, then partial)"
}
}
}

View File

@@ -0,0 +1,69 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Bootstrap Project Assessment",
"type": "object",
"required": ["flavour", "project_intent", "existing_files", "scaffold_recommendations"],
"properties": {
"flavour": {
"type": "string",
"description": "Detected or configured project language/framework (e.g. go, rust, node, bun, python, csharp)"
},
"project_intent": {
"type": "string",
"description": "Description of the project's purpose derived from user input, README, or design docs"
},
"existing_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of files already present in the project directory"
},
"scaffold_recommendations": {
"type": "object",
"required": ["files_to_create", "build_system", "ci_provider"],
"properties": {
"files_to_create": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recommended files to scaffold for this flavour"
},
"build_system": {
"type": "string",
"description": "Recommended build system (e.g. cargo, go, npm, bun, pip, dotnet)"
},
"ci_provider": {
"type": "string",
"description": "CI provider to generate config for (e.g. github-actions)"
},
"gitignore_patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Patterns to include in .gitignore"
}
}
},
"wave_config": {
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "Value of project.language from wave.yaml if set"
},
"build_command": {
"type": "string",
"description": "Value of project.build_command from wave.yaml if set"
},
"test_command": {
"type": "string",
"description": "Value of project.test_command from wave.yaml if set"
}
},
"description": "Relevant configuration from wave.yaml"
}
}
}

View File

@@ -0,0 +1,55 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Categorized Changelog Changes",
"description": "Categorized and described changes for changelog generation",
"type": "object",
"required": ["version_label", "sections", "timestamp"],
"properties": {
"version_label": { "type": "string", "minLength": 1 },
"breaking_changes": {
"type": "array",
"items": {
"type": "object",
"required": ["description"],
"properties": {
"description": { "type": "string" },
"migration": { "type": "string" },
"related_commits": { "type": "array", "items": { "type": "string" } }
}
}
},
"sections": {
"type": "array",
"items": {
"type": "object",
"required": ["title", "type", "entries"],
"properties": {
"title": { "type": "string" },
"type": { "type": "string" },
"entries": {
"type": "array",
"items": {
"type": "object",
"required": ["description"],
"properties": {
"description": { "type": "string" },
"scope": { "type": "string" },
"commits": { "type": "array", "items": { "type": "string" } },
"notable": { "type": "boolean" }
}
}
}
}
}
},
"contributors": { "type": "array", "items": { "type": "string" } },
"stats": {
"type": "object",
"properties": {
"total_entries": { "type": "integer" },
"notable_entries": { "type": "integer" }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,36 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Speckit Checklist Status",
"description": "Status report from the checklist step: quality checklist generation for requirement validation.",
"type": "object",
"required": ["checklist_files", "total_items", "feature_dir", "summary"],
"properties": {
"checklist_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Paths to generated checklist files"
},
"total_items": {
"type": "integer",
"minimum": 0,
"description": "Total number of checklist items across all files"
},
"feature_dir": {
"type": "string",
"minLength": 1,
"description": "Path to the feature directory"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief description of the checklists generated"
},
"critical_gaps": {
"type": "integer",
"description": "Number of critical quality gaps identified"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,30 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Speckit Clarify Status",
"description": "Status report from the clarify step: ambiguity resolution and spec refinement.",
"type": "object",
"required": ["questions_asked", "answers_encoded", "feature_dir", "summary"],
"properties": {
"questions_asked": {
"type": "integer",
"minimum": 0,
"description": "Number of clarification questions identified"
},
"answers_encoded": {
"type": "integer",
"minimum": 0,
"description": "Number of clarifications resolved and encoded into the spec"
},
"feature_dir": {
"type": "string",
"minLength": 1,
"description": "Path to the feature directory"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief description of clarifications made"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,84 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Comment Result",
"description": "Result of posting research report as a GitHub issue comment",
"type": "object",
"required": ["success", "issue_reference", "timestamp"],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the comment was successfully posted"
},
"issue_reference": {
"type": "object",
"required": ["issue_number", "repository"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1,
"description": "Issue number that was commented on"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name"
},
"issue_url": {
"type": "string",
"format": "uri",
"description": "URL to the issue"
}
}
},
"comment": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"description": "GitHub comment ID"
},
"url": {
"type": "string",
"format": "uri",
"description": "Direct URL to the posted comment"
},
"body_length": {
"type": "integer",
"minimum": 0,
"description": "Length of the posted comment body in characters"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "When the comment was created"
}
},
"description": "Details of the posted comment (only present if success=true)"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": ["authentication_failed", "rate_limit_exceeded", "issue_not_found", "issue_locked", "permission_denied", "comment_too_long", "network_error", "api_error", "unknown_error"],
"description": "Error code"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"retryable": {
"type": "boolean",
"description": "Whether the operation can be retried"
}
},
"description": "Error details (only present if success=false)"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Operation timestamp"
}
}
}

View File

@@ -0,0 +1,53 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Commit Analysis",
"description": "Structured analysis of git commits for changelog generation",
"type": "object",
"required": ["range", "commits", "summary", "timestamp"],
"properties": {
"range": {
"type": "object",
"required": ["from", "to", "total_commits"],
"properties": {
"from": { "type": "string", "minLength": 1 },
"to": { "type": "string", "minLength": 1 },
"total_commits": { "type": "integer", "minimum": 0 },
"date_range": {
"type": "object",
"properties": {
"start": { "type": "string" },
"end": { "type": "string" }
}
}
}
},
"commits": {
"type": "array",
"items": {
"type": "object",
"required": ["hash", "date", "type", "subject"],
"properties": {
"hash": { "type": "string", "minLength": 4 },
"author": { "type": "string" },
"date": { "type": "string" },
"type": { "type": "string", "enum": ["feat", "fix", "docs", "refactor", "test", "chore", "perf", "ci", "other"] },
"scope": { "type": ["string", "null"] },
"subject": { "type": "string", "minLength": 1 },
"breaking": { "type": "boolean" },
"breaking_note": { "type": "string" }
}
}
},
"summary": {
"type": "object",
"required": ["by_type"],
"properties": {
"by_type": { "type": "object" },
"breaking_changes": { "type": "integer", "minimum": 0 },
"contributors": { "type": "array", "items": { "type": "string" } },
"most_changed_scopes": { "type": "array", "items": { "type": "string" } }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,81 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Convergent Proposals",
"description": "Prioritized simplification proposals from convergent thinking phase",
"type": "object",
"required": ["source_findings", "validation_summary", "proposals", "timestamp"],
"properties": {
"source_findings": {
"type": "object",
"required": ["total_reviewed", "confirmed", "partially_confirmed", "rejected"],
"properties": {
"total_reviewed": { "type": "integer" },
"confirmed": { "type": "integer" },
"partially_confirmed": { "type": "integer" },
"rejected": { "type": "integer" },
"rejection_reasons": {
"type": "array",
"items": {
"type": "object",
"required": ["finding_id", "reason"],
"properties": {
"finding_id": { "type": "string" },
"reason": { "type": "string" }
}
}
}
}
},
"validation_summary": {
"type": "string",
"description": "Narrative summary of the converge→diverge→converge validation process"
},
"proposals": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "title", "description", "source_findings", "impact", "effort", "risk", "tier", "files"],
"properties": {
"id": { "type": "string", "pattern": "^SMP-\\d{3}$" },
"title": { "type": "string" },
"description": { "type": "string" },
"source_findings": {
"type": "array",
"items": { "type": "string" },
"description": "DVG-xxx IDs this proposal addresses"
},
"impact": { "type": "string", "enum": ["high", "medium", "low"] },
"effort": { "type": "string", "enum": ["small", "medium", "large"] },
"risk": { "type": "string", "enum": ["low", "medium", "high"] },
"tier": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"description": "Priority tier: 1=do now, 2=do next, 3=consider later"
},
"files": {
"type": "array",
"items": { "type": "string" },
"description": "Files that would be modified"
},
"dependencies": {
"type": "array",
"items": { "type": "string" },
"description": "SMP-xxx IDs that must be applied first"
},
"lines_removed_estimate": { "type": "integer" },
"second_order_effects": {
"type": "array",
"items": { "type": "string" },
"description": "Insights discovered during deeper probing"
}
}
}
},
"eighty_twenty_analysis": {
"type": "string",
"description": "Which 20% of proposals yield 80% of the simplification benefit"
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["current_coverage", "uncovered_functions", "uncovered_branches", "edge_cases", "mock_requirements"],
"properties": {
"current_coverage": { "type": "string" },
"uncovered_functions": {
"type": "array",
"items": { "type": "string" }
},
"uncovered_branches": {
"type": "array",
"items": { "type": "string" }
},
"edge_cases": {
"type": "array",
"items": { "type": "string" }
},
"mock_requirements": {
"type": "array",
"items": { "type": "string" }
}
}
}

View File

@@ -0,0 +1,71 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Dead Code Issue Result",
"description": "Output from the create-issue step: GitHub issue creation result for dead code findings",
"type": "object",
"required": ["success", "repository", "timestamp"],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the issue was successfully created"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name (owner/repo)"
},
"issue": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"description": "GitHub issue number"
},
"url": {
"type": "string",
"format": "uri",
"description": "URL to the created issue"
},
"title": {
"type": "string",
"description": "Issue title"
},
"finding_count": {
"type": "integer",
"minimum": 0,
"description": "Number of dead code findings reported in the issue"
}
},
"description": "Details of the created issue (only present if success=true)"
},
"skipped": {
"type": "boolean",
"description": "True if no issue was created because no findings were found"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": ["authentication_failed", "rate_limit_exceeded", "permission_denied", "network_error", "api_error", "unknown_error"],
"description": "Error code"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"retryable": {
"type": "boolean",
"description": "Whether the operation can be retried"
}
},
"description": "Error details (only present if success=false)"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Operation timestamp"
}
}
}

View File

@@ -0,0 +1,47 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Dead Code Scan",
"description": "Scan results for dead or redundant code",
"type": "object",
"required": ["target", "findings", "summary", "timestamp"],
"properties": {
"target": { "type": "string", "minLength": 1 },
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "type", "location", "description", "confidence", "safe_to_remove"],
"properties": {
"id": { "type": "string", "pattern": "^DC-[0-9]{1,4}$" },
"type": {
"type": "string",
"enum": ["unused_export", "unreachable", "orphaned_file", "redundant", "stale_test", "unused_import", "commented_code", "duplicate_signature"]
},
"location": { "type": "string", "minLength": 1 },
"symbol": { "type": "string" },
"description": { "type": "string", "minLength": 5 },
"evidence": { "type": "string" },
"confidence": { "type": "string", "enum": ["high", "medium", "low"] },
"safe_to_remove": { "type": "boolean" },
"removal_note": { "type": "string" },
"suggested_action": {
"type": "string",
"enum": ["remove", "consolidate", "investigate"],
"description": "Recommended action for this finding"
}
}
}
},
"summary": {
"type": "object",
"required": ["total_findings"],
"properties": {
"total_findings": { "type": "integer", "minimum": 0 },
"by_type": { "type": "object" },
"high_confidence_count": { "type": "integer", "minimum": 0 },
"estimated_lines_removable": { "type": "integer", "minimum": 0 }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,48 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["verdict", "items_removed", "items_skipped", "lines_removed", "test_status", "summary"],
"properties": {
"verdict": {
"type": "string",
"const": "CLEAN",
"description": "Must be CLEAN for the pipeline to proceed. Output NEEDS_REVIEW to intentionally fail contract validation and halt the pipeline."
},
"items_removed": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "description", "justification"],
"properties": {
"id": { "type": "string" },
"description": { "type": "string" },
"justification": { "type": "string" }
}
}
},
"items_skipped": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "description", "reason"],
"properties": {
"id": { "type": "string" },
"description": { "type": "string" },
"reason": { "type": "string" }
}
}
},
"lines_removed": {
"type": "integer",
"minimum": 0
},
"test_status": {
"type": "string",
"enum": ["passing", "failing", "not_run"]
},
"summary": {
"type": "string",
"description": "Human-readable summary of the verification"
}
}
}

View File

@@ -0,0 +1,22 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["hypotheses"],
"properties": {
"hypotheses": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "description", "likelihood", "test_approach"],
"properties": {
"id": { "type": "integer" },
"description": { "type": "string", "minLength": 1 },
"likelihood": { "type": "string", "enum": ["high", "medium", "low"] },
"test_approach": { "type": "string", "minLength": 1 },
"expected_result_if_true": { "type": "string" }
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["expected_behavior", "actual_behavior", "reproduction_steps", "relevant_files"],
"properties": {
"expected_behavior": { "type": "string", "minLength": 1 },
"actual_behavior": { "type": "string", "minLength": 1 },
"reproduction_steps": {
"type": "array",
"items": { "type": "string" }
},
"relevant_files": {
"type": "array",
"items": { "type": "string" }
},
"environmental_factors": {
"type": "array",
"items": { "type": "string" }
}
}
}

View File

@@ -0,0 +1,41 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["pr_metadata", "files_changed", "modules_affected", "related_tests", "breaking_changes"],
"properties": {
"pr_metadata": {
"type": "object",
"required": ["number", "url", "head_branch", "base_branch"],
"properties": {
"number": { "type": "integer", "description": "PR number" },
"url": { "type": "string", "description": "Full PR URL" },
"head_branch": { "type": "string", "description": "Source branch name" },
"base_branch": { "type": "string", "description": "Target branch name" }
}
},
"files_changed": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "change_type", "purpose"],
"properties": {
"path": { "type": "string" },
"change_type": { "type": "string", "enum": ["added", "modified", "deleted"] },
"purpose": { "type": "string" }
}
}
},
"modules_affected": {
"type": "array",
"items": { "type": "string" }
},
"related_tests": {
"type": "array",
"items": { "type": "string" }
},
"breaking_changes": {
"type": "array",
"items": { "type": "string" }
}
}
}

View File

@@ -0,0 +1,82 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Divergent Findings",
"description": "Broad-net findings from divergent thinking phase of the recinq pipeline",
"type": "object",
"required": ["scope", "findings", "metrics_summary", "timestamp"],
"properties": {
"scope": {
"type": "object",
"required": ["target", "files_scanned", "total_lines"],
"properties": {
"target": { "type": "string", "description": "What was analyzed (path, module, or 'whole-project')" },
"files_scanned": { "type": "integer" },
"total_lines": { "type": "integer" }
}
},
"findings": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "category", "title", "description", "evidence", "severity"],
"properties": {
"id": { "type": "string", "pattern": "^DVG-\\d{3}$" },
"category": {
"type": "string",
"enum": [
"premature_abstraction",
"unnecessary_indirection",
"overengineering",
"yagni_violation",
"accidental_complexity",
"copy_paste_drift",
"dead_weight",
"naming_lie",
"dependency_gravity",
"missing_abstraction",
"other"
]
},
"title": { "type": "string" },
"description": { "type": "string" },
"evidence": {
"type": "object",
"required": ["files"],
"properties": {
"files": { "type": "array", "items": { "type": "string" } },
"line_count": { "type": "integer" },
"reference_count": { "type": "integer" },
"change_frequency": { "type": "integer" },
"metrics": { "type": "string" }
}
},
"severity": {
"type": "string",
"enum": ["critical", "high", "medium", "low"]
},
"confidence": {
"type": "string",
"enum": ["high", "medium", "low"],
"description": "How confident the provocateur is in this finding"
}
}
}
},
"metrics_summary": {
"type": "object",
"required": ["total_findings"],
"properties": {
"total_findings": { "type": "integer" },
"by_category": { "type": "object", "additionalProperties": { "type": "integer" } },
"by_severity": { "type": "object", "additionalProperties": { "type": "integer" } },
"hotspot_files": {
"type": "array",
"items": { "type": "string" },
"description": "Files appearing in multiple findings"
}
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,87 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Documentation Consistency Report",
"description": "Output from the analyze-consistency step: list of inconsistencies between code and documentation",
"type": "object",
"required": ["summary", "inconsistencies", "timestamp"],
"properties": {
"summary": {
"type": "object",
"required": ["total_count", "by_severity"],
"properties": {
"total_count": {
"type": "integer",
"minimum": 0,
"description": "Total number of inconsistencies found"
},
"by_severity": {
"type": "object",
"properties": {
"critical": { "type": "integer", "minimum": 0 },
"high": { "type": "integer", "minimum": 0 },
"medium": { "type": "integer", "minimum": 0 },
"low": { "type": "integer", "minimum": 0 }
},
"description": "Count of inconsistencies by severity level"
},
"clean": {
"type": "boolean",
"description": "True if no inconsistencies were found"
}
}
},
"inconsistencies": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "severity", "category", "title", "description", "source_location", "doc_location"],
"properties": {
"id": {
"type": "string",
"pattern": "^DOC-[0-9]{1,4}$",
"description": "Unique inconsistency ID (DOC-001, DOC-002, etc.)"
},
"severity": {
"type": "string",
"enum": ["critical", "high", "medium", "low"],
"description": "Severity of the inconsistency"
},
"category": {
"type": "string",
"enum": ["cli_flags", "personas", "pipelines", "contracts", "env_vars", "api", "stale_reference", "missing_docs", "other"],
"description": "Category of the inconsistency"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Short title describing the inconsistency"
},
"description": {
"type": "string",
"minLength": 1,
"description": "Detailed description of the inconsistency and what needs to change"
},
"source_location": {
"type": "string",
"description": "File and line where the source of truth is (code, pipeline, etc.)"
},
"doc_location": {
"type": "string",
"description": "File and section where the documentation is stale or missing"
},
"fix_description": {
"type": "string",
"description": "What specifically needs to be updated"
}
}
},
"description": "List of documentation inconsistencies"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the analysis was performed"
}
}
}

View File

@@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Doc Fix Scan Results",
"description": "Documentation inconsistency scan for doc-fix pipeline",
"type": "object",
"required": ["scan_scope", "findings", "summary", "timestamp"],
"properties": {
"scan_scope": { "type": "string", "minLength": 1 },
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "type", "severity", "title", "description"],
"properties": {
"id": { "type": "string", "pattern": "^DOC-[0-9]{1,4}$" },
"type": { "type": "string", "enum": ["MISSING_DOCS", "STALE_DOCS", "INACCURATE", "INCOMPLETE"] },
"severity": { "type": "string", "enum": ["CRITICAL", "HIGH", "MEDIUM", "LOW"] },
"title": { "type": "string", "minLength": 3 },
"doc_location": { "type": "string" },
"code_location": { "type": "string" },
"description": { "type": "string", "minLength": 10 },
"suggested_fix": { "type": "string" }
}
}
},
"summary": {
"type": "object",
"required": ["total_findings"],
"properties": {
"total_findings": { "type": "integer", "minimum": 0 },
"by_type": { "type": "object" },
"by_severity": { "type": "object" },
"fixable_count": { "type": "integer", "minimum": 0 }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,71 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Documentation Issue Result",
"description": "Output from the create-issue step: GitHub issue creation result",
"type": "object",
"required": ["success", "repository", "timestamp"],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the issue was successfully created"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name (owner/repo)"
},
"issue": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"description": "GitHub issue number"
},
"url": {
"type": "string",
"format": "uri",
"description": "URL to the created issue"
},
"title": {
"type": "string",
"description": "Issue title"
},
"inconsistency_count": {
"type": "integer",
"minimum": 0,
"description": "Number of inconsistencies reported in the issue"
}
},
"description": "Details of the created issue (only present if success=true)"
},
"skipped": {
"type": "boolean",
"description": "True if no issue was created because no inconsistencies were found"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"enum": ["authentication_failed", "rate_limit_exceeded", "permission_denied", "network_error", "api_error", "unknown_error"],
"description": "Error code"
},
"message": {
"type": "string",
"description": "Human-readable error message"
},
"retryable": {
"type": "boolean",
"description": "Whether the operation can be retried"
}
},
"description": "Error details (only present if success=false)"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Operation timestamp"
}
}
}

View File

@@ -0,0 +1,112 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Documentation Scan Results",
"description": "Output from the scan-changes step: changed files and current documentation state snapshot",
"type": "object",
"required": ["scan_scope", "changed_files", "documentation_snapshot", "timestamp"],
"properties": {
"scan_scope": {
"type": "object",
"required": ["mode", "range"],
"properties": {
"mode": {
"type": "string",
"enum": ["diff", "full"],
"description": "Whether this was a diff-based or full scan"
},
"range": {
"type": "string",
"description": "Git range used for diff (e.g. 'main...HEAD') or 'full' for full scan"
},
"base_ref": {
"type": "string",
"description": "Base reference for comparison"
}
}
},
"changed_files": {
"type": "object",
"required": ["total_count", "categories"],
"properties": {
"total_count": {
"type": "integer",
"minimum": 0,
"description": "Total number of changed files"
},
"categories": {
"type": "object",
"properties": {
"go_code": {
"type": "array",
"items": { "type": "string" },
"description": "Changed Go source files"
},
"cli_commands": {
"type": "array",
"items": { "type": "string" },
"description": "Changed CLI command files (cmd/wave/commands/)"
},
"pipelines": {
"type": "array",
"items": { "type": "string" },
"description": "Changed pipeline definitions"
},
"personas": {
"type": "array",
"items": { "type": "string" },
"description": "Changed persona definitions"
},
"contracts": {
"type": "array",
"items": { "type": "string" },
"description": "Changed contract schemas"
},
"documentation": {
"type": "array",
"items": { "type": "string" },
"description": "Changed documentation files (docs/, README.md, CLAUDE.md, etc.)"
},
"other": {
"type": "array",
"items": { "type": "string" },
"description": "Other changed files"
}
}
}
}
},
"documentation_snapshot": {
"type": "object",
"required": ["files"],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "exists"],
"properties": {
"path": {
"type": "string",
"description": "Path to the documentation file"
},
"exists": {
"type": "boolean",
"description": "Whether the file exists"
},
"summary": {
"type": "string",
"description": "Brief summary of the file's content and key sections"
}
}
},
"description": "Key documentation files and their current state"
}
}
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the scan was performed"
}
}
}

View File

@@ -0,0 +1,112 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schema.recinq.com/wave/docs-phase.schema.json",
"title": "Wave Docs Phase Output Contract",
"description": "Validates docs phase outputs for prototype-driven development pipeline",
"type": "object",
"properties": {
"phase": {
"type": "string",
"const": "docs",
"description": "Phase identifier"
},
"artifacts": {
"type": "object",
"properties": {
"feature_docs": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*feature-docs\\.md$",
"description": "Path to feature documentation file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Feature documentation file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Documentation content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
},
"stakeholder_summary": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*stakeholder-summary\\.md$",
"description": "Path to stakeholder summary file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Stakeholder summary file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Summary content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
}
},
"required": ["feature_docs", "stakeholder_summary"],
"additionalProperties": true
},
"validation": {
"type": "object",
"properties": {
"coverage_percentage": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Specification coverage in documentation"
},
"readability_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Documentation readability rating"
},
"documentation_quality": {
"type": "string",
"enum": ["poor", "fair", "good", "excellent"],
"description": "Overall documentation quality assessment"
}
},
"required": ["documentation_quality"],
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When docs phase was completed"
},
"duration_seconds": {
"type": "number",
"minimum": 0,
"description": "Time taken for docs phase"
},
"source_spec_path": {
"type": "string",
"description": "Path to source specification file"
}
},
"required": ["timestamp", "source_spec_path"],
"additionalProperties": false
}
},
"required": ["phase", "artifacts", "validation", "metadata"],
"additionalProperties": false
}

View File

@@ -0,0 +1,110 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schema.recinq.com/wave/dummy-phase.schema.json",
"title": "Wave Dummy Phase Output Contract",
"description": "Validates dummy phase outputs for prototype-driven development pipeline",
"type": "object",
"properties": {
"phase": {
"type": "string",
"const": "dummy",
"description": "Phase identifier"
},
"artifacts": {
"type": "object",
"properties": {
"prototype": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*prototype/?$",
"description": "Path to prototype directory"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Prototype directory must exist"
},
"content_type": {
"type": "string",
"const": "code",
"description": "Prototype content type"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
},
"interface_definitions": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*interfaces\\.md$",
"description": "Path to interface definitions file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Interface definitions file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Interface definitions content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
}
},
"required": ["prototype", "interface_definitions"],
"additionalProperties": true
},
"validation": {
"type": "object",
"properties": {
"runnable": {
"type": "boolean",
"description": "Whether the prototype can be executed"
},
"interface_completeness": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Percentage of interfaces stubbed"
},
"prototype_quality": {
"type": "string",
"enum": ["poor", "fair", "good", "excellent"],
"description": "Overall prototype quality assessment"
}
},
"required": ["runnable", "prototype_quality"],
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When dummy phase was completed"
},
"duration_seconds": {
"type": "number",
"minimum": 0,
"description": "Time taken for dummy phase"
},
"source_docs_path": {
"type": "string",
"description": "Path to source documentation file"
}
},
"required": ["timestamp", "source_docs_path"],
"additionalProperties": false
}
},
"required": ["phase", "artifacts", "validation", "metadata"],
"additionalProperties": false
}

View File

@@ -0,0 +1,69 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Enhancement Plan",
"description": "Schema for GitHub issue enhancement recommendations",
"type": "object",
"required": ["repository", "issues_to_enhance"],
"properties": {
"repository": {
"type": "string",
"description": "Repository in owner/repo format"
},
"issues_to_enhance": {
"type": "array",
"items": {
"type": "object",
"required": ["issue_number", "enhancements"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"current_title": {
"type": "string"
},
"suggested_title": {
"type": "string"
},
"current_body": {
"type": "string"
},
"body_template": {
"type": ["string", "null"],
"description": "Enhanced body template preserving original content"
},
"suggested_labels": {
"type": "array",
"items": {
"type": "string"
}
},
"enhancements": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "List of specific enhancements to apply"
},
"rationale": {
"type": "string",
"description": "Why these enhancements are recommended"
},
"priority": {
"type": "string",
"enum": ["high", "medium", "low"]
}
}
}
},
"total_to_enhance": {
"type": "integer",
"minimum": 0
},
"enhancement_strategy": {
"type": "string",
"description": "Overall strategy for enhancements"
}
}
}

View File

@@ -0,0 +1,71 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Enhancement Results",
"description": "Schema for GitHub issue enhancement execution results",
"type": "object",
"required": ["enhanced_issues", "total_attempted", "total_successful"],
"properties": {
"enhanced_issues": {
"type": "array",
"items": {
"type": "object",
"required": ["issue_number", "success", "changes_made", "url"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"success": {
"type": "boolean"
},
"changes_made": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of changes successfully applied"
},
"title_updated": {
"type": "boolean"
},
"body_updated": {
"type": "boolean"
},
"labels_added": {
"type": "array",
"items": {
"type": "string"
}
},
"comment_added": {
"type": "boolean"
},
"error": {
"type": "string",
"description": "Error message if enhancement failed"
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"total_attempted": {
"type": "integer",
"minimum": 0
},
"total_successful": {
"type": "integer",
"minimum": 0
},
"total_failed": {
"type": "integer",
"minimum": 0
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}

View File

@@ -0,0 +1,87 @@
{
"$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"
}
}
}
}
}

View File

@@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Epic Children",
"description": "Schema for the list of open child issue URLs belonging to an epic",
"type": "object",
"required": ["parent_url", "repo", "child_urls"],
"properties": {
"parent_url": {
"type": "string",
"format": "uri",
"description": "URL of the parent epic issue"
},
"repo": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository in owner/repo format"
},
"child_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"minItems": 1,
"description": "URLs of open child issues to implement"
}
}
}

View File

@@ -0,0 +1,49 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Epic Implementation Report",
"description": "Output from the report step of ops-implement-epic: implementation status for each subissue",
"type": "object",
"required": ["parent_issue", "results", "summary"],
"properties": {
"parent_issue": {
"type": "object",
"required": ["owner", "repo", "number", "url"],
"properties": {
"owner": { "type": "string" },
"repo": { "type": "string" },
"number": { "type": "integer", "minimum": 1 },
"url": { "type": "string", "format": "uri" }
},
"additionalProperties": false
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": ["number", "title", "status"],
"properties": {
"number": { "type": "integer", "minimum": 1 },
"title": { "type": "string" },
"status": { "type": "string", "enum": ["implemented", "failed", "skipped"] },
"pr_url": { "type": "string" },
"pr_number": { "type": "integer" }
},
"additionalProperties": false
}
},
"summary": {
"type": "object",
"required": ["total_subissues", "implemented", "failed", "skipped"],
"properties": {
"total_subissues": { "type": "integer", "minimum": 0 },
"implemented": { "type": "integer", "minimum": 0 },
"failed": { "type": "integer", "minimum": 0 },
"skipped": { "type": "integer", "minimum": 0 },
"comment_posted": { "type": "boolean" },
"comment_url": { "type": "string" }
},
"additionalProperties": false
}
},
"additionalProperties": false
}

View File

@@ -0,0 +1,52 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Epic Scope Plan",
"description": "Output from the fetch-scope step of ops-implement-epic: parsed subissues with dependency graph",
"type": "object",
"required": ["parent_issue", "subissues", "total_subissues", "open_subissues"],
"properties": {
"parent_issue": {
"type": "object",
"required": ["owner", "repo", "number", "title", "url"],
"properties": {
"owner": { "type": "string" },
"repo": { "type": "string" },
"number": { "type": "integer", "minimum": 1 },
"title": { "type": "string", "minLength": 1 },
"url": { "type": "string", "format": "uri" }
},
"additionalProperties": false
},
"subissues": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["number", "repository", "title", "url", "state", "dependencies"],
"properties": {
"number": { "type": "integer", "minimum": 1 },
"repository": { "type": "string", "pattern": "^[^/]+/[^/]+$" },
"title": { "type": "string", "minLength": 1 },
"url": { "type": "string", "format": "uri" },
"state": { "type": "string", "enum": ["OPEN", "CLOSED"] },
"complexity": { "type": "string", "enum": ["S", "M", "L", "XL"] },
"dependencies": {
"type": "array",
"items": { "type": "integer", "minimum": 1 }
}
},
"additionalProperties": false
}
},
"total_subissues": { "type": "integer", "minimum": 1 },
"open_subissues": { "type": "integer", "minimum": 0 },
"dependency_tiers": {
"type": "array",
"items": {
"type": "array",
"items": { "type": "integer", "minimum": 1 }
}
}
},
"additionalProperties": false
}

View File

@@ -0,0 +1,76 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Code Architecture Analysis",
"description": "Architecture and design analysis of explored code",
"type": "object",
"required": ["topic", "patterns", "timestamp"],
"properties": {
"topic": { "type": "string", "minLength": 3 },
"patterns": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "where", "why"],
"properties": {
"name": { "type": "string" },
"where": { "type": "string" },
"why": { "type": "string" },
"quality": { "type": "string", "enum": ["well-implemented", "adequate", "needs-improvement"] }
}
}
},
"data_flow": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"stages": { "type": "array", "items": { "type": "string" } },
"key_transformations": { "type": "array", "items": { "type": "string" } }
}
}
},
"error_handling": {
"type": "object",
"properties": {
"strategy": { "type": "string" },
"patterns": { "type": "array", "items": { "type": "string" } },
"gaps": { "type": "array", "items": { "type": "string" } }
}
},
"concurrency": {
"type": "object",
"properties": {
"model": { "type": "string" },
"primitives": { "type": "array", "items": { "type": "string" } },
"risks": { "type": "array", "items": { "type": "string" } }
}
},
"extension_points": {
"type": "array",
"items": {
"type": "object",
"required": ["interface", "file"],
"properties": {
"interface": { "type": "string" },
"file": { "type": "string" },
"purpose": { "type": "string" }
}
}
},
"design_decisions": {
"type": "array",
"items": {
"type": "object",
"required": ["decision"],
"properties": {
"decision": { "type": "string" },
"rationale": { "type": "string" },
"trade_offs": { "type": "string" }
}
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,62 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Explain Exploration Results",
"description": "Structured exploration of a codebase topic for explanation",
"type": "object",
"required": ["topic", "entry_points", "key_types", "timestamp"],
"properties": {
"topic": { "type": "string", "minLength": 1 },
"entry_points": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["file", "symbol", "role"],
"properties": {
"file": { "type": "string", "minLength": 1 },
"symbol": { "type": "string", "minLength": 1 },
"role": { "type": "string", "minLength": 1 },
"line": { "type": "integer", "minimum": 1 }
}
}
},
"key_types": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "file", "purpose"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"file": { "type": "string", "minLength": 1 },
"purpose": { "type": "string", "minLength": 1 },
"methods": { "type": "array", "items": { "type": "string" } },
"relationships": { "type": "array", "items": { "type": "string" } }
}
}
},
"call_flows": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "steps"],
"properties": {
"name": { "type": "string" },
"steps": { "type": "array", "items": { "type": "string" } },
"description": { "type": "string" }
}
}
},
"dependencies": {
"type": "object",
"properties": {
"depends_on": { "type": "array", "items": { "type": "string" } },
"depended_by": { "type": "array", "items": { "type": "string" } },
"external": { "type": "array", "items": { "type": "string" } }
}
},
"test_files": { "type": "array", "items": { "type": "string" } },
"config_points": { "type": "array", "items": { "type": "string" } },
"file_count": { "type": "integer", "minimum": 0 },
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,52 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Feature Exploration",
"description": "Codebase exploration for feature implementation",
"type": "object",
"required": ["feature", "scope", "related_files", "timestamp"],
"properties": {
"feature": { "type": "string", "minLength": 1 },
"scope": { "type": "string", "enum": ["small", "medium", "large"] },
"related_files": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["path", "relevance", "reason"],
"properties": {
"path": { "type": "string", "minLength": 1 },
"relevance": { "type": "string", "enum": ["primary", "secondary"] },
"reason": { "type": "string", "minLength": 1 },
"key_symbols": { "type": "array", "items": { "type": "string" } }
}
}
},
"patterns_to_follow": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"example_file": { "type": "string" },
"relevance": { "type": "string", "enum": ["must_follow", "should_follow"] }
}
}
},
"affected_modules": { "type": "array", "items": { "type": "string" } },
"test_files": { "type": "array", "items": { "type": "string" } },
"risks": {
"type": "array",
"items": {
"type": "object",
"required": ["description", "severity"],
"properties": {
"description": { "type": "string" },
"severity": { "type": "string", "enum": ["high", "medium", "low"] },
"mitigation": { "type": "string" }
}
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,33 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Feature Implementation Plan",
"description": "Ordered implementation plan for a feature",
"type": "object",
"required": ["feature", "steps", "total_complexity", "timestamp"],
"properties": {
"feature": { "type": "string", "minLength": 5 },
"steps": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "title", "description"],
"properties": {
"id": { "type": "string", "pattern": "^S\\d{2}$" },
"title": { "type": "string" },
"description": { "type": "string" },
"files_to_modify": { "type": "array", "items": { "type": "string" } },
"files_to_create": { "type": "array", "items": { "type": "string" } },
"tests_to_write": { "type": "array", "items": { "type": "string" } },
"acceptance_criteria": { "type": "array", "items": { "type": "string" } },
"complexity": { "type": "string", "enum": ["S", "M", "L"] },
"dependencies": { "type": "array", "items": { "type": "string" } }
}
}
},
"total_complexity": { "type": "string", "enum": ["S", "M", "L", "XL"] },
"branch_name_suggestion": { "type": "string" },
"commit_message_suggestion": { "type": "string" },
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Investigation Findings",
"type": "object",
"required": [
"root_cause",
"affected_files",
"fix_approach"
],
"properties": {
"root_cause": {
"type": "string",
"description": "Description of the root cause"
},
"affected_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of affected file paths"
},
"recent_commits": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of relevant commit hashes"
},
"blast_radius": {
"type": "string",
"description": "Assessment of what else could be affected"
},
"fix_approach": {
"type": "string",
"description": "Recommended approach to fix the issue"
}
}
}

View File

@@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Gap Analysis",
"description": "Ontology vs. code comparison identifying implementation gaps",
"type": "object",
"required": ["ontology_version", "gaps", "coverage"],
"properties": {
"ontology_version": {
"type": "string"
},
"gaps": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "type", "entity", "description", "severity"],
"properties": {
"id": { "type": "string", "pattern": "^GAP-[0-9]+$" },
"type": { "type": "string", "enum": ["missing_entity", "missing_relationship", "missing_invariant", "partial_implementation", "stale_code", "undocumented_behavior"] },
"entity": { "type": "string" },
"description": { "type": "string" },
"severity": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
"code_locations": { "type": "array", "items": { "type": "string" } },
"recommendation": { "type": "string" }
}
}
},
"coverage": {
"type": "object",
"required": ["entities_covered", "entities_total", "percentage"],
"properties": {
"entities_covered": { "type": "integer", "minimum": 0 },
"entities_total": { "type": "integer", "minimum": 0 },
"percentage": { "type": "number", "minimum": 0, "maximum": 100 }
}
}
}
}

View File

@@ -0,0 +1,33 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Gate Result",
"description": "Gate step resolution metadata",
"type": "object",
"required": ["gate_type", "status", "resolved_at"],
"properties": {
"gate_type": {
"type": "string",
"enum": ["approval", "pr_merge", "ci_pass", "timer"]
},
"status": {
"type": "string",
"enum": ["approved", "rejected", "timed_out", "merged", "checks_passed", "checks_failed"]
},
"resolved_at": {
"type": "string",
"format": "date-time"
},
"resolved_by": {
"type": "string",
"description": "User or system that resolved the gate"
},
"wait_duration_seconds": {
"type": "number",
"minimum": 0
},
"metadata": {
"type": "object",
"description": "Gate-type-specific metadata (PR number, check suite ID, etc.)"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub PR Comment Result",
"description": "Result of posting a code review comment on a GitHub pull request",
"type": "object",
"required": ["comment_url", "pr_number"],
"properties": {
"comment_url": {
"type": "string",
"format": "uri",
"description": "URL to the posted review comment"
},
"pr_number": {
"type": "integer",
"minimum": 1,
"description": "PR number that was reviewed"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Repository full name (owner/repo)"
},
"summary": {
"type": "string",
"description": "Brief summary of the review"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,65 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Enhancement Plan",
"description": "Schema for GitHub issue enhancement recommendations",
"type": "object",
"required": ["issues_to_enhance"],
"properties": {
"issues_to_enhance": {
"type": "array",
"items": {
"type": "object",
"required": ["issue_number", "enhancements"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"current_title": {
"type": "string"
},
"suggested_title": {
"type": "string"
},
"current_body": {
"type": "string"
},
"body_template": {
"type": ["string", "null"],
"description": "Enhanced body template preserving original content"
},
"suggested_labels": {
"type": "array",
"items": {
"type": "string"
}
},
"enhancements": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "List of specific enhancements to apply"
},
"rationale": {
"type": "string",
"description": "Why these enhancements are recommended"
},
"priority": {
"type": "string",
"enum": ["high", "medium", "low"]
}
}
}
},
"total_to_enhance": {
"type": "integer",
"minimum": 0
},
"enhancement_strategy": {
"type": "string",
"description": "Overall strategy for enhancements"
}
}
}

View File

@@ -0,0 +1,71 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Enhancement Results",
"description": "Schema for GitHub issue enhancement execution results",
"type": "object",
"required": ["enhanced_issues", "total_attempted", "total_successful"],
"properties": {
"enhanced_issues": {
"type": "array",
"items": {
"type": "object",
"required": ["issue_number", "success", "changes_made", "url"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"success": {
"type": "boolean"
},
"changes_made": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of changes successfully applied"
},
"title_updated": {
"type": "boolean"
},
"body_updated": {
"type": "boolean"
},
"labels_added": {
"type": "array",
"items": {
"type": "string"
}
},
"comment_added": {
"type": "boolean"
},
"error": {
"type": "string",
"description": "Error message if enhancement failed"
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"total_attempted": {
"type": "integer",
"minimum": 0
},
"total_successful": {
"type": "integer",
"minimum": 0
},
"total_failed": {
"type": "integer",
"minimum": 0
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}

View File

@@ -0,0 +1,86 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Analysis",
"description": "Schema for GitHub issue quality analysis results",
"type": "object",
"required": ["repository", "total_issues", "poor_quality_issues"],
"properties": {
"repository": {
"type": "object",
"required": ["owner", "name"],
"properties": {
"owner": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
}
}
},
"total_issues": {
"type": "integer",
"minimum": 0
},
"analyzed_count": {
"type": "integer",
"minimum": 0
},
"poor_quality_issues": {
"type": "array",
"items": {
"type": "object",
"required": ["number", "title", "quality_score", "problems"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"quality_score": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"recommendations": {
"type": "array",
"items": {
"type": "string"
}
},
"labels": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"quality_threshold": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}

View File

@@ -0,0 +1,87 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Enhancement Verification Report",
"description": "Schema for verifying GitHub issue enhancements were applied",
"type": "object",
"required": ["total_enhanced", "successful_enhancements", "failed_enhancements"],
"properties": {
"total_enhanced": {
"type": "integer",
"minimum": 0
},
"successful_enhancements": {
"type": "array",
"items": {
"type": "object",
"required": ["issue_number", "verified_changes"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"verified_changes": {
"type": "array",
"items": {
"type": "string"
}
},
"quality_score_before": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"quality_score_after": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"failed_enhancements": {
"type": "array",
"items": {
"type": "object",
"required": ["issue_number", "problems"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"quality_improvement": {
"type": "object",
"properties": {
"average_score_before": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"average_score_after": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"improvement_percentage": {
"type": "number"
}
}
},
"summary": {
"type": "string",
"description": "Human-readable summary of verification results"
}
}
}

View File

@@ -0,0 +1,26 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Hello World Result",
"description": "Verification result from the hello-world verify step",
"type": "object",
"required": ["success", "message"],
"properties": {
"success": {
"type": "boolean",
"description": "Whether the hello-world pipeline completed successfully"
},
"message": {
"type": "string",
"description": "Human-readable verification result"
},
"checks": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "Optional list of individual verification checks performed"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,138 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schema.recinq.com/wave/implement-phase.schema.json",
"title": "Wave Implement Phase Output Contract",
"description": "Validates implementation phase outputs for prototype-driven development pipeline",
"type": "object",
"properties": {
"phase": {
"type": "string",
"const": "implement",
"description": "Phase identifier"
},
"artifacts": {
"type": "object",
"properties": {
"implementation_plan": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*implementation-plan\\.md$",
"description": "Path to implementation plan file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Implementation plan file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Implementation plan content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
},
"progress_checklist": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*implementation-checklist\\.md$",
"description": "Path to progress checklist file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Progress checklist file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Checklist content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
}
},
"required": ["implementation_plan", "progress_checklist"],
"additionalProperties": true
},
"validation": {
"type": "object",
"properties": {
"tests_executed": {
"type": "boolean",
"description": "Whether test suite was executed"
},
"test_results": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"minimum": 0,
"description": "Total number of tests"
},
"passed": {
"type": "integer",
"minimum": 0,
"description": "Number of tests that passed"
},
"failed": {
"type": "integer",
"minimum": 0,
"description": "Number of tests that failed"
},
"coverage_percent": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Test coverage percentage"
}
},
"required": ["total", "passed", "failed"],
"additionalProperties": false
},
"implementation_readiness": {
"type": "string",
"enum": ["ready", "partial", "needs_work"],
"description": "Assessment of implementation readiness"
}
},
"required": ["tests_executed", "implementation_readiness"],
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When implementation phase was completed"
},
"duration_seconds": {
"type": "number",
"minimum": 0,
"description": "Time taken for implementation phase"
},
"previous_phases": {
"type": "array",
"items": {
"type": "string",
"enum": ["spec", "docs", "dummy"]
},
"minItems": 3,
"maxItems": 3,
"description": "Previous phases that fed into this implementation"
}
},
"required": ["timestamp", "previous_phases"],
"additionalProperties": false
}
},
"required": ["phase", "artifacts", "validation", "metadata"],
"additionalProperties": false
}

View File

@@ -0,0 +1,44 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Improvement Assessment",
"description": "Structured assessment of code improvement opportunities",
"type": "object",
"required": ["target", "findings", "summary", "timestamp"],
"properties": {
"target": { "type": "string", "minLength": 1 },
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "category", "title", "location", "description", "impact", "effort"],
"properties": {
"id": { "type": "string", "pattern": "^IMP-[0-9]{1,4}$" },
"category": {
"type": "string",
"enum": ["error_handling", "performance", "testability", "robustness", "maintainability", "code_quality"]
},
"title": { "type": "string", "minLength": 3 },
"location": { "type": "string", "minLength": 1 },
"description": { "type": "string", "minLength": 10 },
"current_code": { "type": "string", "description": "Optional: code snippet illustrating the issue" },
"suggested_fix": { "type": "string", "minLength": 5, "description": "Optional: recommended fix or improvement" },
"impact": { "type": "string", "enum": ["high", "medium", "low"] },
"effort": { "type": "string", "enum": ["trivial", "small", "medium", "large"] },
"risk": { "type": "string", "enum": ["none", "low", "medium", "high"] }
}
}
},
"summary": {
"type": "object",
"required": ["total_findings", "overall_quality"],
"properties": {
"total_findings": { "type": "integer", "minimum": 0 },
"by_category": { "type": "object" },
"quick_wins": { "type": "array", "items": { "type": "string" } },
"high_impact": { "type": "array", "items": { "type": "string" } },
"overall_quality": { "type": "string", "minLength": 10 }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,36 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Interface Design",
"description": "Go interface definitions derived from ontology entities",
"type": "object",
"required": ["package_name", "interfaces"],
"properties": {
"package_name": {
"type": "string"
},
"interfaces": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "description", "methods"],
"properties": {
"name": { "type": "string" },
"description": { "type": "string" },
"source_entity": { "type": "string" },
"methods": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "signature"],
"properties": {
"name": { "type": "string" },
"signature": { "type": "string" },
"description": { "type": "string" }
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,91 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Implementation Assessment",
"type": "object",
"required": ["implementable", "issue", "assessment"],
"properties": {
"implementable": {
"type": "boolean",
"const": true,
"description": "Must be true for the pipeline to proceed. Set to false if the issue lacks sufficient detail."
},
"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" }
},
"state": {
"type": "string"
},
"author": {
"type": "string"
},
"comments": {
"type": "array",
"items": { "type": "object" }
}
}
},
"assessment": {
"type": "object",
"required": ["quality_score", "complexity", "skip_steps", "branch_name"],
"properties": {
"quality_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "How well-specified the issue is (0-100)"
},
"complexity": {
"type": "string",
"enum": ["trivial", "simple", "medium", "complex"],
"description": "Estimated implementation complexity"
},
"skip_steps": {
"type": "array",
"items": {
"type": "string",
"enum": ["specify", "clarify", "checklist", "analyze"]
},
"description": "Speckit steps that can be skipped because the issue provides sufficient detail"
},
"branch_name": {
"type": "string",
"minLength": 1,
"description": "Suggested branch name for the implementation"
},
"missing_info": {
"type": "array",
"items": { "type": "string" },
"description": "Information that would improve the issue but isn't blocking"
},
"summary": {
"type": "string",
"description": "Brief summary of the assessment"
}
}
}
}
}

View File

@@ -0,0 +1,96 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GitHub Issue Content",
"description": "Parsed content from a GitHub issue for research pipeline processing",
"type": "object",
"required": ["issue_number", "title", "body", "author", "url", "repository"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1,
"description": "GitHub issue number"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Issue title"
},
"body": {
"type": "string",
"description": "Issue body/description text"
},
"author": {
"type": "object",
"required": ["login"],
"properties": {
"login": {
"type": "string",
"minLength": 1,
"description": "GitHub username of issue author"
}
}
},
"labels": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Label name"
},
"color": {
"type": "string",
"description": "Label color hex code"
},
"description": {
"type": "string",
"description": "Label description"
}
}
},
"description": "Labels applied to the issue"
},
"url": {
"type": "string",
"format": "uri",
"description": "HTML URL to the GitHub issue"
},
"repository": {
"type": "object",
"required": ["owner", "name", "full_name"],
"properties": {
"owner": {
"type": "string",
"description": "Repository owner"
},
"name": {
"type": "string",
"description": "Repository name"
},
"full_name": {
"type": "string",
"pattern": "^[^/]+/[^/]+$",
"description": "Full repository name (owner/repo)"
}
}
},
"state": {
"type": "string",
"enum": ["open", "closed"],
"description": "Issue state"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Issue creation timestamp"
},
"comments_count": {
"type": "integer",
"minimum": 0,
"description": "Number of comments on the issue"
}
}
}

View File

@@ -0,0 +1,72 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Issue Implementation Plan",
"type": "object",
"required": ["issue_number", "branch_name", "feature_dir", "tasks"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"branch_name": {
"type": "string",
"minLength": 1
},
"feature_dir": {
"type": "string",
"description": "Path to the feature directory under specs/"
},
"spec_file": {
"type": "string",
"description": "Path to the spec.md file"
},
"plan_file": {
"type": "string",
"description": "Path to the plan.md file"
},
"tasks_file": {
"type": "string",
"description": "Path to the tasks.md file"
},
"tasks": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "title", "description"],
"properties": {
"id": {
"type": "string",
"description": "Task identifier"
},
"title": {
"type": "string",
"description": "Brief task title"
},
"description": {
"type": "string",
"description": "Detailed task description"
},
"file_changes": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "action"],
"properties": {
"path": { "type": "string" },
"action": {
"type": "string",
"enum": ["create", "modify", "delete"]
}
}
}
}
}
}
},
"summary": {
"type": "string",
"description": "Brief summary of the implementation plan"
}
}
}

View File

@@ -0,0 +1,116 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Issue Update Context",
"description": "Schema for gathered context about a GitHub issue and recent codebase changes",
"type": "object",
"required": ["repository", "issue", "changes_since_creation", "referenced_files"],
"properties": {
"repository": {
"type": "object",
"required": ["owner", "name"],
"properties": {
"owner": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
}
}
},
"issue": {
"type": "object",
"required": ["number", "title", "body", "url", "created_at"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string"
},
"labels": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": "string",
"format": "uri"
},
"created_at": {
"type": "string"
},
"comments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"author": {
"type": "string"
},
"body": {
"type": "string"
},
"created_at": {
"type": "string"
}
}
}
}
}
},
"changes_since_creation": {
"type": "object",
"required": ["commits", "commit_count"],
"properties": {
"commits": {
"type": "array",
"items": {
"type": "string"
}
},
"commit_count": {
"type": "integer",
"minimum": 0
},
"releases": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"referenced_files": {
"type": "object",
"required": ["found", "missing"],
"properties": {
"found": {
"type": "array",
"items": {
"type": "string"
}
},
"missing": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"criticism": {
"type": "string"
},
"project_context": {
"type": "string"
}
}
}

View File

@@ -0,0 +1,73 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Issue Update Draft",
"description": "Schema for a drafted update to a GitHub issue",
"type": "object",
"required": ["issue_number", "original_title", "updated_title", "title_changed", "original_body", "updated_body", "staleness_assessment", "changes_made"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"original_title": {
"type": "string",
"minLength": 1
},
"updated_title": {
"type": "string",
"minLength": 1
},
"title_changed": {
"type": "boolean"
},
"original_body": {
"type": "string"
},
"updated_body": {
"type": "string",
"minLength": 1
},
"staleness_assessment": {
"type": "object",
"required": ["overall_staleness", "sections"],
"properties": {
"overall_staleness": {
"type": "string",
"enum": ["low", "medium", "high", "critical"]
},
"sections": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "status", "reason"],
"properties": {
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": ["STILL_VALID", "OUTDATED", "INCOMPLETE", "WRONG"]
},
"reason": {
"type": "string"
}
}
}
}
}
},
"changes_made": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"criticism_addressed": {
"type": "array",
"items": {
"type": "string"
}
}
}
}

View File

@@ -0,0 +1,57 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Issue Update Result",
"description": "Schema for the result of applying an issue update",
"type": "object",
"required": ["issue_number", "success", "changes_applied", "verification"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string",
"format": "uri"
},
"success": {
"type": "boolean"
},
"title_updated": {
"type": "boolean"
},
"body_updated": {
"type": "boolean"
},
"changes_applied": {
"type": "array",
"items": {
"type": "string"
}
},
"verification": {
"type": "object",
"required": ["title_matches", "body_matches"],
"properties": {
"title_matches": {
"type": "boolean"
},
"body_matches": {
"type": "boolean"
},
"discrepancies": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"staleness_assessment": {
"type": "string",
"enum": ["low", "medium", "high", "critical"]
},
"error": {
"type": ["string", "null"]
}
}
}

View File

@@ -0,0 +1,36 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Iteration State",
"description": "Per-iteration status for resumability tracking",
"type": "object",
"required": ["step_id", "total_items", "items"],
"properties": {
"step_id": {
"type": "string"
},
"total_items": {
"type": "integer",
"minimum": 0
},
"completed_items": {
"type": "integer",
"minimum": 0
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": ["index", "status"],
"properties": {
"index": { "type": "integer", "minimum": 0 },
"status": { "type": "string", "enum": ["pending", "running", "completed", "failed", "skipped"] },
"input": { "type": "string" },
"error": { "type": "string" },
"pipeline_run_id": { "type": "string" },
"started_at": { "type": "string", "format": "date-time" },
"completed_at": { "type": "string", "format": "date-time" }
}
}
}
}
}

View File

@@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Ontology Evolution",
"description": "Categorized ontology changes with effort and risk assessment",
"type": "object",
"required": ["base_version", "changes", "summary"],
"properties": {
"base_version": {
"type": "string",
"description": "Reference to the base ontology being evolved"
},
"changes": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "category", "description", "effort", "risk"],
"properties": {
"id": { "type": "string", "pattern": "^EVO-[0-9]+$" },
"category": { "type": "string", "enum": ["add_entity", "modify_entity", "remove_entity", "add_relationship", "modify_relationship", "remove_relationship", "add_invariant", "modify_boundary"] },
"description": { "type": "string" },
"effort": { "type": "string", "enum": ["trivial", "small", "medium", "large", "epic"] },
"risk": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
"rationale": { "type": "string" },
"affected_entities": { "type": "array", "items": { "type": "string" } }
}
}
},
"summary": {
"type": "object",
"required": ["total_changes", "breaking_changes"],
"properties": {
"total_changes": { "type": "integer", "minimum": 0 },
"breaking_changes": { "type": "integer", "minimum": 0 },
"estimated_effort": { "type": "string" }
}
}
}
}

View File

@@ -0,0 +1,89 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Ontology Extraction",
"description": "Domain ontology with entities, relationships, invariants, behaviors, and boundaries",
"type": "object",
"required": ["domain", "entities", "relationships", "boundaries"],
"properties": {
"domain": {
"type": "string",
"description": "Domain name being modeled"
},
"entities": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "type", "description", "properties"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string", "enum": ["aggregate", "entity", "value_object", "event", "service"] },
"description": { "type": "string" },
"properties": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "type"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string" },
"required": { "type": "boolean" },
"description": { "type": "string" }
}
}
}
}
}
},
"relationships": {
"type": "array",
"items": {
"type": "object",
"required": ["from", "to", "type"],
"properties": {
"from": { "type": "string" },
"to": { "type": "string" },
"type": { "type": "string", "enum": ["has_many", "has_one", "belongs_to", "depends_on", "produces", "consumes"] },
"description": { "type": "string" }
}
}
},
"invariants": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "description", "scope"],
"properties": {
"name": { "type": "string" },
"description": { "type": "string" },
"scope": { "type": "string" }
}
}
},
"behaviors": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "actor", "description"],
"properties": {
"name": { "type": "string" },
"actor": { "type": "string" },
"description": { "type": "string" },
"triggers": { "type": "array", "items": { "type": "string" } },
"outcomes": { "type": "array", "items": { "type": "string" } }
}
}
},
"boundaries": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "entities"],
"properties": {
"name": { "type": "string" },
"description": { "type": "string" },
"entities": { "type": "array", "items": { "type": "string" } }
}
}
}
}
}

View File

@@ -0,0 +1,179 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Plan Exploration",
"description": "Structured codebase exploration output for feature planning",
"type": "object",
"required": ["feature_context", "related_files", "patterns", "affected_modules", "testing_landscape", "risks", "timestamp"],
"properties": {
"feature_context": {
"type": "object",
"required": ["input_summary", "scope_assessment"],
"properties": {
"input_summary": {
"type": "string",
"minLength": 10,
"description": "Brief summary of the feature or task being planned"
},
"scope_assessment": {
"type": "string",
"enum": ["small", "medium", "large", "epic"],
"description": "Estimated scope of the work"
}
}
},
"related_files": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "relevance", "reason"],
"properties": {
"path": {
"type": "string",
"description": "File path relative to project root"
},
"relevance": {
"type": "string",
"enum": ["primary", "secondary", "reference"],
"description": "How relevant this file is to the feature"
},
"reason": {
"type": "string",
"description": "Why this file is relevant"
},
"key_symbols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Important functions, types, or constants in this file"
}
}
},
"description": "Files related to the feature"
},
"patterns": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "name", "description", "relevance"],
"properties": {
"id": {
"type": "string",
"pattern": "^PAT-[0-9]{1,4}$",
"description": "Pattern identifier"
},
"name": {
"type": "string",
"description": "Short name for the pattern"
},
"description": {
"type": "string",
"description": "What the pattern is and how it works"
},
"example_file": {
"type": "string",
"description": "File that best demonstrates this pattern"
},
"relevance": {
"type": "string",
"enum": ["must_follow", "should_follow", "informational"],
"description": "How important it is to follow this pattern"
}
}
},
"description": "Codebase patterns and conventions discovered"
},
"affected_modules": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "description", "impact_level"],
"properties": {
"path": {
"type": "string",
"description": "Module or package path"
},
"description": {
"type": "string",
"description": "What this module does"
},
"impact_level": {
"type": "string",
"enum": ["direct", "indirect", "none"],
"description": "Level of impact from the planned changes"
},
"dependencies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules this one depends on"
},
"dependents": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that depend on this one"
}
}
},
"description": "Modules affected by the planned changes"
},
"testing_landscape": {
"type": "object",
"required": ["existing_test_files", "testing_patterns"],
"properties": {
"existing_test_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Test files relevant to the feature"
},
"testing_patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Testing patterns used in the codebase (e.g., table-driven, mocks)"
},
"coverage_gaps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Areas lacking test coverage"
}
}
},
"risks": {
"type": "array",
"items": {
"type": "object",
"required": ["description", "severity"],
"properties": {
"description": {
"type": "string",
"description": "What the risk is"
},
"severity": {
"type": "string",
"enum": ["high", "medium", "low"],
"description": "Risk severity"
},
"mitigation": {
"type": "string",
"description": "How to mitigate this risk"
}
}
},
"description": "Risks identified during exploration"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the exploration was completed"
}
}
}

View File

@@ -0,0 +1,235 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Plan Review",
"description": "Structured review of a task breakdown plan",
"type": "object",
"required": ["verdict", "summary", "task_reviews", "cross_cutting_concerns", "recommendations", "risk_assessment", "timestamp", "markdown_content"],
"properties": {
"verdict": {
"type": "object",
"required": ["decision", "confidence", "rationale"],
"properties": {
"decision": {
"type": "string",
"enum": ["approve", "approve_with_notes", "revise"],
"description": "Overall verdict on the plan"
},
"confidence": {
"type": "string",
"enum": ["high", "medium", "low"],
"description": "Confidence in the verdict"
},
"rationale": {
"type": "string",
"minLength": 20,
"description": "Explanation for the verdict"
}
}
},
"summary": {
"type": "object",
"required": ["total_tasks_reviewed", "issues_found", "issues_by_severity", "strengths"],
"properties": {
"total_tasks_reviewed": {
"type": "integer",
"minimum": 1,
"description": "Number of tasks reviewed"
},
"issues_found": {
"type": "integer",
"minimum": 0,
"description": "Total number of issues found"
},
"issues_by_severity": {
"type": "object",
"properties": {
"critical": {
"type": "integer",
"minimum": 0
},
"high": {
"type": "integer",
"minimum": 0
},
"medium": {
"type": "integer",
"minimum": 0
},
"low": {
"type": "integer",
"minimum": 0
}
},
"description": "Issues broken down by severity"
},
"strengths": {
"type": "array",
"items": {
"type": "string"
},
"description": "Things the plan does well"
}
}
},
"task_reviews": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["task_id", "status"],
"properties": {
"task_id": {
"type": "string",
"pattern": "^T[0-9]{2}$",
"description": "ID of the reviewed task"
},
"status": {
"type": "string",
"enum": ["ok", "needs_refinement", "missing_details", "overcomplicated", "wrong_persona", "bad_dependencies"],
"description": "Review status for this task"
},
"issues": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "severity", "description", "suggestion"],
"properties": {
"id": {
"type": "string",
"pattern": "^REV-[0-9]{1,4}$",
"description": "Issue identifier"
},
"severity": {
"type": "string",
"enum": ["critical", "high", "medium", "low"],
"description": "Issue severity"
},
"description": {
"type": "string",
"description": "What the issue is"
},
"suggestion": {
"type": "string",
"description": "How to fix it"
}
}
},
"description": "Issues found in this task"
}
}
},
"description": "Per-task review results"
},
"cross_cutting_concerns": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "category", "description", "affected_tasks", "recommendation"],
"properties": {
"id": {
"type": "string",
"pattern": "^CC-[0-9]{1,4}$",
"description": "Concern identifier"
},
"category": {
"type": "string",
"description": "Category of concern (e.g., testing, security, performance)"
},
"description": {
"type": "string",
"description": "What the concern is"
},
"affected_tasks": {
"type": "array",
"items": {
"type": "string",
"pattern": "^T[0-9]{2}$"
},
"description": "Tasks affected by this concern"
},
"recommendation": {
"type": "string",
"description": "Recommended action"
}
}
},
"description": "Concerns that span multiple tasks"
},
"recommendations": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "priority", "description", "type"],
"properties": {
"id": {
"type": "string",
"pattern": "^REC-[0-9]{1,4}$",
"description": "Recommendation identifier"
},
"priority": {
"type": "string",
"enum": ["critical", "high", "medium", "low"],
"description": "Priority of the recommendation"
},
"description": {
"type": "string",
"description": "What should be done"
},
"type": {
"type": "string",
"enum": ["add_task", "modify_task", "remove_task", "reorder", "split_task", "merge_tasks", "change_persona", "add_dependency"],
"description": "Type of change recommended"
}
}
},
"description": "Actionable recommendations for improving the plan"
},
"risk_assessment": {
"type": "object",
"required": ["overall_risk", "key_risks"],
"properties": {
"overall_risk": {
"type": "string",
"enum": ["high", "medium", "low"],
"description": "Overall risk level of the plan"
},
"key_risks": {
"type": "array",
"items": {
"type": "object",
"required": ["description", "severity", "likelihood"],
"properties": {
"description": {
"type": "string",
"description": "Risk description"
},
"severity": {
"type": "string",
"enum": ["high", "medium", "low"]
},
"likelihood": {
"type": "string",
"enum": ["high", "medium", "low"]
},
"mitigation": {
"type": "string",
"description": "How to mitigate"
}
}
},
"description": "Key risks identified in the plan"
}
}
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When the review was completed"
},
"markdown_content": {
"type": "string",
"minLength": 50,
"description": "Pre-rendered human-readable review in markdown format"
}
}
}

View File

@@ -0,0 +1,40 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Speckit Plan Status",
"description": "Status report from the plan step: research, design, and implementation plan generation.",
"type": "object",
"required": ["plan_file", "feature_dir", "summary"],
"properties": {
"plan_file": {
"type": "string",
"minLength": 1,
"description": "Path to the generated implementation plan file"
},
"feature_dir": {
"type": "string",
"minLength": 1,
"description": "Path to the feature directory"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief description of the plan produced"
},
"research_file": {
"type": "string",
"description": "Path to research.md if generated"
},
"data_model_file": {
"type": "string",
"description": "Path to data-model.md if generated"
},
"constitution_issues": {
"type": "array",
"items": {
"type": "string"
},
"description": "Constitution compliance issues found during planning"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,142 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Plan Tasks",
"description": "Structured task breakdown for feature implementation",
"type": "object",
"required": ["feature_summary", "tasks", "execution_order", "metadata", "markdown_content"],
"properties": {
"feature_summary": {
"type": "object",
"required": ["title", "description", "total_tasks", "estimated_total_complexity"],
"properties": {
"title": {
"type": "string",
"minLength": 5,
"description": "Short title for the feature"
},
"description": {
"type": "string",
"minLength": 20,
"description": "Brief description of what the feature does"
},
"total_tasks": {
"type": "integer",
"minimum": 1,
"description": "Total number of tasks in the breakdown"
},
"estimated_total_complexity": {
"type": "string",
"enum": ["S", "M", "L", "XL"],
"description": "Overall complexity estimate"
}
}
},
"tasks": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "title", "description", "persona", "complexity", "acceptance_criteria"],
"properties": {
"id": {
"type": "string",
"pattern": "^T[0-9]{2}$",
"description": "Task identifier (T01, T02, etc.)"
},
"title": {
"type": "string",
"minLength": 5,
"description": "Short task title"
},
"description": {
"type": "string",
"minLength": 20,
"description": "What needs to be done"
},
"persona": {
"type": "string",
"enum": ["navigator", "philosopher", "craftsman", "auditor", "planner", "implementer", "reviewer"],
"description": "Which persona should execute this task"
},
"complexity": {
"type": "string",
"enum": ["S", "M", "L", "XL"],
"description": "Task complexity estimate"
},
"dependencies": {
"type": "array",
"items": {
"type": "string",
"pattern": "^T[0-9]{2}$"
},
"description": "Task IDs that must complete before this one"
},
"acceptance_criteria": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "How to verify the task is complete"
},
"affected_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Files that will be created or modified"
},
"risks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Risks specific to this task"
}
}
},
"description": "Ordered list of tasks"
},
"execution_order": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["phase", "task_ids"],
"properties": {
"phase": {
"type": "integer",
"minimum": 1,
"description": "Execution phase number"
},
"task_ids": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"pattern": "^T[0-9]{2}$"
},
"description": "Tasks that can run in parallel in this phase"
}
}
},
"description": "Parallelization groups for task execution"
},
"metadata": {
"type": "object",
"required": ["generated_at"],
"properties": {
"generated_at": {
"type": "string",
"format": "date-time",
"description": "When the plan was generated"
}
}
},
"markdown_content": {
"type": "string",
"minLength": 50,
"description": "Pre-rendered human-readable plan in markdown format"
}
}
}

View File

@@ -0,0 +1,43 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Pull Request Result",
"description": "Result of creating a pull request. Used by pipeline steps that produce a PR as their final output.",
"type": "object",
"required": ["pr_url", "pr_number", "branch", "summary"],
"properties": {
"pr_url": {
"type": "string",
"format": "uri",
"description": "URL to the created pull request"
},
"pr_number": {
"type": "integer",
"minimum": 1,
"description": "Pull request number"
},
"branch": {
"type": "string",
"minLength": 1,
"description": "Branch name for the pull request"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief description of what the pull request does"
},
"copilot_review_requested": {
"type": "boolean",
"description": "Whether a Copilot review was requested for the PR"
},
"closes_issue": {
"type": "boolean",
"description": "Whether the PR closes a linked issue"
},
"issue_number": {
"type": "integer",
"minimum": 1,
"description": "Issue number that this PR addresses"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,42 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Probed Findings",
"description": "Deep-dive analysis from the recinq probe step",
"type": "object",
"required": ["target", "total_probed", "findings"],
"properties": {
"target": {
"type": "string",
"description": "What was analyzed (path, module, or 'whole-project')"
},
"total_probed": {
"type": "integer",
"description": "Total number of confirmed findings that were probed deeper"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "deeper_analysis", "files"],
"properties": {
"id": {
"type": "string",
"description": "Original finding ID (e.g. DVG-001)"
},
"deeper_analysis": {
"type": "string",
"description": "Extended analysis including dependency graph, second-order effects, and cross-finding patterns"
},
"files": {
"type": "array",
"items": { "type": "string" },
"description": "File paths involved in this finding and its connections"
}
},
"additionalProperties": true
},
"description": "Per-finding deep-dive results"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,119 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Project Survey",
"description": "Structured survey of a project for onboarding guide generation",
"type": "object",
"required": ["project", "build", "structure", "timestamp"],
"properties": {
"project": {
"type": "object",
"required": ["name", "language", "purpose"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"language": { "type": "string", "minLength": 1 },
"framework": { "type": "string" },
"purpose": { "type": "string", "minLength": 5 },
"license": { "type": "string" }
}
},
"build": {
"type": "object",
"required": ["commands"],
"properties": {
"commands": {
"type": "object",
"properties": {
"build": { "type": "string" },
"test": { "type": "string" },
"run": { "type": "string" }
}
},
"prerequisites": { "type": "array", "items": { "type": "string" } },
"ci_system": { "type": "string" }
}
},
"structure": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["path", "purpose"],
"properties": {
"path": { "type": "string", "minLength": 1 },
"purpose": { "type": "string", "minLength": 1 },
"key_files": { "type": "array", "items": { "type": "string" } }
}
}
},
"architecture": {
"type": "object",
"properties": {
"entry_points": { "type": "array", "items": { "type": "string" } },
"components": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "role"],
"properties": {
"name": { "type": "string" },
"package": { "type": "string" },
"role": { "type": "string" }
}
}
},
"patterns": { "type": "array", "items": { "type": "string" } }
}
},
"dependencies": {
"type": "object",
"properties": {
"key_deps": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "purpose"],
"properties": {
"name": { "type": "string" },
"purpose": { "type": "string" },
"import": { "type": "string" }
}
}
},
"total_count": { "type": "integer", "minimum": 0 }
}
},
"configuration": {
"type": "object",
"properties": {
"env_vars": { "type": "array", "items": { "type": "string" } },
"config_files": { "type": "array", "items": { "type": "string" } },
"feature_flags": { "type": "array", "items": { "type": "string" } }
}
},
"testing": {
"type": "object",
"properties": {
"framework": { "type": "string" },
"patterns": { "type": "array", "items": { "type": "string" } },
"run_command": { "type": "string" },
"coverage_command": { "type": "string" }
}
},
"workflow": {
"type": "object",
"properties": {
"branch_strategy": { "type": "string" },
"commit_convention": { "type": "string" },
"pr_process": { "type": "string" }
}
},
"documentation": {
"type": "object",
"properties": {
"locations": { "type": "array", "items": { "type": "string" } },
"quality": { "type": "string", "enum": ["good", "adequate", "sparse", "missing"] }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,43 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Recinq Context",
"description": "Parsed input context from the recinq gather step",
"type": "object",
"required": ["input_type", "original_input", "focus_hint"],
"properties": {
"input_type": {
"type": "string",
"enum": ["issue", "pr", "local"],
"description": "The kind of input: GitHub issue, GitHub PR, or local path/description"
},
"original_input": {
"type": "string",
"description": "The raw input string exactly as given by the user"
},
"focus_hint": {
"type": "string",
"description": "Summary of what should be simplified or focused on"
},
"url": {
"type": "string",
"description": "GitHub issue or PR URL (empty for local input)"
},
"repo": {
"type": "string",
"description": "GitHub owner/repo (empty for local input)"
},
"number": {
"type": "integer",
"description": "GitHub issue or PR number (0 for local input)"
},
"title": {
"type": "string",
"description": "GitHub issue or PR title (empty for local input)"
},
"body": {
"type": "string",
"description": "GitHub issue or PR body (empty for local input)"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,27 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["target_files", "affected_callers", "existing_tests", "integration_points", "risk_assessment"],
"properties": {
"target_files": {
"type": "array",
"items": { "type": "string" }
},
"affected_callers": {
"type": "array",
"items": { "type": "string" }
},
"existing_tests": {
"type": "array",
"items": { "type": "string" }
},
"integration_points": {
"type": "array",
"items": { "type": "string" }
},
"risk_assessment": {
"type": "string",
"enum": ["low", "medium", "high"]
}
}
}

View File

@@ -0,0 +1,178 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Research Findings",
"description": "Web research results organized by topic with sources and insights",
"type": "object",
"required": ["issue_reference", "findings_by_topic", "research_metadata"],
"properties": {
"issue_reference": {
"type": "object",
"required": ["issue_number", "repository"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$"
}
}
},
"findings_by_topic": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["topic_id", "topic_title", "findings", "confidence_level"],
"properties": {
"topic_id": {
"type": "string",
"pattern": "^TOPIC-[0-9]{1,4}$",
"description": "Reference to topic ID from research-topics"
},
"topic_title": {
"type": "string",
"description": "Topic title for readability"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "summary", "source", "relevance_score"],
"properties": {
"id": {
"type": "string",
"pattern": "^FINDING-[0-9]{1,4}$",
"description": "Unique finding identifier"
},
"summary": {
"type": "string",
"minLength": 20,
"maxLength": 2000,
"description": "Summarized finding content"
},
"key_points": {
"type": "array",
"items": {
"type": "string"
},
"description": "Bullet points of key insights"
},
"source": {
"type": "object",
"required": ["url", "title", "type"],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Source URL"
},
"title": {
"type": "string",
"description": "Source page/article title"
},
"type": {
"type": "string",
"enum": ["official_docs", "github_issue", "github_discussion", "stack_overflow", "blog_post", "tutorial", "api_reference", "academic_paper", "forum_post", "other"],
"description": "Type of source"
},
"author": {
"type": "string",
"description": "Author or organization name"
},
"credibility_score": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Source credibility assessment (0-1)"
}
}
},
"relevance_score": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Relevance to the topic (0-1)"
},
"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 quotes from the source"
}
}
},
"description": "Individual research findings for this topic"
},
"confidence_level": {
"type": "string",
"enum": ["high", "medium", "low", "inconclusive"],
"description": "Overall confidence in findings for this topic"
},
"consensus": {
"type": "string",
"description": "Summary of consensus across sources"
},
"gaps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Questions that couldn't be fully answered"
}
}
},
"description": "Research findings organized by topic"
},
"research_metadata": {
"type": "object",
"required": ["started_at", "completed_at"],
"properties": {
"started_at": {
"type": "string",
"format": "date-time",
"description": "Research start timestamp"
},
"completed_at": {
"type": "string",
"format": "date-time",
"description": "Research completion timestamp"
},
"persona": {
"type": "string",
"description": "Wave persona that conducted research"
},
"total_sources_consulted": {
"type": "integer",
"minimum": 0,
"description": "Total number of sources examined"
},
"sources_included": {
"type": "integer",
"minimum": 0,
"description": "Number of sources included in findings"
},
"search_queries_used": {
"type": "array",
"items": {
"type": "string"
},
"description": "Search queries that were used"
}
}
}
}
}

View File

@@ -0,0 +1,206 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Research Report",
"description": "Synthesized research report for GitHub issue comment",
"type": "object",
"required": ["issue_reference", "executive_summary", "detailed_findings", "recommendations", "sources", "markdown_content"],
"properties": {
"issue_reference": {
"type": "object",
"required": ["issue_number", "repository", "title"],
"properties": {
"issue_number": {
"type": "integer",
"minimum": 1
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
}
},
"executive_summary": {
"type": "object",
"required": ["overview", "key_findings", "primary_recommendation"],
"properties": {
"overview": {
"type": "string",
"minLength": 50,
"maxLength": 1000,
"description": "Brief overview of research conducted and main conclusions"
},
"key_findings": {
"type": "array",
"minItems": 1,
"maxItems": 7,
"items": {
"type": "string"
},
"description": "Top findings as bullet points"
},
"primary_recommendation": {
"type": "string",
"minLength": 20,
"description": "Single most important recommendation"
},
"confidence_assessment": {
"type": "string",
"enum": ["high", "medium", "low"],
"description": "Overall confidence in the research conclusions"
}
}
},
"detailed_findings": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["section_title", "content", "relevance"],
"properties": {
"section_title": {
"type": "string",
"minLength": 3,
"description": "Section heading"
},
"topic_id": {
"type": "string",
"pattern": "^TOPIC-[0-9]{1,4}$",
"description": "Reference to original topic if applicable"
},
"content": {
"type": "string",
"minLength": 50,
"description": "Detailed markdown content for this section"
},
"relevance": {
"type": "string",
"enum": ["critical", "high", "medium", "supplementary"],
"description": "How relevant this section is to the issue"
},
"code_examples": {
"type": "array",
"items": {
"type": "object",
"required": ["code", "language"],
"properties": {
"code": {
"type": "string",
"description": "Code snippet"
},
"language": {
"type": "string",
"description": "Language for syntax highlighting"
},
"caption": {
"type": "string",
"description": "Explanation of the code"
}
}
},
"description": "Code examples for this section"
},
"related_sources": {
"type": "array",
"items": {
"type": "string",
"pattern": "^SRC-[0-9]{1,4}$"
},
"description": "References to sources list"
}
}
},
"description": "Detailed findings organized by section"
},
"recommendations": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"required": ["id", "title", "description", "priority"],
"properties": {
"id": {
"type": "string",
"pattern": "^REC-[0-9]{1,4}$",
"description": "Recommendation identifier"
},
"title": {
"type": "string",
"minLength": 5,
"maxLength": 100,
"description": "Concise recommendation title"
},
"description": {
"type": "string",
"minLength": 20,
"description": "Detailed recommendation explanation"
},
"priority": {
"type": "string",
"enum": ["critical", "high", "medium", "low"],
"description": "Recommendation priority"
},
"effort_estimate": {
"type": "string",
"enum": ["trivial", "small", "medium", "large", "unknown"],
"description": "Estimated implementation effort"
}
}
},
"description": "Actionable recommendations based on research"
},
"sources": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "url", "title"],
"properties": {
"id": {
"type": "string",
"pattern": "^SRC-[0-9]{1,4}$",
"description": "Source identifier for cross-referencing"
},
"url": {
"type": "string",
"format": "uri",
"description": "Source URL"
},
"title": {
"type": "string",
"description": "Source title"
},
"type": {
"type": "string",
"enum": ["official_docs", "github_issue", "github_discussion", "stack_overflow", "blog_post", "tutorial", "api_reference", "academic_paper", "forum_post", "other"]
},
"reliability": {
"type": "string",
"enum": ["authoritative", "reputable", "community", "unverified"],
"description": "Source reliability assessment"
}
}
},
"description": "All sources cited in the report"
},
"markdown_content": {
"type": "string",
"minLength": 100,
"description": "Pre-rendered markdown content ready for GitHub comment"
},
"follow_up_questions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Questions that warrant further investigation"
}
}
}

View 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]{1,4}$",
"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)"
}
}
}
}
}

View File

@@ -0,0 +1,73 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Epic Scope Plan and Results",
"description": "Schema for epic decomposition plan with created sub-issues",
"type": "object",
"required": ["parent_issue", "created_issues", "total_created"],
"properties": {
"parent_issue": {
"type": "object",
"required": ["number", "url", "repository"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string",
"format": "uri"
},
"repository": {
"type": "string",
"pattern": "^[^/]+/[^/]+$"
}
}
},
"created_issues": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["number", "title", "url", "success"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"labels": {
"type": "array",
"items": { "type": "string" }
},
"success": {
"type": "boolean"
},
"complexity": {
"type": "string",
"enum": ["S", "M", "L", "XL"]
},
"dependencies": {
"type": "array",
"items": { "type": "string" },
"description": "Titles or numbers of issues this depends on"
}
}
}
},
"total_created": {
"type": "integer",
"minimum": 0
},
"total_failed": {
"type": "integer",
"minimum": 0
}
}
}

View File

@@ -0,0 +1,78 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Epic Scope Verification Report",
"description": "Schema for verification of created sub-issues",
"type": "object",
"required": ["parent_issue", "verified_issues", "summary"],
"properties": {
"parent_issue": {
"type": "object",
"required": ["number", "url"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string",
"format": "uri"
}
}
},
"verified_issues": {
"type": "array",
"items": {
"type": "object",
"required": ["number", "title", "exists"],
"properties": {
"number": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"exists": {
"type": "boolean"
},
"has_acceptance_criteria": {
"type": "boolean"
},
"references_parent": {
"type": "boolean"
}
}
}
},
"summary": {
"type": "object",
"required": ["total_verified", "total_valid", "total_issues_created"],
"properties": {
"total_verified": {
"type": "integer",
"minimum": 0
},
"total_valid": {
"type": "integer",
"minimum": 0
},
"total_issues_created": {
"type": "integer",
"minimum": 0
},
"comment_posted": {
"type": "boolean",
"description": "Whether a summary comment was posted on the epic"
},
"comment_url": {
"type": "string",
"description": "URL of the summary comment if posted"
}
}
}
}
}

View File

@@ -0,0 +1,73 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Security Scan Results",
"description": "Output from the security scan step",
"type": "object",
"required": ["target", "findings", "summary", "timestamp"],
"properties": {
"target": {
"type": "string",
"minLength": 1,
"description": "What was scanned"
},
"attack_surface": {
"type": "array",
"items": {
"type": "object",
"required": ["entry_point", "type", "description"],
"properties": {
"entry_point": { "type": "string", "minLength": 1 },
"type": {
"type": "string",
"enum": ["http_handler", "cli_input", "file_parser", "db_query", "api_call", "ipc", "other"]
},
"description": { "type": "string", "minLength": 1 },
"risk_level": { "type": "string", "enum": ["high", "medium", "low"] }
}
}
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "title", "severity", "category", "location", "description"],
"properties": {
"id": { "type": "string", "pattern": "^SEC-[0-9]{1,4}$" },
"title": { "type": "string", "minLength": 5 },
"severity": { "type": "string", "enum": ["CRITICAL", "HIGH", "MEDIUM", "LOW"] },
"category": { "type": "string", "minLength": 1 },
"location": { "type": "string", "minLength": 1 },
"description": { "type": "string", "minLength": 10 },
"evidence": { "type": "string" },
"exploitability": { "type": "string" }
}
}
},
"secrets_check": {
"type": "object",
"properties": {
"hardcoded_secrets": { "type": "array", "items": { "type": "string" } },
"insecure_configs": { "type": "array", "items": { "type": "string" } }
}
},
"summary": {
"type": "object",
"required": ["total_findings", "by_severity", "risk_assessment"],
"properties": {
"total_findings": { "type": "integer", "minimum": 0 },
"by_severity": {
"type": "object",
"required": ["CRITICAL", "HIGH", "MEDIUM", "LOW"],
"properties": {
"CRITICAL": { "type": "integer", "minimum": 0 },
"HIGH": { "type": "integer", "minimum": 0 },
"MEDIUM": { "type": "integer", "minimum": 0 },
"LOW": { "type": "integer", "minimum": 0 }
}
},
"risk_assessment": { "type": "string", "minLength": 10 }
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,119 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://schema.recinq.com/wave/spec-phase.schema.json",
"title": "Wave Spec Phase Output Contract",
"description": "Validates spec phase outputs for prototype-driven development pipeline",
"type": "object",
"properties": {
"phase": {
"type": "string",
"const": "spec",
"description": "Phase identifier"
},
"artifacts": {
"type": "object",
"properties": {
"spec": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*spec\\.md$",
"description": "Path to specification file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Specification file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Specification content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
},
"requirements": {
"type": "object",
"properties": {
"path": {
"type": "string",
"pattern": "^.*requirements\\.md$",
"description": "Path to requirements file"
},
"exists": {
"type": "boolean",
"const": true,
"description": "Requirements file must exist"
},
"content_type": {
"type": "string",
"const": "markdown",
"description": "Requirements content format"
}
},
"required": ["path", "exists", "content_type"],
"additionalProperties": false
}
},
"required": ["spec"],
"additionalProperties": true
},
"validation": {
"type": "object",
"properties": {
"completeness_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Specification completeness rating"
},
"clarity_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Specification clarity rating"
},
"testability_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Specification testability rating"
},
"specification_quality": {
"type": "string",
"enum": ["poor", "fair", "good", "excellent"],
"description": "Overall specification quality assessment"
}
},
"required": ["specification_quality"],
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "When spec phase was completed"
},
"duration_seconds": {
"type": "number",
"minimum": 0,
"description": "Time taken for spec phase"
},
"input_description": {
"type": "string",
"minLength": 1,
"description": "Original project description input"
}
},
"required": ["timestamp", "input_description"],
"additionalProperties": false
}
},
"required": ["phase", "artifacts", "validation", "metadata"],
"additionalProperties": false
}

View File

@@ -0,0 +1,35 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Speckit Specify Status",
"description": "Status report from the specify step: feature branch creation and spec authoring.",
"type": "object",
"required": ["branch_name", "spec_file", "feature_dir", "summary"],
"properties": {
"branch_name": {
"type": "string",
"minLength": 1,
"description": "Git branch name created for the feature"
},
"spec_file": {
"type": "string",
"minLength": 1,
"description": "Path to the generated spec.md file"
},
"feature_dir": {
"type": "string",
"minLength": 1,
"description": "Path to the feature directory"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief description of what was created"
},
"checklist_status": {
"type": "string",
"enum": ["pass", "fail"],
"description": "Result of self-validation against the quality checklist"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,97 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Supervision Evaluation",
"description": "Quality evaluation of both output and process",
"type": "object",
"required": ["output_quality", "process_quality", "overall_score", "timestamp"],
"properties": {
"output_quality": {
"type": "object",
"required": ["correctness", "completeness", "test_coverage", "code_quality"],
"properties": {
"correctness": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
},
"completeness": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
},
"test_coverage": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
},
"code_quality": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
}
}
},
"process_quality": {
"type": "object",
"required": ["efficiency", "scope_discipline", "tool_usage"],
"properties": {
"efficiency": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
},
"scope_discipline": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
},
"tool_usage": {
"type": "object",
"required": ["score", "findings"],
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
},
"token_economy": {
"type": "object",
"properties": {
"score": { "type": "string", "enum": ["excellent", "good", "adequate", "poor"] },
"findings": { "type": "array", "items": { "type": "string" } }
}
}
}
},
"overall_score": {
"type": "string",
"enum": ["excellent", "good", "adequate", "poor"]
},
"key_strengths": {
"type": "array",
"items": { "type": "string" }
},
"key_concerns": {
"type": "array",
"items": { "type": "string" }
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,83 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Supervision Evidence",
"description": "Evidence gathered for supervising completed work",
"type": "object",
"required": ["scope", "commits", "artifacts", "test_results", "timestamp"],
"properties": {
"scope": {
"type": "object",
"description": "What was inspected and how it was identified",
"required": ["description", "detection_method"],
"properties": {
"description": { "type": "string", "minLength": 5 },
"detection_method": {
"type": "string",
"enum": ["auto_detect", "pipeline_run", "branch", "pr", "freeform"]
},
"pipeline_name": { "type": "string" },
"branch_name": { "type": "string" },
"pr_number": { "type": "integer" }
}
},
"commits": {
"type": "array",
"items": {
"type": "object",
"required": ["hash", "message", "files_changed"],
"properties": {
"hash": { "type": "string" },
"message": { "type": "string" },
"author": { "type": "string" },
"files_changed": { "type": "integer" },
"insertions": { "type": "integer" },
"deletions": { "type": "integer" },
"has_session_transcript": { "type": "boolean" },
"transcript_summary": { "type": "string" }
}
}
},
"artifacts": {
"type": "array",
"description": "Pipeline workspace artifacts found",
"items": {
"type": "object",
"required": ["path", "type"],
"properties": {
"path": { "type": "string" },
"type": { "type": "string" },
"size_bytes": { "type": "integer" },
"summary": { "type": "string" }
}
}
},
"test_results": {
"type": "object",
"required": ["ran", "passed"],
"properties": {
"ran": { "type": "boolean" },
"passed": { "type": "boolean" },
"total_tests": { "type": "integer" },
"failed_tests": { "type": "integer" },
"coverage_percent": { "type": "number" },
"details": { "type": "string" }
}
},
"session_transcripts": {
"type": "array",
"description": "Claudit session transcripts from git notes",
"items": {
"type": "object",
"required": ["commit_hash", "summary"],
"properties": {
"commit_hash": { "type": "string" },
"summary": { "type": "string" },
"tool_calls_count": { "type": "integer" },
"notable_detours": { "type": "array", "items": { "type": "string" } },
"errors_encountered": { "type": "array", "items": { "type": "string" } }
}
}
},
"timestamp": { "type": "string", "format": "date-time" }
}
}

View File

@@ -0,0 +1,33 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Speckit Tasks Status",
"description": "Status report from the tasks step: dependency-ordered task breakdown generation.",
"type": "object",
"required": ["total_tasks", "feature_dir", "summary"],
"properties": {
"total_tasks": {
"type": "integer",
"minimum": 1,
"description": "Total number of tasks generated"
},
"feature_dir": {
"type": "string",
"minLength": 1,
"description": "Path to the feature directory"
},
"summary": {
"type": "string",
"minLength": 1,
"description": "Brief description of the task breakdown"
},
"tasks_per_story": {
"type": "object",
"description": "Mapping of user story identifiers to task counts"
},
"parallel_opportunities": {
"type": "integer",
"description": "Number of tasks that can be executed in parallel"
}
},
"additionalProperties": true
}

View File

@@ -0,0 +1,50 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Validated Findings",
"description": "Convergent validation results from the recinq converge step",
"type": "object",
"required": ["target", "total_findings", "confirmed", "rejected", "findings"],
"properties": {
"target": {
"type": "string",
"description": "What was analyzed (path, module, or 'whole-project')"
},
"total_findings": {
"type": "integer",
"description": "Total number of divergent findings reviewed"
},
"confirmed": {
"type": "integer",
"description": "Number of findings classified as CONFIRMED or PARTIALLY_CONFIRMED"
},
"rejected": {
"type": "integer",
"description": "Number of findings classified as REJECTED"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "status", "rationale"],
"properties": {
"id": {
"type": "string",
"description": "Original finding ID (e.g. DVG-001)"
},
"status": {
"type": "string",
"enum": ["CONFIRMED", "PARTIALLY_CONFIRMED", "REJECTED"],
"description": "Validation classification"
},
"rationale": {
"type": "string",
"description": "Explanation of why the finding was classified this way"
}
},
"additionalProperties": true
},
"description": "Per-finding validation results"
}
},
"additionalProperties": true
}