Skip to main content

assessment_of

Function assessment_of 

Source
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);