Module grade

Module grade 

Source
Expand description

The lesson↔runner grading join: pick a language’s runner and turn each lesson check code-string into a typed pass/fail outcome.

This is where lesson meets runner. It depends on both only through their public types — a Language to choose a runner, the Runner trait to execute, and a lesson’s check code-strings to grade against (§3.1). Selecting the runner is pure; running checks is effectful (§2.1, §2.2). This module classifies outcomes; it does NOT build prompts or call LLMs — that is the provider layer’s job (§4.1).

Enums§

CheckOutcome
The verdict for a single lesson check.
RunnerKind
A runner chosen for a lesson’s language.

Functions§

run_checks
Run each check against submission through runner, returning one CheckOutcome per check, in order.
select_runner
Select the runner for a lesson’s language, threading packages to the Python runner (ADR-0011).