Rotate TODO to seed-verification step (playtest hardening done)

This commit is contained in:
2026-07-23 08:59:03 +07:00
parent 061da11877
commit e7e1bc3c40

31
TODO.md
View File

@@ -29,16 +29,23 @@ Refactor ground rules:
# Next Step # Next Step
Playtest hardening pass: play several full games with the tcell binary and Verify the seed-compatibility claim against the C reference on c-master: same
extend run_test.go to drive a deeper multi-level playthrough (descend past level seed, same dungeon, same item tables, for several seeds.
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.
# Completed Steps # 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 - 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 pre-implementation design sketch) to match the final code — current type/field
names (ObjectKind, DiceSpec, split o_arm, step-1 flag names, TrapCount, Level 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 # Future Steps
1. Verify the seed-compatibility claim against the C reference on c-master: same 1. Broaden unit test coverage where playtesting finds thin spots (rings, sticks,
seed, same dungeon, same item tables, for several seeds.
2. Broaden unit test coverage where playtesting finds thin spots (rings, sticks,
wizard commands). 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. 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 per-game dungeon dimensions instead of the 80x24 constants; open design
questions are resize policy, gameplay tuning at larger sizes, and a --classic questions are resize policy, gameplay tuning at larger sizes, and a --classic
80x24 mode. 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 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 2026-07-07 request, but do not add a Dockerfile, CI config, or
REPO_POLICIES.md. REPO_POLICIES.md.