Files
systemic-game-design-course/mentor
Lucas WintherandClaude Opus 5.5 06a1b34c5d feat: Module 11 becomes 13; diff-tracks fuzzer; align the two reference tracks
- 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>
2026-11-11 10:08:56 +01:00
..
2026-10-29 05:13:44 +01:00

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

  1. Clone this repository. Copy workspace-template/<rust|ts> to a directory of your own and put it under git (see Module 0).
  2. Open your agent in your workspace, not the course repository, and say: "start the systemic design course".
  3. 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.