pub fn assessment_of(
loaded: &Loaded,
record: &ReasoningRecord,
) -> Option<String>Expand description
The assessment a record belongs to, when it belongs to one.
Records that name their assessment answer directly; a consultation answers through its plan, a resolution through its disagreement and a validation through its conclusion. A reference to an unrecorded record, and an attempt that names no assessment, belong to none.
use majordomus_cli::reasoning::record::*;
use majordomus_cli::reasoning::store::{assessment_of, Loaded};
fn record(id: &str, body: ReasoningBody) -> ReasoningRecord {
ReasoningRecord {
schema: RECORD_SCHEMA.into(),
version: RECORD_VERSION,
id: id.into(),
task: "t".into(),
recorded_at: "2026-10-01T00:00:00Z".into(),
head: None,
redacted: vec![],
body,
}
}
let mut loaded = Loaded::default();
loaded.records.push(record(
"conclusion-1",
ReasoningBody::Conclusion(StoredConclusion {
input: ConclusionInput { assessment: "assessment-1".into(), ..Default::default() },
reviewed_by: vec![],
independent_review_count: 0,
}),
));
let validation = |conclusion: &str| {
record(
"validation-1",
ReasoningBody::Validation(ValidationInput {
conclusion: conclusion.into(),
check: "the test passes".into(),
command: None,
outcome: ValidationOutcome::Pass,
evidence: vec![],
}),
)
};
let found = assessment_of(&loaded, &validation("conclusion-1"));
assert_eq!(found.as_deref(), Some("assessment-1"));
assert_eq!(assessment_of(&loaded, &validation("conclusion-9")), None);