Rotate TODO to docs-refresh step (step 8 done)

Step 8 complete: New(Params) constructor and os.Exit game-over. The
77-column wrap sweep was dropped per sneak. Docs refresh is now Next
Step.
This commit is contained in:
2026-07-23 08:02:35 +07:00
parent 194ce1dd16
commit a7d27ef65f

41
TODO.md
View File

@@ -29,12 +29,23 @@ Refactor ground rules:
# Next Step # Next Step
Refactor step 8: constructor and style pass per the house styleguide — Docs refresh: update ARCHITECTURE.md Part 2 and README.md for the post-refactor
game.New(game.Params{...}) replacing NewGame(Config); replace the gameEnd panic names; add the C name → Go name rename table.
unwind with error-based turn results where feasible; 77-column wrap sweep.
# Completed Steps # Completed Steps
- 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
primary type gets the canonical New() constructor with a named-field Params
struct (styleguide 139/159). The gameEnd panic unwind is gone: one game run is
one process, so myExit restores the terminal (new Terminal.Fini) and calls
os.Exit(0), and Run() no longer returns; the four Run()-to-completion tests
were reworked/dropped since death (combat or starvation) now exits the process
(TestScoreRendersList and TestRunDownStairs preserve what is still drivable;
save/restore stays covered by TestSaveRestoreRoundTrip). The 77-column wrap
sweep was dropped per sneak (2026-07-23): line lengths left as-is (lll caps at
88 and passes).
- 2026-07-07 Refactor step 7 (refactor/effects-dispatch): effects dispatch - 2026-07-07 Refactor step 7 (refactor/effects-dispatch): effects dispatch
tables plus a full decomposition sweep — the quaff / readScroll / doZap tables plus a full decomposition sweep — the quaff / readScroll / doZap
switches, the attack monster-power switch, the be_trapped switch, the daemon switches, the attack monster-power switch, the be_trapped switch, the daemon
@@ -133,24 +144,24 @@ unwind with error-based turn results where feasible; 77-column wrap sweep.
# Future Steps # Future Steps
1. Docs refresh: update ARCHITECTURE.md Part 2 and README.md for the 1. Playtest hardening pass: play several full games with the tcell binary and
post-refactor names; add the C name → Go name rename table. extend run_test.go to drive a deeper multi-level playthrough (descend past
2. Playtest hardening pass: play several full games with the tcell binary and level 5, use potions, scrolls, zapping, save/restore). Note: game-over now
extend run_test.go to script a deeper multi-level playthrough (descend past exits the process (step 8), so scripted drives must stay bounded and avoid
level 5, use potions, scrolls, zapping, save/restore). Fix any panics, death/quit/save-command; exercise the exit paths (death display, 'S' save)
message mismatches, or divergences from the C behavior that this uncovers, another way if needed. Fix any panics, message mismatches, or divergences
with regression tests. from the C behavior that this uncovers, with regression tests.
3. Verify the seed-compatibility claim against the C reference on c-master: same 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.
4. Broaden unit test coverage where playtesting finds thin spots (rings, sticks, 3. Broaden unit test coverage where playtesting finds thin spots (rings, sticks,
wizard commands). wizard commands).
5. Tag a release once a full game (Amulet retrieval and score entry) completes 4. Tag a release once a full game (Amulet retrieval and score entry) completes
without defects. without defects.
6. Full-terminal-size support (deferred by explicit decision 2026-07-06): 5. 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.
7. Note: this repo is exempt from the standard policy scaffold. A minimal dev 6. 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.