← back to Dw Kravet Hires

README.md

36 lines

# dw-kravet-hires (TK-11658)

Reversible audit + swap map for low-res (<=400px) featured images on ACTIVE
Kravet-umbrella products on the LIVE DW Shopify store (designer-laboratory-sandbox).

- `data/width-sweep-full.tsv` — native pixelWidth of all 14,020 active Kravet-family featured images (shopify_id, vendor, width).
- `data/kravet-hires-swap-map.json` — the reversible swap map (2,214 low-res rows) + verified counts + source-path finding.

Key findings:
- 2,214 active Kravet-family products at <=400px (2,268 below 1200px). Ticket's 1,636 was stale/partial — CORRECTED to 2,214.
- Brunschwig & Fils 43.5% below 1200px — CONFIRMED EXACT (1193/2741).
- Shopify masters do NOT upscale — the "_400x -> _1200x" CDN-variant path is IMPOSSIBLE. Hi-res must come from the vendor Brandfolder CDN.
- 621/2214 have a hi-res vendor URL in local staging (swappable now); 1,593 need a fresh vendor re-scrape.

NO writes to Shopify or dw_unified. Image writes to the live store are HARD-GATED (customer-facing).

## TK-11658 follow-up — the "247 genuinely-absent" are NOT a DRAFT case (verified 2026-09-14/15)

The 247 rows in `data/phase2-absent-skus.txt` were tee'd up as an ACTIVE->DRAFT+Needs-Image
flip (mirroring TK-11719). VERIFY-BEFORE-ACTING overturned that premise:

- All 247 are ACTIVE with a **real featured image** on the live store (local dw_unified mirror).
- Native featured-image widths are 235-400px (width-sweep): **valid but low-res**. The reason
  strings ("asset only 400px", "404 no vendor page", "vendor serves placeholder") describe the
  failed hi-res **upgrade** recovery, NOT the current Shopify image.
- **246 = VALID_LOWRES_NO_VIOLATION** — they have a legitimate SKU-named product photo and
  violate NO hard rule ("never ACTIVE without image" requires an image; they have one).
  Flipping them to DRAFT would pull ~246 sellable products off the store for no compliance reason.
- **1 = PLACEHOLDER_VIOLATION** (`7873242562611` / DWKK-102890 Barton Chenille, 300px
  placeholder-thumb-kk) — the only genuine violation, and it is **already** in the TK-11719
  46-product flip memo. No new flip needed.

Evidence: `data/phase2-absent-current-image-verification.tsv` (id, reason, native_width, image_basename, classification).
Optional REVISE asset: `scripts/TK-11658-lowres-tag.mjs` — keeps the 246 ACTIVE, adds an internal
`Low-Res-Image` tracking tag (dry-run default, reversible `--rollback`). NOT fired; gated.