docs: card-location Step 1 gate result — NOT MET, no replacement shipped - #739
Open
WilfordGrimley wants to merge 1 commit into
Open
docs: card-location Step 1 gate result — NOT MET, no replacement shipped#739WilfordGrimley wants to merge 1 commit into
WilfordGrimley wants to merge 1 commit into
Conversation
Single global text-box-bottom fraction + symmetric-padding formula measured against pixel-level ground truth on the 4 cards the prior crop-geometry audit flagged as confirmed misclassifications: 0/4 correct (3 abstained, 1 wrong by >10x). 39.3% confident rate over a 28-image stratified sample. No code changed — classify_bleed_edge, compute_bleed_diff_mm, classify_border_color, and local_art_edge are byte-identical to master. Two concrete follow-up directions identified and left unattempted (per-template calibration; a genuine two-landmark measurement for asymmetric padding).
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.
Description
Attempted the fix
docs/reports/2026-08-06-crop-geometry-audit.md(issue #735) called for:locate each card's own rectangle inside its (possibly canvas-padded) image using the rules-text-
box's bottom edge as an internal landmark, then rebuild
classify_bleed_edge/compute_bleed_diff_mmand
classify_border_color/frame-continuity on top of that located rectangle instead of theimage's own fixed fractions.
Step 1 (locate the card) did not clear its own gate, so steps 2 and 3 were not attempted.
Measured against pixel-level ground truth on the 4 cards the prior audit named as confirmed
misclassifications (30255/84481/95604/182512): 0/4 got a correct rectangle (3 abstained, 1 wrong by
more than an order of magnitude). 39.3% confident rate over a 28-image stratified sample overall.
Root cause: the method's single global "text-box-bottom-as-fraction-of-card-height" constant (
f)and its symmetric-padding assumption both measured false across this catalogue's actual template
diversity — see the report for the pixel-level evidence.
No code changes ship in this PR.
classify_bleed_edge,compute_bleed_diff_mm,classify_border_color,local_art_edge.classify_art_edge_continuity, every*_CROP_BOX/_BORDER_SAMPLE_BANDSconstant,image_evidence.py's extractor wiring, andgolden_set.py'spinned values are byte-identical to
master. No migration. No version bump. This PR's only contentis the gate-result report and two concrete, unattempted follow-up directions for whoever picks this
back up.
Full report:
docs/reports/2026-08-06-card-location-landmark-gate.mdChecklist
pre-commitand installed the hooks withpre-commit installbefore creating any commits.bleed_class/source/layout, 4 named by theprior audit as confirmed misclassifications) via the public CDN Worker route, paced under
GOOGLE_IMAGE's rate ceiling.f≈0.90by direct visual inspection (fine gridline overlays, viewed with thereadtool) of 6 independent card renders, cross-checked against
local_ocr.DEFAULT_CROP_BOX's ownpre-existing empirically-tuned constant.
all 28 images: 11/28 confident, 17/28 abstained.
detector's answer against ground truth on 2 of the 11 confident cases, including 1 of the 4
audit-flagged cards — found the flagged case wrong by >10x, the general-sample case
directionally right but not to a trustworthy precision.
uptime) andsfc-*unit activity before and during fetching; load stayed3.0–4.8 throughout, 0
sfc-*units active.new dated report (
docs/reports/2026-08-06-card-location-landmark-gate.md) + itsdocs/reports/README.mdindex entry.docs/identification-pipeline.md/docs/pipeline-fidelity-gate.mdare unchanged since no detector's behaviour changed.Task-end checks
docs_lint.py/ constant-rename-equivalence: N/A — no constants renamed, moved, or added.ImageEvidencefields / migration: none.GEOMETRY_BLEED_EXTRACTOR_VERSIONorLAYOUT_CLASS_EXTRACTOR_VERSIONhere would be dishonest(no computation changed).