All courses · Course overview · Lesson sequence
Skip to lesson textcapstone/check_submission.py
"""A formative local acceptance check; not a platform grader/certificate."""
import argparse
import importlib
def check(report):
assert report["evidence_kind"] == "synthetic_local_capstone_no_llm"
assert report["baseline"]["total"] >= 8 and report["baseline"]["all_gates_pass"]
assert report["baseline"]["correct"] == report["baseline"]["total"]
assert report["candidate"]["total"] == report["baseline"]["total"]
assert 0 <= report["candidate"]["correct"] <= report["candidate"]["total"]
assert report["candidate"]["all_gates_pass"]
assert report["recovery"]["before_phase"] == "IN_FLIGHT"
assert report["recovery"]["after_reservations"] > report["recovery"]["before_reservations"]
assert report["review"]["receipt"]["real_writes"] == 0
assert report["review"]["rejected_phase"] == "REJECTED" and report["review"]["rejected_receipt"] is None
assert report["review"]["saved_receipt_replayed"]
added = report["added_case"]
assert type(added["observed_year"]) is int and 1000 <= added["observed_year"] <= 2100
assert type(added["catalogue_year"]) is int and 1000 <= added["catalogue_year"] <= 2100
assert added["finding"] == ("MATCH" if added["observed_year"] == added["catalogue_year"] else "MISMATCH")
assert added["phase"] == "REJECTED"
assert report["release_recommendation"] == "local_synthetic_demo_only"
assert len(report["limitations"]) >= 3
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--module", choices=("starter", "reference"), default="reference")
selected = parser.parse_args().module
check(importlib.import_module(selected).build_evidence())
print(f"Formative capstone structure checks passed for {selected}; human explanation/rubric still required")