Reconcile PR #35 and #88 history while preserving #127 fixes - #128
Merged
Merged
Conversation
Adds sites/boardgamegeek/ — a Flask mirror of boardgamegeek.com built
end-to-end per the .claude/skills/ six-phase pipeline (clone-website
→ design-tasks → evolve-env → harden-env → seed-database).
Catalog (real data from api.geekdo.com + 1000+ Playwright-rendered pages):
- 500 base games (BGG top-500 by rank)
- 5,169 expansions (full expansion catalog for every top game)
- 2,880 designers/artists, 1,035 publishers, 178 mechanisms, 80 categories
- 5,246 user ratings (1,639 text reviews from real BGG users)
- 4,004 forum threads + 34,462 posts (real thread titles, generated bodies)
- 16 curated GeekLists (sentence-curated entries per skill convention)
- 4,201 real user profiles (250 reviewer profiles + 3,947 from review pulls
+ 4 benchmark users)
- 11,338 real images (covers + thumbs, scraped from cf.geekdo-images.com)
Routes (55): home / browse / hotness / item (overview, ratings, credits,
expansions, forums) / property pages (category/mechanic/designer/artist/
publisher) / search (games/users/geeklists) / forums + threads / geeklists
(create + add-item) / user profile + collection + plays / rate / collection
mutate / login / register / account. Scored token-overlap search per the
"never strict-AND" skill rule.
Benchmark users: alice_j / bob_c / carol_d / david_k, password
TestPass123! — each pre-seeded with 18 owned + 4 wishlist + 1 want-to-buy
+ 1 want-to-play games, 5 textual reviews, 10-22 plays, 1 authored
GeekList, and 1 opened forum thread.
tasks.jsonl: 20 tasks covering 8 functional areas (search/filter, detail
lookup, comparison, CRUD on collection/ratings/wishlist, forum reply,
geeklist creation, plays log, disambiguation). Hand-walked via Playwright
end-to-end — 32/32 checks pass.
Skill-conformance highlights:
- Byte-identical reset verified
(md5 10a5b3d4ae85380d8019bd9ac7cf9e61 unchanged across /reset)
- All seed_*() functions are function-level idempotent (returns early when
populated; per-row gates are not enough — empty commits bump SQLite
metadata and break the byte-identity invariant)
- harden-env Dimension A: top-reviews removed from item overview; tab-bar
counts removed ("Expansions (N)" → "Expansions") to force tab navigation
- harden-env Dimension C: catalog breadth — top mechanisms have 50+ games,
Z-Man Games publisher has 116 games, Lacerda 23 games
Known limitations (documented for the maintainers):
- BGG's /api/collections endpoint silently rejects sort=lowest /
direction=asc / minrating filters when called without authenticated CF
clearance. Result: scraped reviews skew high (the seed has 1,639 text
reviews but the lowest is ~7.0). Tasks that would naturally ask "find
the lowest-rated review" were re-framed to use Most-Helpful (thumbs)
instead — those reach the same Ratings tab + sort UX without depending
on data we can't lawfully obtain via the public API.
- Image discovery uses BGG's first-party cf.geekdo-images.com URLs which
occasionally return blank thumbnails for un-imaged expansions. The
fallback SVG placeholder ships at static/icons/cover_placeholder.svg.
Paired HF dataset PR (instance_seed/boardgamegeek.db, 24 MB +
static/images/, 218 MB, bundled as boardgamegeek.tar.gz, 200 MB):
[link will be added once HF discussion is opened]
After the HF PR merges, bump .assets-revision to the HF merge SHA in a
follow-up commit.
This was referenced Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Reconcile the original BoardGameGeek histories from #35 (@hqhq1025) and #88
(@jackjin1997) into main after their combined implementation and reviewed fixes
were delivered by #127. The user explicitly selected history reconciliation for
this case; #127 is retained, not reverted.
History and content
9060f23df45bd01b8103360c4f37a9a31e21f0ff.9432776b35c2c8a2c6ff1ed1146e34d591af818b.oursstrategy merge commits: record ancestry whileretaining the tested main tree, rather than reintroducing stale registrations,
assets, task wording, or grading behavior.
Review: complete BoardGameGeek environment and grading contract (#35) #88 (
148c045); its shared-file changes were the historical site registration.commit, not squash/rebase, so those histories reach main.
df7a62bfd5661084bbc1df1affa8a7c9fce4bcfb.AGENTS.mdnote recording the user'sfuture preference: dependency-ordered original/reviewer/fix PRs, and a
revert-and-rebuild sequence if a combined replacement has already merged.
Validation
Integrate BoardGameGeek: PR #88 fixes, harder tasks and reliable grading #127 tree. Final diff against Integrate BoardGameGeek: PR #88 fixes, harder tasks and reliable grading #127 is only 15 added lines in
AGENTS.md.webharbor:pr35-pr88-reconciled-20260917, imagesha256:76bbb5006fa9ed9e1524cf7e4b01fb94a08e68a7f80be0edbad71c183c0f1e05.all 37 homepages HTTP 200, and all 37 sites healthy after BGG reset.
5a00124fa1e523678c1010ea74a2c1d8ed5febd18f71cf54632bec83a07612b1).asset inventory checks passed. No new HF fetch or browser/LLM task reruns in
this history-only follow-up. Prior Integrate BoardGameGeek: PR #88 fixes, harder tasks and reliable grading #127 task/grading evidence is unchanged.
No asset publication, deployment, force-push, branch deletion, or changes to the
existing browser preview/GIF dashboard. The paired HF asset PR is separate.