pub fn render_markdown(state: &ReasoningState) -> StringExpand description
The state as Markdown: what a handover carries and a final report ends with. Empty when there is nothing to say.
The paragraph opens with the totals, then lists every standing decision with its review and validation, every assessment still open, planned or disputed with its open questions, and every consultation that degraded.
use majordomus_cli::reasoning::state::{derive, render_markdown};
use majordomus_cli::reasoning::store::Loaded;
let mut loaded = Loaded::default();
assert_eq!(render_markdown(&derive(&loaded, None)), "");
loaded.records.push(rec("assessment-1", 1, json!({
"kind": "assessment", "subject": "lock scope", "questions": ["held across an await?"],
})));
let report = render_markdown(&derive(&loaded, None));
let lines: Vec<&str> = report.lines().collect();
assert_eq!(
lines,
[
"Reasoning: 1 record(s); 0 consultation(s) completed, 0 failed; \
0 independent reviewer(s).",
"- Unresolved assessment-1: lock scope (Open)",
" - open question: held across an await?",
]
);