hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

commit b10c6d6cafbb8c7ff809061fca0e4d1e402fcd79
parent c8f9ac70c10489931a8f8aab584498ba776523b3
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 13:56:29 +0000

core: gate semantic suitability on sufficient evidence

Diffstat:
Asrc/hyf_application/match_semantic.mojo | 21+++++++++++++++++++++
Mtests/test_application.mojo | 15+++++++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/hyf_application/match_semantic.mojo b/src/hyf_application/match_semantic.mojo @@ -0,0 +1,21 @@ +from hyf_core.domain.eligibility import ConstraintAssessment, constraint_assessment + + +def evidence_sufficient(evidence_count: Int, required: Int) -> Bool: + return evidence_count >= required + + +def gated_semantic_suitability( + score: Int, evidence_count: Int, required_evidence: Int +) raises -> ConstraintAssessment: + if not evidence_sufficient(evidence_count, required_evidence): + return constraint_assessment( + "suitability", "unknown", True, "evidence_insufficient" + ) + return constraint_assessment( + "suitability", "pass", True, "evidence_sufficient" + ) + + +def unknown_evidence_is_midpoint_score() -> Bool: + return False diff --git a/tests/test_application.mojo b/tests/test_application.mojo @@ -611,3 +611,18 @@ def test_alternative_plans_and_planner_limitations() raises: assert_true(not offer.alternatives_are_simultaneous) assert_equal(len(offer.unsupported), 1) assert_true(not unsupported_mode_means_no_supply()) + + +from hyf_application.match_semantic import ( + evidence_sufficient, + gated_semantic_suitability, + unknown_evidence_is_midpoint_score, +) + + +def test_semantic_suitability_gated_on_evidence() raises: + assert_true(evidence_sufficient(2, 1)) + assert_equal(gated_semantic_suitability(3, 2, 1).result, "pass") + assert_equal(gated_semantic_suitability(3, 0, 1).result, "unknown") + assert_equal(gated_semantic_suitability(3, 0, 1).reason, "evidence_insufficient") + assert_true(not unknown_evidence_is_midpoint_score())