From 68674a3c6f554042e741a2adba55503037107ba4 Mon Sep 17 00:00:00 2001 From: igor04091968 Date: Thu, 4 Jun 2026 17:45:32 +0300 Subject: [PATCH] fix(portal): put risk narrative first in reports --- adk-rust/crates/detmir-portal/src/main.rs | 19 +++++++++++++------ docs/BUSINESS_RISK_RU.md | 10 ++++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/adk-rust/crates/detmir-portal/src/main.rs b/adk-rust/crates/detmir-portal/src/main.rs index b858ca3..f2fe05f 100644 --- a/adk-rust/crates/detmir-portal/src/main.rs +++ b/adk-rust/crates/detmir-portal/src/main.rs @@ -5631,6 +5631,12 @@ fn render_report_markdown( text.push_str("# DetMir оперативный отчет\n\n"); text.push_str(&format!("Дата снимка: {}\n\n", snapshot.generated_at_utc)); text.push_str(&format!("Итог: {headline}\n\n")); + append_linked_risk_narrative_markdown( + &mut text, + context.risk_heatmap, + context.security_correlation, + ); + append_executive_dashboard_markdown(&mut text, context.executive_dashboard); text.push_str("## KPI\n\n"); text.push_str(&format!("- Общий статус: {}\n", summary.severity)); text.push_str(&format!( @@ -5695,12 +5701,6 @@ fn render_report_markdown( for item in recommendations { text.push_str(&format!("- {item}\n")); } - append_executive_dashboard_markdown(&mut text, context.executive_dashboard); - append_linked_risk_narrative_markdown( - &mut text, - context.risk_heatmap, - context.security_correlation, - ); append_agent_quality_markdown(&mut text, &snapshot.agent_quality); append_agent_quality_history_markdown( &mut text, @@ -10103,6 +10103,13 @@ mod tests { .contains("## Связанная картина риска") ); let markdown = report["markdown"].as_str().unwrap(); + assert!( + markdown.find("## Связанная картина риска").unwrap() < markdown.find("## KPI").unwrap() + ); + assert!( + markdown.find("## Связанная картина риска").unwrap() + < markdown.find("## Сводка руководителя").unwrap() + ); assert!( markdown.find("## Связанная картина риска").unwrap() < markdown.find("## Достоверность данных").unwrap() diff --git a/docs/BUSINESS_RISK_RU.md b/docs/BUSINESS_RISK_RU.md index e5bd8c3..d3513d1 100644 --- a/docs/BUSINESS_RISK_RU.md +++ b/docs/BUSINESS_RISK_RU.md @@ -346,15 +346,17 @@ POST /api/cases/{case_id}/status ## Markdown -Оперативный отчет содержит раздел `Связанная картина риска` сразу после -`Сводка руководителя`, до технических деталей. Это главный управленческий -вывод: что происходит, почему это риск и какие слои это подтверждают. +Оперативный отчет выводит раздел `Связанная картина риска` первым +содержательным разделом после заголовка, даты и краткого итога. Это главный +управленческий вывод: что происходит, почему это риск и какие слои это +подтверждают. Оперативный отчет содержит разделы: ```text -## Сводка руководителя ## Связанная картина риска +## Сводка руководителя +## KPI ## Достоверность данных ## SLA покрытия агентов ## Карта рисков подразделений