File size: 4,010 Bytes
94cbe85
 
 
 
 
 
8046443
94cbe85
 
 
8046443
 
94cbe85
674c20a
8046443
ca9c95e
8046443
94cbe85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8046443
94cbe85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8046443
94cbe85
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import json
from pathlib import Path

from scripts import evidence_gate_status


def test_current_repo_report_marks_badge_claims_ready_with_external_gaps() -> None:
    report = evidence_gate_status.build_report()

    assert report["status"] == "incomplete"
    assert report["ready_for_badge_claims"] is True
    assert report["missing_badge_gate_keys"] == []
    assert report["gates"]["claim_audit"]["passed"] is True
    assert report["gates"]["hosted_omni_eval"]["passed"] is True
    assert report["gates"]["demo_video"]["passed"] is True
    assert report["gates"]["social_post"]["passed"] is True
    assert report["gates"]["all_six_merit_badges_claimed"]["passed"] is True
    assert report["gates"]["local_4b_50_case_eval"]["passed"] is False
    assert report["gates"]["no_cloud_route"]["passed"] is False
    assert report["gates"]["llama_champion_route"]["passed"] is False
    assert report["gates"]["local_asr_provider_proof"]["passed"] is False
    assert report["gates"]["trained_responder_user_test"]["passed"] is False
    assert "local_4b_50_case_eval" in report["missing_gate_keys"]
    assert "no_cloud_route" in report["missing_gate_keys"]
    assert "llama_champion_route" in report["missing_gate_keys"]
    assert "local_asr_provider_proof" in report["missing_gate_keys"]
    assert "local full-weight endpoint" in report["gates"]["local_4b_50_case_eval"]["next_action"]
    assert "real local Parakeet provider payload" in report["gates"]["local_asr_provider_proof"]["next_action"]


def test_report_uses_local_evidence_artifacts_when_present(tmp_path: Path) -> None:
    local_4b_dir = tmp_path / "traces/local_4b_evidence_20260607T000000Z"
    local_4b_dir.mkdir(parents=True)
    (local_4b_dir / "summary.json").write_text(
        json.dumps(
            {
                "status": "eval_completed",
                "total_cases": 50,
                "counts_as_no_cloud_route_proof": True,
                "counts_as_50_case_local_llm_competence": True,
            }
        ),
        encoding="utf-8",
    )
    (local_4b_dir / "eval_evidence_manifest.json").write_text("{}", encoding="utf-8")
    asr_dir = tmp_path / "traces/local_asr_parakeet_evidence_20260607T000000Z"
    asr_dir.mkdir(parents=True)
    (asr_dir / "summary.json").write_text(
        json.dumps(
            {
                "status": "local_asr_proof_passed",
                "counts_as_local_asr_artifact": True,
                "counts_as_local_asr_proof": True,
            }
        ),
        encoding="utf-8",
    )
    (asr_dir / "asr_evidence_manifest.json").write_text("{}", encoding="utf-8")
    docs = tmp_path / "docs"
    docs.mkdir()
    (docs / "submission_checklist.md").write_text(
        "\n".join(
            [
                "| Demo video | Pending | Pending |",
                "| Social post | Proof needed | Pending |",
            ]
        ),
        encoding="utf-8",
    )
    (docs / "user_test_notes.md").write_text(
        "Status: template only. No completed user-test results are recorded here yet.",
        encoding="utf-8",
    )
    (docs / "model_parameter_evidence_ledger.md").write_text(
        "4B Figment adapter stretch: Not trained, published, or measured in this ledger.",
        encoding="utf-8",
    )

    report = evidence_gate_status.build_report(tmp_path)

    assert report["gates"]["local_4b_50_case_eval"]["passed"] is True
    assert report["gates"]["no_cloud_route"]["passed"] is True
    assert report["gates"]["llama_champion_route"]["passed"] is True
    assert report["gates"]["local_asr_provider_proof"]["passed"] is True
    assert str(local_4b_dir / "eval_evidence_manifest.json") in report["gates"]["local_4b_50_case_eval"]["evidence_paths"]
    assert str(asr_dir / "asr_evidence_manifest.json") in report["gates"]["local_asr_provider_proof"]["evidence_paths"]
    assert report["status"] == "incomplete"
    assert report["ready_for_badge_claims"] is False
    assert "trained_responder_user_test" in report["missing_gate_keys"]