Docs for strangers: real quick start, own-shelves guide, clone-safe stub guard

README rewritten for a fresh clone: working status, quick start with
env-var table and per-stage commands, photo-taking guidance, a
bring-your-own-shelves section (this repo carries the author's live
data), tokenless workflows, and a dev section. New committed
data/STUB_DATA.marker closes a real gap: the cache marker is
gitignored, so a fresh clone had stub-derived to_add.csv with no
guard — upload now refuses on either marker. Username docs: BGG_USERNAME
in .env is the one place it's needed; config.toml is a fallback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Eric Wagoner
2026-08-02 13:33:52 -04:00
parent 02a7ac262c
commit 8e3cdc145f
7 changed files with 113 additions and 13 deletions
+10
View File
@@ -290,3 +290,13 @@ def test_verify_checks_version_on_adds_and_updates():
def test_verify_ignores_failed_rows():
log = [_log_row(action="add", bgg_id="5", status="failed")]
assert verify_uploads(log, []) == []
def test_fresh_clone_marker_blocks_upload_without_cache_dir(tmp_path):
# A fresh clone has the committed data/STUB_DATA.marker but no
# gitignored bgg_cache/ at all — upload must still refuse.
cfg = _cfg(tmp_path)
(tmp_path / "STUB_DATA.marker").write_text("stub-derived CSVs")
_seed_data(tmp_path, to_add=[_add_row()])
with pytest.raises(typer.Exit):
run_upload(cfg, uploader=FakeUploader(), sleep=lambda s: None, now=NOW)