hyf

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

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

core: add culinary-use semantic scoring

Diffstat:
Msrc/hyf_application/match_semantic.mojo | 15+++++++++++++++
Mtests/test_application.mojo | 16++++++++++++++++
2 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/hyf_application/match_semantic.mojo b/src/hyf_application/match_semantic.mojo @@ -19,3 +19,18 @@ def gated_semantic_suitability( def unknown_evidence_is_midpoint_score() -> Bool: return False + + +from hyf_assist.evaluator import TypedAnswer, normalize_score + + +def culinary_use_score( + answer: TypedAnswer, levels: Int, evidence_count: Int, required_evidence: Int +) raises -> Float64: + if not evidence_sufficient(evidence_count, required_evidence): + raise Error("evidence_insufficient") + return normalize_score(answer, levels) + + +def culinary_score_affects_feasibility() -> Bool: + return False diff --git a/tests/test_application.mojo b/tests/test_application.mojo @@ -626,3 +626,19 @@ def test_semantic_suitability_gated_on_evidence() raises: 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()) + + +from hyf_application.match_semantic import ( + culinary_score_affects_feasibility, + culinary_use_score, +) +from hyf_assist.evaluator import typed_score + + +def test_culinary_use_semantic_scoring_gated() raises: + var answer = typed_score("culinary_fit", 2, 3, 1.0) + assert_equal(culinary_use_score(answer, 3, 1, 1), 1.0) + assert_equal(culinary_use_score(typed_score("culinary_fit", 1, 3, 1.0), 3, 1, 1), 0.5) + with assert_raises(): + _ = culinary_use_score(answer, 3, 0, 1) + assert_true(not culinary_score_affects_feasibility())