"""Learner-owned evaluator for DAT014-LAB1; intentionally incomplete."""
from __future__ import annotations
import json
from pathlib import Path

REQUIRED = {
    "scenario_boundary", "prediction", "baseline_observation", "failure_probe",
    "failure_observation", "repair_or_bounded_defer", "transfer_result",
    "missing_evidence", "non_claims"
}

def evaluate(record: dict) -> dict:
    missing = sorted(REQUIRED - set(record))
    if missing:
        return {"status": "INCOMPLETE", "missing_fields": missing}
    # TODO: define bounded, lesson-specific checks without hard-coding a final judgment.
    raise NotImplementedError("Learner must implement the bounded evaluation rule")

if __name__ == "__main__":
    record = json.loads(Path("evidence/record.template.json").read_text(encoding="utf-8"))
    print(json.dumps(evaluate(record), ensure_ascii=False, indent=2))
