pub fn judge_facts(
asked: &str,
rel: Option<&str>,
facts: EditFacts<'_>,
) -> EditVerdictExpand description
Judge one edit of rel (repository-relative, or None when outside the checkout).
use majordomus_cli::guard::{judge_facts, ClaimSource, EditFacts};
let scope = vec!["lib".to_string()];
let facts = |task, claims| EditFacts {
required: Ok(true), mesh_enabled: true, task, session: Some("claude-code-s1"), claims,
};
// the active task's scope covers it
let v = judge_facts("lib/a.sh", Some("lib/a.sh"), facts(Some(("t-1", &scope[..])), ClaimSource::Claims(vec![])));
assert!(v.allowed);
assert_eq!(v.ground, "task");
// nothing covers it
let v = judge_facts("docs/x.md", Some("docs/x.md"), facts(Some(("t-1", &scope[..])), ClaimSource::Claims(vec![])));
assert!(!v.allowed);
assert_eq!(v.ground, "unclaimed");
assert!(v.remedy.unwrap().contains("--session claude-code-s1"));
// no server to ask: let through, and said
let v = judge_facts("docs/x.md", Some("docs/x.md"), facts(None, ClaimSource::Unavailable("no server".into())));
assert!(v.allowed);
assert_eq!(v.ground, "undecided");