Expand description
The student run loop: execute a submission, grade it, ask the LLM for a
verdict, and bundle the result into a typed RunReport.
This is the effect-shell that composes the runner,
grade, and llm layers through their public
types only (§2.4, §3.3): it executes the submission for its captured output,
grades the lesson’s checks, builds the prompt, and requests a verdict. It adds
no domain logic of its own — it neither builds prompts nor talks to a provider
directly (those are the llm layer’s), and it does not render output or map
exit codes (those belong to the cli edge). The result is a RunReport, a
typed value carrying the Verdict, the per-check outcomes, and the captured
output, with a stable JSON form for --format json.
Structs§
- RunReport
- The result of running one submission against a lesson: the graded verdict, the per-check outcomes, and the submission’s captured output.
Enums§
- RunError
- Why a run could not produce a report.
Functions§
- run_
lesson - Run
submissionagainstlessonand produce aRunReport.