Skip to content

Add deductive printing-tag backfill: AI-weight votes for entailed printings - #11

Merged
WilfordGrimley merged 3 commits into
masterfrom
worktree-deductive-printing-tag-backfill
Jul 14, 2026
Merged

Add deductive printing-tag backfill: AI-weight votes for entailed printings#11
WilfordGrimley merged 3 commits into
masterfrom
worktree-deductive-printing-tag-backfill

Conversation

@WilfordGrimley

Copy link
Copy Markdown

Summary

Phase 2 of the deductive printing-tag backfill (Phase 1 census discussed in
chat, not a separate PR). Casts source=ai CardPrintingTag votes for
cards whose printing is logically entailed by existing catalog data - see
docs/features/printing-tags.md's new "Stage 4" section for the full
design writeup (two confidence tiers, Scryfall printings_count
cross-verification, eligibility exclusions, idempotence/resume, the live
gate check).

  • cardpicker/deductive_backfill.py - selection queries (D1/D2), batched
    write, live gate check.
  • cardpicker/management/commands/deductive_backfill_printing_tags.py -
    --tier d1|d2|all --limit N --dry-run --batch-size.

PRINCIPLE held throughout: these are VoteSource.AI votes (weight
0.5), never a direct status/inferred_canonical_card write - the hard
human-backed gate in resolve_weighted_consensus means they can never
resolve a card by themselves.

Current numbers (live prod, read-only census)

D1 = 26,962, D2 = 1,202 (of 207,123 eligible / 218,128 total cards), after
excluding cards with a resolved "Custom" tag or non-English language.
Every D1 candidate cross-checked against Scryfall's own printings_count
metadata field (0 false positives out of 27,424 pre-exclusion).

Verification

Not done in this PR (by design)

The real production write (--tier all for real, in screen/tmux, per
the task spec) is a deliberate follow-up after merge + deploy - this PR is
code + tests + a read-only census only. Holding for review before
merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_016i9S7LQsCL3FGaih3ZTRBJ

…printing-tag-backfill

# Conflicts:
#	docs/features/printing-tags.md
…printing-tag-backfill

# Conflicts:
#	docs/features/printing-tags.md
@WilfordGrimley
WilfordGrimley marked this pull request as ready for review July 14, 2026 14:31
@WilfordGrimley
WilfordGrimley merged commit e550399 into master Jul 14, 2026
1 of 2 checks passed
@WilfordGrimley
WilfordGrimley deleted the worktree-deductive-printing-tag-backfill branch July 14, 2026 22:33
WilfordGrimley pushed a commit that referenced this pull request Jul 18, 2026
Adds a Disposition column recording what actually shipped for each
selected finding, and checks the boxes for everything built on
claude/audit-build-pass. #11 stays unselected (process note in
CLAUDE.md instead of a code fix); #2/#3 are hedge-only, with real
verification still pending from the owner.
WilfordGrimley added a commit that referenced this pull request Jul 18, 2026
Fixes upstream-links honesty (1,6-9): desktop-tool download/wiki/source
links now use shared UpstreamDesktopTool* constants with copy that says
they're upstream's, not this fork's - confirmed not diverged (no
ProxyPrints strings in desktop-tool/, no backend-API coupling). The
broken per-platform asset-fetch mechanism is gone in favor of linking
straight to GitHub Releases.

Adds one-line "confirm before ordering" hedges to the PringlePrints and
NotMPC steps (2,3) - real verification of those flows is still owner
work, tracked separately.

Drops "fresh" from the questionFeed subline (4) since it's not additive
with total/contested; total===fresh on a real response now only fires a
console.warn as a version-skew signal, never renders.

Adds ProxyPrints credit alongside (not replacing) the chilli_axe footer
line (5).

Adds a lean-tooltip and a one-time legend to attribute chips (10) so a
strong fill can't read as a confirmed fact - "community + machine votes
lean yes/no (N%) - not confirmed".

Gives the deckbuilder confirm badge a visible "Confirm?" label (12)
instead of a bare "?" with only a screen-reader aria-label.

#11 (privacy-policy date) wasn't selected for a code fix - CLAUDE.md
gets a process line instead ("policy text changes update the Last-updated
date").

docs/audits/ui-content-audit.md on PR #56's branch got its own commit
marking every row's disposition.

Co-authored-by: Claude <noreply@anthropic.com>
WilfordGrimley added a commit that referenced this pull request Jul 18, 2026
* Add UI content-accuracy audit findings table (docs/audits/ui-content-audit.md)

Survey-only, HOLD - not built. 12 findings as a markdown table
(location/current text/why wrong/proposed text/severity 1-5, where 5
is reserved for a machine suggestion presented indistinguishably from
confirmed fact), with a per-row Selected checkbox for the review
pass, summary counts at top, and a "checked, nothing found" section
for completeness.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014dB7mGPQyoML2Ri5ZrprdK

* Mark audit finding dispositions after the build pass

Adds a Disposition column recording what actually shipped for each
selected finding, and checks the boxes for everything built on
claude/audit-build-pass. #11 stays unselected (process note in
CLAUDE.md instead of a code fix); #2/#3 are hedge-only, with real
verification still pending from the owner.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant