Conventions: plain chrome, and how a move is made

From feedback on Waving Hands' BoardGameGeek thread: no label-and-colon
lines or abstract headings around the game; histories read oldest
first; the move and its button stay together and in view; warn before
a wasted move rather than after; let a move be typed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
This commit is contained in:
Eric Wagoner
2026-10-10 18:30:25 -04:00
co-authored by Claude Opus 5.5
parent f0d7237c2b
commit 169ec4ad55
+19
View File
@@ -236,11 +236,30 @@ thing will happen), and the image carries it.
the images belong to what happens, not to what you press.
- **Our own words.** An older implementation's prose is a guide to the
tone, never a source to copy.
- **Plain chrome.** Headings, tabs, captions and notes say what is there
in ordinary words. Avoid the construction a label, a colon, then an
explanation ("The ledger: every gesture..."), and headings made of "The"
and an abstract noun ("The game", "The tally"); readers take both as the
mark of generated text. The images live in what happens, not in the
labels around it.
- **Changing text is not changing rules.** Chronicle wording is not part
of the ledger, so it ships without a rules revision; the deploy gate
compares outcomes, not sentences. A test that pins a phrase should pin
the fact inside it.
## The move
- **Every history reads top to bottom**, oldest first, and scrolls to the
newest line: the ledger, the chronicle, table talk. That is the order
people already know from chat.
- **The move and its button stay together and in view.** Whatever the
player has chosen this turn, what it will do, any warning, and the
button that commits it sit in one row that does not scroll away.
- **Warn before, not after.** A move that is legal but wasted is pointed
out while it can still be changed, and left legal.
- **A move can be typed** when the game's moves have short names, with
Enter to commit and Backspace to take one back.
## Things learned the hard way
- Caddy's `try_files` rewrites `/api` before `reverse_proxy` unless the