Rotate TODO to playtest step (docs refresh done)

This commit is contained in:
2026-07-23 08:40:55 +07:00
parent cb1e302102
commit b431af8b74

34
TODO.md
View File

@@ -29,11 +29,24 @@ Refactor ground rules:
# Next Step # Next Step
Docs refresh: update ARCHITECTURE.md Part 2 and README.md for the post-refactor Playtest hardening pass: play several full games with the tcell binary and
names; add the C name → Go name rename table. 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.
# Completed Steps # Completed Steps
- 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
list methods), the static tables now on the per-game gameData struct, the
daemon/effect handler tables, the MessageLine extraction, the Terminal
interface, the flat gob SaveState, and the New(Params) + os.Exit design. Added
§7.1, a C-name → Go-name rename table, and a README note on the make targets.
- 2026-07-23 Refactor step 8 (refactor/constructor-style): constructor and exit - 2026-07-23 Refactor step 8 (refactor/constructor-style): constructor and exit
pass. NewGame(Config) → New(Params) and Restore takes Params, so the package's pass. NewGame(Config) → New(Params) and Restore takes Params, so the package's
primary type gets the canonical New() constructor with a named-field Params primary type gets the canonical New() constructor with a named-field Params
@@ -144,24 +157,17 @@ names; add the C name → Go name rename table.
# Future Steps # Future Steps
1. Playtest hardening pass: play several full games with the tcell binary and 1. 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 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.
2. Verify the seed-compatibility claim against the C reference on c-master: same
seed, same dungeon, same item tables, for several seeds. seed, same dungeon, same item tables, for several seeds.
3. Broaden unit test coverage where playtesting finds thin spots (rings, sticks, 2. Broaden unit test coverage where playtesting finds thin spots (rings, sticks,
wizard commands). wizard commands).
4. Tag a release once a full game (Amulet retrieval and score entry) completes 3. Tag a release once a full game (Amulet retrieval and score entry) completes
without defects. without defects.
5. Full-terminal-size support (deferred by explicit decision 2026-07-06): 4. 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.
6. Note: this repo is exempt from the standard policy scaffold. A minimal dev 5. 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.