Skip to content
Aabha AI Academy

All courses · Course overview · Lesson sequence

Skip to lesson text

capstone/starter.py

"""Runnable learner driver. Implement the two decision helpers; no live actions."""
import hashlib
import json
from pathlib import Path
import sys

sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "project"))
import opslab


def blocking_reasons(evidence: dict) -> list[str]:
    """Apply every condition in capstone/BRIEF.md; missing evidence blocks.

    Return sorted reason strings; do not mutate supplied evidence.
    """
    raise NotImplementedError("Complete the cross-layer decision")


def recommend(evidence: dict) -> dict:
    """Return decision, blocking_reasons, recovery_required, live_authorization.

    A pass is PASS_SIMULATION only. Live authorization is always False.
    """
    raise NotImplementedError("Complete the bounded recommendation")


def main() -> int:
    evidence = opslab.capstone_evidence(opslab.load())
    try:
        decision = recommend(evidence)
    except NotImplementedError as error:
        print(json.dumps({"status": "starter_incomplete", "message": str(error),
                          "evidence_kind": evidence["evidence_kind"], "live_authorization": False,
                          "holdout_route_decision": evidence["route"]["decision"]}, indent=2))
        return 3
    print(json.dumps({"recommendation": decision, "evidence": evidence,
                      "decision_code_sha256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest()},
                     indent=2, sort_keys=True, allow_nan=False))
    return 0


if __name__ == "__main__":
    raise SystemExit(main())

Download this source file