Commit Graph
16 Commits
Author SHA1 Message Date
Lucas WintherandClaude Fable 5.2 b6cbacbd42 docs: handoff (rulings, corrections, open items and deferred minors after the v2 extensions)
CI / Tool tests and sync-check (push) Successful in 13s
CI / Verify references (all modules, Rust and TS) (push) Successful in 2m1s
CI / Verify Expansion Drop solutions (all modules, Rust and TS) (push) Successful in 1m59s
CI / Coupling audit on references (push) Successful in 6s
CI / Differential fuzzing of the Rust and TS references (300 seeds) (push) Successful in 1m0s
CI / Mutation check (tools/mutants.json against the highest TS reference) (push) Successful in 41s
CI / Verify the SpellGrid level proofs (solver) (push) Successful in 6m13s
CI / Site build (push) Successful in 13s
CI / Naive engine tests (Module 0) (push) Successful in 20s
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 18:28:58 +01:00
Lucas WintherandClaude Opus 5.5 85959ba5a0 fix: final review (engine errors end a Sequence cleanly; nesting guard labelled as the course's; Node 22.15; minor lesson and tool fixes)
CI / Tool tests and sync-check (push) Successful in 16s
CI / Verify references (all modules, Rust and TS) (push) Successful in 2m4s
CI / Verify Expansion Drop solutions (all modules, Rust and TS) (push) Successful in 2m1s
CI / Coupling audit on references (push) Successful in 5s
CI / Differential fuzzing of the Rust and TS references (300 seeds) (push) Successful in 53s
CI / Mutation check (tools/mutants.json against the highest TS reference) (push) Successful in 34s
CI / Verify the SpellGrid level proofs (solver) (push) Successful in 5m25s
CI / Site build (push) Successful in 15s
CI / Naive engine tests (Module 0) (push) Successful in 20s
I1: run-scenario and both SpellGrid CLIs check moves first and treat any other engine
error as fatal (same text in both tracks); trigger blocks close on error (try/finally,
catch_unwind in Rust); unknown summons rejected. I2, I3, M1-M7, T3, T9a-c, T10a-b.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 14:58:27 +01:00
Lucas WintherandClaude Opus 5.5 edb1bfd817 fix: Module 12 review round 1 (log the Combat and Drakkari excerpts the lesson quotes; say where Redemption and Poisonous come from)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 13:38:07 +01:00
Lucas WintherandClaude Opus 5.5 fb9d0a4eb4 feat: Module 12, Combat (attack as one Sequence, Taunt, defender-first as a queue priority, end of turn; Bonechewer Brawler as the Expansion Drop)
Adds course/12-combat: lesson, scenarios, nine test_12 tests in both tracks,
the cumulative reference (Module 11's plus combat) and the drop. The Damage
action carries per-target hits with a priority; react stable-sorts its Queue by
priority before order of play, so the triggers answering the defender's Damage
Event go first. orderAttack/canAttack/endTurn join the harness (orderAttack
because attack(id) already reads Attack). endOfTurn triggers fire, so Drakkari
Enchanter's data is live. Test Bell is scoped to Module 12's cards. Harness
contract, catalog, research notes and earlier lessons' forward pointers follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 13:34:20 +01:00
Lucas WintherandClaude Opus 5.5 c8fff05ccb fix: Module 11 review round 1 (ON ALL: quote the Conditions page, label the course's meaning)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 13:04:54 +01:00
Lucas WintherandClaude Opus 5.5 34c655c1a4 feat: Module 11, Conditions (NOUN ON NOUN IS ..., checked per object at use; NEAR as the Expansion Drop)
Adds course/11-conditions: lesson, scenarios, nine test_11 tests in both
tracks, the cumulative reference (Module 10's plus conditions) and the NEAR
drop. The engine learns a condition role, rules carry conditions, and
Level.hasProperty and conversion evaluate content's condition checks against
the board whenever a rule is used. Resolution pairs only rules with the same
conditions. Catalog, harness contract, research notes and the diff-tracks
generator follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 13:00:26 +01:00
Lucas WintherandClaude Opus 5.5 372c99c306 feat: replacement effects in Module 4 (Armor absorption, Bolf Ramshield redirect)
Applying a Damage to one target now runs DAMAGE_STEPS = [redirect, armor]
first. A damageRedirect aura (Bolf Ramshield, fetched from the wiki) sends
damage meant for its owner's hero to the oldest such minion; Armor absorbs
damage to a hero before Health, logged as the new ArmorLost{player, amount}
just before a full-amount Damaged. Four new Module 4 tests; propagated to the
references of Modules 4-10 in both tracks; card schema, catalog, card JSON,
harness.md, Lessons 2, 4 and 5 updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 10:44:06 +01:00
Lucas WintherandClaude Fable 5.2 b36f4605cc docs: spec and plan for the course v2 extensions
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 09:45:01 +01:00
Lucas WintherandClaude Opus 5.5 0700cac492 docs: accuracy pass
CI / Tool tests and sync-check (push) Successful in 13s
CI / Verify references (all modules, Rust and TS) (push) Successful in 1m29s
CI / Coupling audit on references (push) Successful in 13s
CI / Site build (push) Successful in 22s
CI / Naive engine tests (Module 0) (push) Successful in 32s
Re-verify Teikari article quotes and GDC speaker, soften unsourced
claims (lessons 01, 06, 07, 10), add course-simplification bullets to
lesson 07's differs box, qualify OPEN obstruction wording in research,
and add tools/check-links.mjs (report-only) with npm run check:links.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:52:18 +01:00
Lucas WintherandClaude Opus 5.5 1f3359cfe2 feat: module 09 turn pipeline
Module 9 lesson, scenarios, tests (8, both tracks), reference engines
(TURN phase list, conversion, content-registered hazards, win/lost),
WEAK Expansion Drop, harness.md M9 semantics, research notes (WEAK page,
baba-is-auto Game::MovePlayer, X IS NOT X placement reading).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 04:28:17 +01:00
Lucas WintherandClaude Opus 5.5 e339788e64 fix: module 08 review round 1 (Q4 board, OPEN reading, citations)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 04:11:56 +01:00
Lucas WintherandClaude Opus 5.5 bd80cefbef feat: module 08 push chains
Movement planned in full, then committed: a Planner builds a plan
(moving and destroyed ids) by running content's movement responses
(OPEN/SHUT, PUSH, STOP) for every step, rolling back failed branches.
Edge of level blocks; YOU objects move furthest-ahead first; rules are
reparsed once after movement. Harness: move/move_dir(Dir), posOf,
kindsAt. Expansion Drop: PULL as one word plus one content response.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 04:05:42 +01:00
Lucas WintherandClaude Opus 5.5 78dc09b303 feat: module 01 handles
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 00:17:31 +01:00
Lucas WintherandClaude Opus 5.5 12081223ef Add implementation plan
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:52:02 +01:00
Lucas WintherandClaude Opus 5.5 113491f140 Design: hosting and licence decisions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:47:24 +01:00
Lucas WintherandClaude Opus 5.5 98fd6e431b Add course design draft and sourced research notes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:44:08 +01:00