Add configurable evidence guard for resume tailoring

This commit is contained in:
2026-08-02 23:10:13 +03:30
parent 1c75afe0fd
commit a7a02ef141
12 changed files with 664 additions and 37 deletions
+28
View File
@@ -140,6 +140,34 @@ def test_tailoring_strength_rejects_out_of_range_values() -> None:
tailor_resume(FakeLLM([]), profile(), "long job post", tailoring_strength=101)
def test_profile_evidence_mode_allows_claims_without_fact_ids() -> None:
flexible = package()
for item in flexible.resume.summary:
item.evidence_ids = []
for section in flexible.resume.sections:
for item in section.items:
item.evidence_ids = []
llm = FakeLLM([flexible, flexible])
result = tailor_resume(
llm,
profile(),
"long job post",
evidence_mode="profile",
)
assert result.resume.summary[0].evidence_ids == []
assert "Per-claim evidence IDs are optional" in llm.calls[1][0]
def test_strict_evidence_mode_still_rejects_missing_fact_ids() -> None:
flexible = package()
flexible.resume.summary[0].evidence_ids = []
with pytest.raises(ValueError, match="no evidence"):
tailor_resume(FakeLLM([flexible]), profile(), "long job post")
def test_revision_chat_rewrites_and_audits_current_package() -> None:
current = package()
revised = package()