- 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>
19 lines
519 B
JSON
19 lines
519 B
JSON
{
|
|
"name": "systemic-design-course",
|
|
"private": true,
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"test:tools": "node --test tools/test/*.test.mjs",
|
|
"check": "node tools/sync-check.mjs",
|
|
"test:site": "node --test site/scripts/*.test.mjs",
|
|
"check:links": "node tools/check-links.mjs",
|
|
"play:spellgrid": "node tools/play-spellgrid.mjs",
|
|
"solve:spellgrid": "node tools/solve-spellgrid.mjs",
|
|
"diff:tracks": "node tools/diff-tracks.mjs"
|
|
}
|
|
}
|