fix(tools): stage course cards from M5, audit noun words without flagging identifiers, Node<24.2 main guard, rename-proof expansion-check, safe check-links

- cardDirs: course/cards only from Module 5 (spec 6.2a); fixture modules 04/05 and tests
- coupling-audit: noun words match as UPPERCASE, PascalCase or a whole string literal;
  lowercase identifiers like key/flag pass; card names keep every variant
- isMain() argv guard replaces import.meta.main in coupling-audit and verify-references;
  engines.node >=22
- expansion-check: git diff --no-renames so moving engine code into content fails
- start-module and other tools: clear error when .course.json is missing
- check-links: malformed URLs reported as invalid URL instead of throwing

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas WintherandClaude Opus 5.5 committed 2026-10-29 19:06:56 +01:00
1 parent 0700cac492
commit ad0701395d
26 files changed
+213 -47

No files matched your search

+3
View File
@@ -3,6 +3,9 @@
"private": true,
"type": "module",
"license": "MIT",
"engines": {
"node": ">=22"
},
"scripts": {
"test:tools": "node --test tools/test/*.test.mjs",
"check": "node tools/sync-check.mjs",