Files
code-crispies/.wave/contracts/audit-triage-report.schema.json
Michael Czechowski ab6dabd542
Some checks failed
CI / ci (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
fix(ci): correct image digest separator
2026-04-30 12:20:26 +02:00

134 lines
4.2 KiB
JSON

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