docs: correct stale facts in scratch.md
Fixes three claims that would mislead a cold session: the levelCursorPopup patching note (reversed in Phase 2), the tryInteract classification claim (corrected in Phase 3), and the answered-questions list. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c17c5277d4
commit
bd338087ce
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
**Read this first on any handoff.** Living document: update it whenever state changes, before ending a turn.
|
**Read this first on any handoff.** Living document: update it whenever state changes, before ending a turn.
|
||||||
|
|
||||||
Last updated: 2026-08-01 · Currently: **Phases 0–1 done, menus + dialogue done.
|
Last updated: 2026-08-01 · Currently: **Phases 0–3 done + menus/dialogue.
|
||||||
Phase 3 done. Phase 4 (remaining menus) next.**
|
Phase 4 (remaining menus) next.**
|
||||||
|
|
||||||
**Game is now playable start-to-finish by ear** from main menu through the intro
|
**Game is playable start-to-finish by ear** from main menu through the intro
|
||||||
conversation into gameplay — verified by the testbed, 9/9 checks.
|
conversation into gameplay — verified by the testbed, **13/13 checks**.
|
||||||
|
|
||||||
### Run the testbed (do this after any change)
|
### Run the testbed (do this after any change)
|
||||||
```
|
```
|
||||||
@@ -42,10 +42,14 @@ Full research is in `accessibility/docs/` — read `README.md` there for the map
|
|||||||
|
|
||||||
## Still-open questions (in `04-open-questions.md`)
|
## Still-open questions (in `04-open-questions.md`)
|
||||||
|
|
||||||
Q3 verbosity (relay vs augment) · Q4 console auto-speak policy · Q5 wall-tone triggers ·
|
**Answered:** Q1 (dev LÖVE), Q2 (tracker hierarchy), Q3 (augment, not relay),
|
||||||
Q6 keybinding integration vs separate · Q8 full keyboard audit as deliverable?
|
Q4 (speak everything queued, cancelled by explicit action), Q5 (wall tones on
|
||||||
|
step, stop-and-replay — confirmed working by ear), Q7/Q10 (patches allowed,
|
||||||
|
probe backend kept open for Steam), Q9 (NVDA, lovec approved).
|
||||||
|
|
||||||
None block Phase 0. Q4 lands in Phase 1, Q5 + verbosity in Phase 2.
|
**Still open:** Q6 (integrate our keys into the game's rebinding UI, or keep a
|
||||||
|
separate scheme) · Q8 (full keyboard-reachability audit as an explicit
|
||||||
|
deliverable?). Neither blocks Phase 4.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -53,9 +57,9 @@ None block Phase 0. Q4 lands in Phase 1, Q5 + verbosity in Phase 2.
|
|||||||
|
|
||||||
- **`console.print(msg, colorTemplate)`** in `modules/console.lua` is the *single* chokepoint for all game log text. Repeated identical messages coalesce into `"msg (x3)"` via a `times` counter. Buffer entries expire after 3s — useless as history, so we keep our own.
|
- **`console.print(msg, colorTemplate)`** in `modules/console.lua` is the *single* chokepoint for all game log text. Repeated identical messages coalesce into `"msg (x3)"` via a `times` counter. Buffer entries expire after 3s — useless as history, so we keep our own.
|
||||||
- **`level.getCursorMessage()`** returns the description under the examine cursor (actor first, then top visible tile). The game already has a full arrow-key examine mode: `states/ingame_observe.lua`.
|
- **`level.getCursorMessage()`** returns the description under the examine cursor (actor first, then top visible tile). The game already has a full arrow-key examine mode: `states/ingame_observe.lua`.
|
||||||
- **`cursorPopup.set(...)`** — patching `views/inventoryCursorPopup.lua` + `views/levelCursorPopup.lua` narrates focus in `inventory`, `craft`, `refine`, `trade`, `ingame_observe` at once.
|
- **`inventoryCursorPopup.set(...)`** — one patch narrates focus in `inventory`, `craft`, `refine` and `trade`. ⚠ `levelCursorPopup` is deliberately **not** patched: it fires from an animation-completion callback and lands a keypress late. `ingame_observe` polls `level.cursorX/Y` instead.
|
||||||
- **All 28 states already implement `keypressed`.** The gap is narration, not reachability.
|
- **All 28 states already implement `keypressed`.** The gap is narration, not reachability.
|
||||||
- **`modules/tile.lua:234`**: `tile.tryInteract = (self.loot or self.tryInteractFunction) and function...` — authoritative "player can do something here" flag. Basis of tracker classification.
|
- **`modules/tile.lua:234`**: `tile.tryInteract = (self.loot or self.tryInteractFunction)`. ⚠ This is **not** a "worth tracking" signal — `wall` has a flavour-only `tryInteractFunction`. Structural tiles (`blocksMovement and blocksVision`) must be excluded first. See the D4 correction in `05-decisions.md`.
|
||||||
- **Template counts:** 231 tiles, 40 actors, 344 items. Parent inheritance is *already flattened* by `modules/tile/preprocess.lua` during `love.load`, so read fields directly.
|
- **Template counts:** 231 tiles, 40 actors, 344 items. Parent inheritance is *already flattened* by `modules/tile/preprocess.lua` during `love.load`, so read fields directly.
|
||||||
- **6 un-nameable mechanical templates to exclude:** `blank`, `throw_blocker`, `movement_blocker`, `fire_detector`, `wall_features_position_dummy`, `ladder_down_hidden`.
|
- **6 un-nameable mechanical templates to exclude:** `blank`, `throw_blocker`, `movement_blocker`, `fire_detector`, `wall_features_position_dummy`, `ladder_down_hidden`.
|
||||||
- **`debug.getupvalue` works** on this Lua build — verified reading `selectedOption` / `optionsList` from a state's `keypressed`.
|
- **`debug.getupvalue` works** on this Lua build — verified reading `selectedOption` / `optionsList` from a state's `keypressed`.
|
||||||
@@ -112,9 +116,8 @@ None block Phase 0. Q4 lands in Phase 1, Q5 + verbosity in Phase 2.
|
|||||||
at end of frame. Any keypress that reaches the game counts as an explicit action
|
at end of frame. Any keypress that reaches the game counts as an explicit action
|
||||||
and silences the pending backlog (`hotkeys.onGameKey` → `speech.silence`).
|
and silences the pending backlog (`hotkeys.onGameKey` → `speech.silence`).
|
||||||
|
|
||||||
**⚠ Not yet verified in-game.** Loading, the self-test, and history logic are all
|
**Verified in-game** by the testbed (console capture + `(x2)` fold + review keys)
|
||||||
confirmed. Whether console speech and wall tones behave correctly *during play*
|
and by Talon at the keyboard (wall tones).
|
||||||
needs a human at the keyboard — Talon to test.
|
|
||||||
|
|
||||||
### Keymap so far
|
### Keymap so far
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user