papayu/src-tauri/config/llm_weekly_report_schema.json
Yuriy 65e95a458d feat: мульти-провайдер LLM, тренды дизайна, Snyk/Documatic sync, личная автоматизация
- Мульти-провайдер: PAPAYU_LLM_PROVIDERS — сбор планов от нескольких ИИ (Claude, OpenAI), агрегация
- Тренды дизайна и иконок: вкладка в модалке, поиск по безопасным доменам (Tavily include_domains)
- Snyk Code: PAPAYU_SNYK_SYNC, REST API issues → snyk_findings в agent-sync
- Documatic: architecture_summary из .papa-yu/architecture.md в agent-sync
- Личная автоматизация: capability personal-automation (терминал git/npm/cargo, открытие URL)
- agent_sync расширен: snyk_findings, architecture_summary; analyze_project_cmd и run_batch пишут sync
- Документация: SNYK_AND_DOCUMATIC_SYNC.md, SECURITY_AND_PERSONAL_AUTOMATION.md, обновлён CLAUDE_AND_AGENT_SYNC

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 15:05:39 +03:00

92 lines
3.4 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"x_schema_version": 1,
"type": "object",
"additionalProperties": false,
"required": ["title", "period", "summary_md", "kpis", "findings", "recommendations", "operator_actions"],
"properties": {
"title": { "type": "string" },
"period": {
"type": "object",
"additionalProperties": false,
"required": ["from", "to"],
"properties": {
"from": { "type": "string" },
"to": { "type": "string" }
}
},
"summary_md": { "type": "string" },
"kpis": {
"type": "object",
"additionalProperties": false,
"required": ["apply_count", "fallback_count", "fallback_rate", "fallback_rate_excluding_non_utf8", "repair_success_rate", "sha_injection_rate"],
"properties": {
"apply_count": { "type": "integer", "minimum": 0 },
"fallback_count": { "type": "integer", "minimum": 0 },
"fallback_rate": { "type": "number", "minimum": 0, "maximum": 1 },
"fallback_rate_excluding_non_utf8": { "type": "number", "minimum": 0, "maximum": 1 },
"repair_success_rate": { "type": "number", "minimum": 0, "maximum": 1 },
"sha_injection_rate": { "type": "number", "minimum": 0, "maximum": 1 }
}
},
"findings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["severity", "title", "evidence"],
"properties": {
"severity": { "type": "string", "enum": ["info", "warning", "critical"] },
"title": { "type": "string" },
"evidence": { "type": "string" }
}
}
},
"recommendations": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["priority", "title", "rationale", "expected_impact"],
"properties": {
"priority": { "type": "string", "enum": ["p0", "p1", "p2"] },
"title": { "type": "string" },
"rationale": { "type": "string" },
"expected_impact": { "type": "string" }
}
}
},
"operator_actions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["title", "steps", "time_estimate_minutes"],
"properties": {
"title": { "type": "string" },
"steps": { "type": "array", "items": { "type": "string" } },
"time_estimate_minutes": { "type": "integer", "minimum": 1 }
}
}
},
"proposals": {
"type": "array",
"description": "Concrete actionable proposals (prompt_change, setting_change, golden_trace_add, limit_tuning, safety_rule). Only propose what bundle+deltas justify.",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["kind", "title", "why", "risk", "steps", "expected_impact"],
"properties": {
"kind": { "type": "string", "enum": ["prompt_change", "setting_change", "golden_trace_add", "limit_tuning", "safety_rule"] },
"title": { "type": "string" },
"why": { "type": "string" },
"risk": { "type": "string", "enum": ["low", "medium", "high"] },
"steps": { "type": "array", "items": { "type": "string" } },
"expected_impact": { "type": "string" },
"evidence": { "type": "string" }
}
}
}
}
}