Module 11 Summary
What this module established
Build chains in functions that accept the model, and everything except the model's own behaviour becomes testable with no key, no cost and no network. Chains fail at boundaries, on missing variables, on parser mismatches - none of which needs a real model to detect.
Carry forward
- Fake models make the retry and refusal paths reachable. You cannot reliably make a real model return invalid JSON.
- Assert on structure. A suite full of exact matches gets disabled after the third false failure.
- Score retrieval, citation and refusal separately. A faithfully cited wrong chunk passes any citation-only check.
Before moving on
Move on when the whole suite runs offline, the refusal path is driven deliberately, and no assertion depends on exact wording.
