feat: online verification, node removals, and knowledge browser
CI / quality (push) Canceled after 0s
CI / quality (push) Canceled after 0s
Adds claim-bound online evidence records and citation verification scripts, node removal transport/adapter, retrieval benchmark and owner-review tooling, GraphCanvas/SourceDetail knowledge browser UI, and the ingest handoff helper. Bumps the agents/gewu pack to the online-verification branch.
This commit is contained in:
1 parent
a3156f4e08
commit
78033bb830
83 files changed
+13476
-1051
No files matched your search
@@ -0,0 +1,77 @@
|
||||
from scripts.run_four_file_automation import gate_summary
|
||||
|
||||
|
||||
def test_gate_summary_does_not_qualify_when_protected_and_answer_gates_remain():
|
||||
report = gate_summary(
|
||||
source_checks=[{"status": "pass"}],
|
||||
review_ledger={"summary": {"evidence_bindings_invalid": 0, "claims": 2, "items": 1}},
|
||||
retrieval_score={
|
||||
"question_count": 24,
|
||||
"mean_conditional_recall_at_5": 0.9,
|
||||
"conditional_hit_rate": 1.0,
|
||||
"pagination_blocked_queries": 0,
|
||||
},
|
||||
answer_reports={
|
||||
"answers": {"status": "invalid", "checked": 1, "issues": [{"code": "BAD"}]}
|
||||
},
|
||||
support_judgments={"strict_group_support_fraction": 1.0},
|
||||
answer_scores={"50k": {"content_points_before_citation_penalty": 48, "max_points": 48}},
|
||||
behavioral_results={
|
||||
"exact_replay": {"passed": True},
|
||||
"quote": {"status": "invalid"},
|
||||
"offset": {"status": "invalid"},
|
||||
"extraction": {"status": "invalid"},
|
||||
"revision": {"status": "invalid"},
|
||||
"meaning": {"status": "eligible"},
|
||||
"unauthorized_get_node": {"denied": True},
|
||||
"unauthorized_search": {"denied": True},
|
||||
},
|
||||
)
|
||||
|
||||
assert report["qualification"] == "not_qualified"
|
||||
assert report["gates"]["retrieval_tuning"]["status"] == "pass"
|
||||
assert report["gates"]["answer_citations"]["status"] == "fail"
|
||||
assert report["gates"]["owner_protected_decisions"]["status"] == "pending_owner"
|
||||
assert report["gates"]["behavioral_suite"]["status"] == "partial"
|
||||
assert report["gates"]["semantic_support_review"]["status"] == "gap_demonstrated_not_judged"
|
||||
assert "reserved_questions" in report["remaining_gates"]
|
||||
|
||||
|
||||
def test_gate_summary_marks_retrieval_failure_when_pagination_is_blocked():
|
||||
report = gate_summary(
|
||||
source_checks=[{"status": "pass"}],
|
||||
review_ledger={"summary": {"evidence_bindings_invalid": 0, "claims": 0, "items": 0}},
|
||||
retrieval_score={
|
||||
"question_count": 24,
|
||||
"mean_conditional_recall_at_5": 0.9,
|
||||
"conditional_hit_rate": 1.0,
|
||||
"pagination_blocked_queries": 1,
|
||||
},
|
||||
answer_reports={"answers": {"status": "valid", "checked": 0, "issues": []}},
|
||||
support_judgments={"strict_group_support_fraction": 1.0},
|
||||
answer_scores={"50k": {"content_points_before_citation_penalty": 48, "max_points": 48}},
|
||||
)
|
||||
|
||||
assert report["gates"]["retrieval_tuning"]["status"] == "fail"
|
||||
assert report["qualification"] == "not_qualified"
|
||||
|
||||
|
||||
def test_semantic_judge_completion_remains_advisory_until_candidate_actions_finish():
|
||||
report = gate_summary(
|
||||
source_checks=[{"status": "pass"}],
|
||||
review_ledger={"summary": {"evidence_bindings_invalid": 0, "claims": 1, "items": 1}},
|
||||
retrieval_score={"question_count": 24, "mean_conditional_recall_at_5": 1.0},
|
||||
answer_reports={"answers": {"status": "valid", "checked": 0, "issues": []}},
|
||||
support_judgments={"strict_group_support_fraction": 1.0},
|
||||
answer_scores={"50k": {"content_points_before_citation_penalty": 48, "max_points": 48}},
|
||||
semantic_results={
|
||||
"claim_count": 1,
|
||||
"outcomes": {"advisory_support_consensus": 1},
|
||||
},
|
||||
)
|
||||
|
||||
assert (
|
||||
report["gates"]["semantic_support_review"]["status"]
|
||||
== "advisory_complete_candidate_actions_pending"
|
||||
)
|
||||
assert report["qualification"] == "not_qualified"
|
||||
Reference in new issue
Block a user