CardVision second look after Gemini: use Gemini's name+number to pick the right printing (alt art / promo / reprint) #911
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
When CardVision can't match a raw card, the scan falls back to Gemini. Gemini reads the card well (name, number, set), but what it reads often maps to the wrong printing. Alt arts, stamped promos and reprints can share a name and number with the base card, so a correct read still lands on the base card (or a picker).
Proposal: Gemini reads, then CardVision takes a second, focused look
CardVision already does a small version of this inside an accepted match: the number-read re-election in
cardvision.py(number_pick / number_swapped, plus verifying unscored group members whose number matches). This extends the idea to the miss case, with the hint coming from Gemini instead of its own OCR.Scope
Fixes: alt arts, stamped promos, and same-number reprints across sets. Their reference images differ, so a focused visual comparison can separate them.
Does NOT fix: holo vs reverse holo vs cosmos holo. Same artwork, only the foil differs; reference images are stock product photos without foil, and these are usually printings inside one product, not separate rows. These still need the printing picker (or a future foil classifier, out of scope).
Prerequisite: alt-art reference images aren't in the index yet
Checked 2026-09-30: the live index on the Tower (
data/ids.json, built 2026-09-17, 92,099 rows) has 0 variant rows. The ~5.5k alt-art/parallel images were never added, so a second look can't pick an alt art it has never seen. Unblocking needs, in order:/scan/cardvision-resolvehonoursvariant_ids) merged + deployedNumber(candidate.id)(lib/scan/cardvisionScan.ts:249, still on main), which turns the newproduct:variantids into NaN. Fixed in #519; ships via OTA/build.CARDVISION_IMAGE=cardvision:gpu, orroll_fleet.shreverts the foil fix.Stamped promos and cross-set reprints that are already their own products should benefit even before this lands.
Build plan
/identify(e.g.hint_name,hint_number, or an explicitcandidate_idslist). It ORB-verifies only those rows and uses a relaxed acceptance bar scaled to the candidate count, plus a clear-margin rule between the top two. Response flagshinted: true.Cost / risk
Filed from a Claude Code session
Note: the feedback-request bot announced PR #685 as this issue — false match (the PR description mentioned #911). #685 is a PREREQUISITE only: it lets CardVision index alt arts / art-distinct prints as their own rows (backend live 2026-10-01, OTA going out now; CardVision index rebuild still to do). The second-look-after-Gemini feature in this issue is NOT built yet; nothing to test under #911.
Closed — fixed in PR #685; @kris says no test is needed.
via gambit-test
Prerequisite done 2026-10-01: CardVision index now has 2,486 art-distinct variant rows (alt arts, manga/special/full arts, Jolly Roger foil, stamps) from the PROD export; 129 rows that out-scored their own base image (same-art starterdeck prints, near-identical stamps) were dropped. Live on all Tower workers + Mac fallback; prod resolve verified (OP09-014 Limejuice alt art → Altart print). The second-look feature in this issue is still not built.