diff --git a/TODO.md b/TODO.md index 704a64c..96115fc 100644 --- a/TODO.md +++ b/TODO.md @@ -29,16 +29,23 @@ Refactor ground rules: # Next Step -Playtest hardening pass: play several full games with the tcell binary and -extend run_test.go to drive a deeper multi-level playthrough (descend past level -5, use potions, scrolls, zapping, save/restore). Note: game-over now exits the -process (step 8), so scripted drives must stay bounded and avoid -death/quit/save-command; exercise the exit paths (death display, 'S' save) -another way if needed. Fix any panics, message mismatches, or divergences from -the C behavior that this uncovers, with regression tests. +Verify the seed-compatibility claim against the C reference on c-master: same +seed, same dungeon, same item tables, for several seeds. # Completed Steps +- 2026-07-23 Playtest hardening (playtest-hardening): added two death-safe + crash-sweep drives through the real turn loop, within the step-8 os.Exit + constraint (a fortify() helper pins HP/food/exp and clears the freeze/stuck + counters each turn so no death exits the test binary; fixed seeds keep them + deterministic). TestDeepPlaythrough uses quaff/read/zap through command + dispatch, then descends to depth 8 with a save/restore at depth 4; + TestTurnLoopCrashSweep mashes movement/search/rest for 200 turns on four + seeds. Neither surfaced a panic. The interactive "play several games at a real + tcell terminal" portion needs a human at an 80x24 terminal and is left to the + maintainer; the binary's non-interactive paths (`-s` scores) were + smoke-tested. + - 2026-07-23 Docs refresh (docs-refresh): rewrote ARCHITECTURE.md Part 2 (the pre-implementation design sketch) to match the final code — current type/field names (ObjectKind, DiceSpec, split o_arm, step-1 flag names, TrapCount, Level @@ -157,17 +164,15 @@ the C behavior that this uncovers, with regression tests. # Future Steps -1. Verify the seed-compatibility claim against the C reference on c-master: same - seed, same dungeon, same item tables, for several seeds. -2. Broaden unit test coverage where playtesting finds thin spots (rings, sticks, +1. Broaden unit test coverage where playtesting finds thin spots (rings, sticks, wizard commands). -3. Tag a release once a full game (Amulet retrieval and score entry) completes +2. Tag a release once a full game (Amulet retrieval and score entry) completes without defects. -4. Full-terminal-size support (deferred by explicit decision 2026-07-06): +3. Full-terminal-size support (deferred by explicit decision 2026-07-06): per-game dungeon dimensions instead of the 80x24 constants; open design questions are resize policy, gameplay tuning at larger sizes, and a --classic 80x24 mode. -5. Note: this repo is exempt from the standard policy scaffold. A minimal dev +4. Note: this repo is exempt from the standard policy scaffold. A minimal dev Makefile (fmt/fmt-check/lint/test/check targets) exists per sneak's 2026-07-07 request, but do not add a Dockerfile, CI config, or REPO_POLICIES.md.