- Rename course/11-break-your-engine to 13-break-your-engine and update every link and mention; start-module explains that Module 13 has no tests to start. - tools/diff-tracks.mjs (npm run diff:tracks): stages both references of a module, generates a seeded random SpellGrid level and script per seed, pipes it to the Rust and TypeScript CLIs and diffs their output; crashes on one or both sides fail. stagePlay takes a module number. - register_assembled: the TypeScript track compared only the text of an existing Assembled card, so a base re-registered with a new cost (or a different split) silently rewrote the earlier card. It now compares every field the engine reads, as Rust does (Modules 5-10). New test_05_assemble_never_rewrites_an_earlier_card. - SpellGrid CLIs: coordinates and chooser numbers are 1-9 plain digits in both tracks (Rust accepted signs, TypeScript accepted "+2", "0x2", "1e0"); Rust quotes card names verbatim instead of with Debug escapes; Rust joins the minion list with "; " instead of rewriting ", ". Two new CLI tests per track. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mentor path
Take the course with an AI agent as a Socratic mentor. The agent asks, you build: it never writes your engine or content, releases hints one tier at a time, and holds you to the Zero-Coupling Law with the course's tools.
SKILL.md is an Agent Skill (Claude Code compatible). It contains only teaching rules; the curriculum is read from the course repository.
Install
mkdir -p ~/.claude/skills
cp -r mentor ~/.claude/skills/systemic-design-mentor
Use
- Clone this repository. Copy
workspace-template/<rust|ts>to a directory of your own and put it under git (see Module 0). - Open your agent in your workspace, not the course repository, and say: "start the systemic design course".
- The mentor asks once for the course repository path and stores it in the workspace file
.course-progress.json:{ "courseRoot": "...", "module": "04", "beat": "Build", "hintsUsed": 1, "expansionBase": "<git ref>" }. Add it to your.gitignore.
The mentor runs tools/start-module.mjs, tools/coupling-audit.mjs and tools/expansion-check.mjs from the course repository against your workspace. It may read and test your code but will not edit engineDirs, contentDirs or the harness. Ask it "does the real game do X" and it answers only from the lesson's cited sources, or says the course does not cover it.
Module 0 uses naive-engine/ rather than the workspace, so no tests are copied for it.