Direct AI coding agents to build machine learning tools in Rust, and practice the one habit that makes that safe: the agent proposes, the compiler checks that it builds, and you verify the result by running it. Across the courses you clean and validate data with Polars, bind claims to checked terminology, verify agent changes with tests, coverage and quality gates in CI, and run parallel subagents behind receipts and quorums that refuse a bad result.
None of this makes an agent correct; it makes a wrong result land somewhere visible before anyone believes it.