Compare commits

...
2 Commits
Author SHA1 Message Date
Eric WagonerandClaude Fable 5 429c519237 Proofread pass: 11 edits, 11 removals from the Titles page
Eric's curation session through the new UI — corrected reads and cues
(Dungeons & Dragons, Huggermugger, Patch Work, Verdant, Wiz-War, the
Ain't It Cool Trivia Game, and others) and removed non-game or
duplicate-read lines (publisher spines read as titles like Slugfest
Games and Cheapass Games, a misread "Bird on Your Bread?!", stray
partial reads). titles.json reflects the replayed decisions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016jXZFSTZQKzAC8fqpWSz9g
2026-08-03 15:20:32 -04:00
Eric WagonerandClaude Fable 5 c00b3a7ad8 README: a screenshot tour of all seven pages
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016jXZFSTZQKzAC8fqpWSz9g
2026-08-03 15:20:32 -04:00
11 changed files with 126 additions and 23 deletions
+30
View File
@@ -28,6 +28,36 @@ BGG has no bulk import and no write API. Cataloging a few hundred games by hand
Every stage is idempotent and resumable: kill it mid-run, restart, lose nothing. All artifacts are flat CSV/JSON files you can inspect and edit.
## What it looks like
**The Pipeline page** — every stage is a card with live counts and a Run button; blockers (missing token, stub-data lock) are banners, not surprises.
![Pipeline dashboard: six stage cards with live counts, Run buttons, and warning banners for the missing BGG token and the stub-data upload lock](docs/screenshots/01.png)
**Photos** — drag shelf photos in; boxes the vision model saw but couldn't read become illustrated reshoot tickets with shelf directions a human can follow.
![Photos page: drag-and-drop upload zone, reshoot tickets with photo thumbnails and shelf-location descriptions, and the gallery of all shelf photos with per-photo title counts](docs/screenshots/02.png)
**Titles** — every read off the shelves, alphabetized with status and source photos. This is the proofreading checkpoint: edit misreads, split multi-copy lines, remove non-games.
![Titles page: 123 extracted titles with AUTO / AWAITING BGG status chips, source photo links, edit and split-into-copies actions, and a shaky-reads filter](docs/screenshots/03.png)
**Review** — keyboard-first decisions on ambiguous matches, editions, and cross-photo merges (with veto). Here: everything resolvable is reviewed, 106 titles parked awaiting the API token.
![Review page in its done state: 123 extracted, 17 recognized, 2 with versions, 0 rejected, with 106 titles waiting on the BGG API token](docs/screenshots/04.png)
**Queue** — exactly what upload will do before it does it, and a permanent log of every attempt ever made.
![Upload queue: six new collection entries with game, version, and source photos, plus empty version-updates and upload-log sections](docs/screenshots/05.png)
**Library** — the enriched collection browser (board games and RPGs), waiting for real BGG data to fill its shelves.
![Library page empty state with search and Board games / RPGs filters, explaining that the library fills after the enrich stage runs](docs/screenshots/06.png)
**Help** — the whole flow, every page, every status, and every keyboard shortcut, documented in-app.
![Help page documenting the shelves-to-collection flow, what each page is for, and the proofreading and review checkpoints](docs/screenshots/07.png)
## Requirements
- macOS or Linux, Python 3.12+, [uv](https://docs.astral.sh/uv/)
+41
View File
@@ -6,5 +6,46 @@
{
"match": "DOCTOR WHO THE GAME OF TIME",
"title_raw": "DOCTOR WHO THE card GAME"
},
{
"match": "CAPTAIN MARVEL SECRET SKRULLS",
"confidence": "high"
},
{
"match": "CHECKERS",
"title_raw": "Super Mario CHECKERS",
"confidence": "high"
},
{
"match": "DOCTOR WHO THE card GAME",
"confidence": "high"
},
{
"match": "DUNGEONS & DRAGONS",
"confidence": "high"
},
{
"match": "Huggermugger",
"confidence": "high"
},
{
"match": "Patch Work",
"confidence": "high"
},
{
"match": "The Ain't It Cool Trivia Game",
"title_raw": "The Rocky Horror Trivia Game",
"confidence": "high"
},
{
"match": "Verdant",
"confidence": "high"
},
{
"match": "Wiz-War",
"photos": [
"IMG_4502.jpeg"
],
"confidence": "high"
}
]
+6
View File
@@ -58,5 +58,11 @@
"photos": [
"IMG_4517.jpeg"
]
},
{
"title": "Super Mario CHECKERS",
"photos": [
"IMG_4507.jpeg"
]
}
]
+49 -23
View File
@@ -159,7 +159,7 @@
},
{
"title_raw": "Patch Work",
"confidence": "medium",
"confidence": "high",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
@@ -260,7 +260,7 @@
},
{
"title_raw": "Wiz-War",
"confidence": "medium",
"confidence": "high",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
@@ -455,19 +455,6 @@
],
"title_normalized": "labyrinth"
},
{
"title_raw": "CHECKERS",
"confidence": "medium",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
"language_hint": "English",
"art_notes": "Top-left corner box, red/black checkered pattern visible",
"source_photos": [
"IMG_4507.jpeg"
],
"title_normalized": "checkers"
},
{
"title_raw": "Super Mario Checkers Collector's Edition",
"confidence": "high",
@@ -758,7 +745,7 @@
},
{
"title_raw": "Huggermugger",
"confidence": "low",
"confidence": "high",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
@@ -770,8 +757,8 @@
"title_normalized": "huggermugger"
},
{
"title_raw": "The Ain't It Cool Trivia Game",
"confidence": "medium",
"title_raw": "The Rocky Horror Trivia Game",
"confidence": "high",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
@@ -780,7 +767,7 @@
"source_photos": [
"IMG_4514.jpeg"
],
"title_normalized": "ain t it cool trivia game"
"title_normalized": "rocky horror trivia game"
},
{
"title_raw": "ART NOUVEAU ARTISTRY",
@@ -849,7 +836,7 @@
},
{
"title_raw": "CAPTAIN MARVEL SECRET SKRULLS",
"confidence": "medium",
"confidence": "high",
"publisher_hint": "Marvel",
"edition_hint": "",
"year_hint": null,
@@ -928,7 +915,7 @@
},
{
"title_raw": "DOCTOR WHO THE card GAME",
"confidence": "medium",
"confidence": "high",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
@@ -941,7 +928,7 @@
},
{
"title_raw": "DUNGEONS & DRAGONS",
"confidence": "medium",
"confidence": "high",
"publisher_hint": "TSR",
"edition_hint": "",
"year_hint": null,
@@ -1319,7 +1306,7 @@
},
{
"title_raw": "Verdant",
"confidence": "medium",
"confidence": "high",
"publisher_hint": "AEG",
"edition_hint": "",
"year_hint": null,
@@ -1628,5 +1615,44 @@
"IMG_4566.jpeg"
],
"title_normalized": "alice is missing silent role playing game"
},
{
"title_raw": "ETHERFIELDS KITTENBURG EXPANSION",
"confidence": "high",
"publisher_hint": "Awaken Realms",
"edition_hint": "Expansion by Adrian Krawczyk",
"year_hint": null,
"language_hint": "English",
"art_notes": "Dark reddish-brown background with a large anthropomorphic cat figure in ornate robe, surrounded by smaller kittens, gothic fantasy style artwork",
"source_photos": [
"IMG_4570.jpeg"
],
"title_normalized": "etherfields kittenburg expansion"
},
{
"title_raw": "BOTANY EXPANSION TANTALIZING TREES",
"confidence": "high",
"publisher_hint": "Dux Somnium",
"edition_hint": "Expansion",
"year_hint": null,
"language_hint": "English",
"art_notes": "Dark green box with gold ornate border, gold tree illustration",
"source_photos": [
"IMG_4571.jpeg"
],
"title_normalized": "botany expansion tantalizing trees"
},
{
"title_raw": "BOTANY EXPANSION PERILOUS PERFUMES POISONOUS, CARNIVOROUS, PARASITIC AND BIZARRE PLANTS",
"confidence": "high",
"publisher_hint": "Dux Somnium",
"edition_hint": "Expansion",
"year_hint": null,
"language_hint": "English",
"art_notes": "Dark purple/plum box with gold ornate border, gold carnivorous plant illustration",
"source_photos": [
"IMG_4571.jpeg"
],
"title_normalized": "botany expansion perilous perfumes poisonous carnivorous parasitic and bizarre plants"
}
]
Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB