# Quiddler Scorekeeper 1.1

A browser-local scorekeeper for a physical Quiddler game. The app tracks scores and dealer rotation; it does not simulate cards, hands, draws or discards.

## Start and resume

Choose 1–8 players, enter names in seating order, and choose the first dealer. For two players, choose either Longest Word or Most Words as the game's bonus. Larger tables use both. One player is solo score practice.

Deal Cards creates a fresh game. Canceling setup keeps the existing game. Home and Games resume the active round; completed games open their results. Play Again pre-fills the same names for a new score sheet.

## Score eight rounds

Round 1 deals three cards, increasing to ten cards in round 8. The dealer rotates through the entered seating order; the following player starts.

Enter each player's Points and Unused cards. An untouched Points field stays blank; enter 0 to record zero. Select each bonus winner, or No award / tied. Challenge losses have a separate expandable control.

New games calculate `max(0, points − unused cards) + bonuses − challenge losses`. Old saved games keep their original arithmetic and recorded scores.

Review round lists every net score. All players need an explicit score and all eligible bonuses need a decision before confirmation. Confirm advances to the next round; eight confirmed rounds produce the final results. Tied leaders share the win and rank.

## Save, inspect and correct

Edits save immediately in this browser. Saved/Not saved feedback reflects storage success; failed writes offer Retry saving while keeping the draft in memory. Games are capped at the latest 50. There is no cloud sync or concurrent-tab conflict resolution.

Totals includes entered drafts and shows every round in a horizontally scrollable table. Select a round to correct it, then confirm it again. Undo restores a recent editing group or confirmation in the current page session; reload resets Undo history. CSV exports include score components, round status and totals.

## Check a word

Check a Word opens a compact modal on any screen. Enter a word and select Check, or press Enter. Closing the modal preserves the game underneath.

The flag at the top right of the first page shows your country, detected from your connection, or from your browser's region if that is unavailable. By default the checker uses that country's language plus English: in Portugal, Portuguese + English. Select the flag to choose the local language only, English only, the other English variant (US Merriam-Webster or UK & international Collins), another country, or any listed language: English, French, Spanish (FISE and FILE), Portuguese, German, Italian, Dutch, Polish, Romanian, Turkish and Indonesian. Check a Word's Change button opens the same choices mid-game. With several dictionaries a word counts when any of them lists it, and each verdict is shown.

Accents are optional except for letters that are their own tiles, such as Ñ, Ç or Ł: NAO finds NÃO. US English asks Merriam-Webster live. Portuguese (separate Portugal and Brazil editions), Romanian, Polish and Dutch are also checked live against their official public sources: the CPLP's Vocabulário Ortográfico Comum, dexonline's LOC checker, sjp.pl and the Taalunie Woordenlijst. Names and abbreviations don't count. The other dictionaries are fixed copies of published word lists. Each is labelled as a Scrabble list, an official spelling list or a general word list. An outage reports Dictionary unavailable, never an invalid word.

When every selected dictionary rejects a word, an AI second opinion from Claude Haiku explains the likely reason, for example a misspelling, a place name or a spelling from another country. It is labelled as not an official ruling. Any word it suggests is shown only if one of your dictionaries lists it, and tapping it checks it. Only the word and the dictionary names are sent. A valid dictionary word must still satisfy the physical game's card rules.

## Local release evidence

The repository's `docs/RELEASE-1.1.md` documents the release and application. `release/features.json` maps the compact checker and ten playability improvements to tagged tests. `npm run release:verify` builds the app, checks that development observers are absent from production JavaScript, runs tests and creates a feature-to-proof dashboard with screenshots, state captures and traces.

Browser proof covers Chromium desktop and phone touch emulation. It does not certify physical Safari or native on-screen keyboard behavior. Live dictionary results establish source availability only at the recorded test time.
