- tools/mutation-check.mjs with tools/mutants.json: thirteen mutants against the Module 12 TypeScript reference (the eight of Module 13's first table, plus Armor before redirect, conditions at parse time, no defender priority, and the summon seam's noun check); all killed. - tools/run-scenario.mjs with tools/scenario/run.ts: a designer's cards, words and seam words as data, played on the Module 10 TypeScript reference. - course/10-spellgrid/designer-capstone.md and designer-example/ (output.txt is checked against the tool's output in the tools tests). - CI: diff-tracks (300 seeds), mutation-check, verify-levels. - Module 13: the mutation table is the tool's output; differential testing, undo and the solver sections describe the repository as it is. Lesson 10 says what the level proofs prove for levels 6, 8 and 9. - schema.mjs: a value that matches no oneOf branch is reported against the branch its const fields pick. 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.