feat(classify): split halftone-scan into halftone-scan + form-scan (MK-18) #34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/taxonomy-form-scan-MK-18"
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?
Summary
Resolves MK-18 with option B: split
halftone-scaninto the AM-halftone spec class (kept, zero fixtures, theoretical) and a newform-scanclass (FM-screened background panels: tax forms, vehicle inspection forms, and similar documents). The chosen name lands here so MK-16 can implement panel-density scoring against a stable label.ImageClass::FormScanwired throughas_str,from_label, the embedded recipe table, and theevery_embedded_recipe_parsestest.src/image/recipes/form-scan.tomlships as a passthrough stub. A binary-scan chain (contrast-stretch in particular) would crush the shaded panels and lose the form fields they enclose; MK-16 owns the panel-aware replacement alongside thepanel_densityfeature.FormScanis intentionally not added to thescore()candidates slate. Auto-detection cannot produceform-scanuntil MK-16 wires the panel-density signal; until then the class is reachable only via--class form-scan.halftone-scanand itshalftone_autocorr_peakbranch are untouched.monkey image classify/--classdoc comments updated.form-scanand to note that addingFormScanto the score slate is part of that issue.tests/fixtures/is gitignored (real-world scans are kept local), so the directory rename happens on the user's machine after merge: renametests/fixtures/classify/halftone-scan/(containing the 1099 / inspection scans) totests/fixtures/classify/form-scan/; thehalftone-scan/directory stays empty until real AM-halftone fixtures arrive.Test plan
cargo test: 79/79 pass (synthetic halftone test still assertsHalftoneScan; the newform-scanrecipe parses viaevery_embedded_recipe_parses).just check: fmt + clippy + tests + docker builder compile all green.tests/fixtures/classify/halftone-scan/totests/fixtures/classify/form-scan/and re-runjust classify-fixturesto confirm the existing fixtures still classify asunknownorbinary-scan(they cannot land onform-scanuntil MK-16 ships the panel-density signal).Related: MK-18, unblocks MK-16.