ДОМЕНЫ - ВОПРОСЫ - СКЛАД - Склад: усилить follow-up оркестрацию и business-first формат ответов

This commit is contained in:
2026-04-14 21:42:19 +03:00
parent 97b2a9b028
commit c020ef08e1
25 changed files with 1742 additions and 336 deletions
+31
View File
@@ -10,6 +10,7 @@ from scripts.domain_case_loop import (
build_scenario_acceptance_matrix,
carry_forward_analysis_context,
derive_pack_final_status,
evaluate_analyst_gate,
load_scenario_pack,
merge_scenario_date_scope,
)
@@ -247,6 +248,8 @@ def test_build_scenario_acceptance_matrix_marks_partial_when_wording_family_is_m
matrix = build_scenario_acceptance_matrix(pack, scenario_results)
assert "| N03_selected_item_supplier | partial |" in matrix
assert "missing_wording_families" in matrix
assert "ui_selected_object_colloquial" in matrix
def test_derive_pack_final_status_downgrades_accepted_when_matrix_contains_partial_coverage() -> None:
@@ -292,3 +295,31 @@ def test_derive_pack_final_status_downgrades_accepted_when_matrix_contains_parti
]
assert derive_pack_final_status(pack, scenario_results) == "partial"
def test_evaluate_analyst_gate_requires_temporal_honesty_field_truth_and_layering() -> None:
verdict = {
"quality_score": 91,
"unresolved_p0_count": 0,
"regression_detected": False,
"direct_answer_ok": True,
"business_usefulness_ok": True,
"temporal_honesty_ok": False,
"field_truth_ok": True,
"answer_layering_ok": True,
"loop_decision": "accepted",
"requires_user_decision": False,
"user_decision_type": "none",
"user_decision_prompt": None,
}
accepted, loop_decision, requires_user_decision, user_decision_type, user_decision_prompt = evaluate_analyst_gate(
verdict,
target_score=80,
)
assert accepted is False
assert loop_decision == "accepted"
assert requires_user_decision is False
assert user_decision_type == "none"
assert user_decision_prompt is None