activity-core/schemas/daily-triage-report.json

37 lines
1.8 KiB
JSON
Raw Normal View History

2026-05-19 18:28:23 +02:00
{
"$comment": "ACTIVITY-WP-0016-T02. Strict, bounded contract for the daily WSJF triage report. The per-item 'recommendations' schema is intentionally strict on STRUCTURE (types + required keys) so the T03 boundary parser can validate each recommendation independently and quarantine only the malformed ones. 'maxItems' is a producer hint (honoured by llm-connect constrained decoding and by the prompt); it is deliberately NOT hard-enforced by the in-repo validator, because rejecting a whole report for having too many items would reproduce the monolithic-failure bug WP-0016 exists to remove. Over-count is mitigated in T03 (keep top-N by rank, quarantine the rest). Value-domain vocabularies (action/confidence) are documented in the prompt and enforced by T04 guardrails with mitigation, not as brittle hard-fail enums here.",
2026-05-19 18:28:23 +02:00
"type": "object",
"required": ["summary", "recommendations"],
"properties": {
"summary": {
"type": "string"
},
"recommendations": {
"type": "array",
"maxItems": 7,
2026-05-19 18:28:23 +02:00
"items": {
"type": "object",
"required": ["rank", "candidate", "action", "why"],
"properties": {
"rank": { "type": "integer" },
"candidate": { "type": "string" },
"action": { "type": "string" },
"why": { "type": "string" },
"confidence": { "type": "string" },
"wsjf": {
"type": "object",
"properties": {
"score": { "type": "number" },
"strategic_value": { "type": "number" },
"time_criticality": { "type": "number" },
"risk_reduction": { "type": "number" },
"opportunity_enablement": { "type": "number" },
"job_size": { "type": "number" }
}
}
}
2026-05-19 18:28:23 +02:00
}
}
}
}