# Product-scan validation images — live intake (staging) This folder is the **live-intake / staging area** for the product-scan validation set. It's still where the `/manual-label-scan` page saves new photo drops, and still what real-world photos get dropped into by hand — but it is **no longer what the accuracy harness scores**. That's `../product-test-images-fixed/` (a frozen, sequentially-renamed snapshot) — see that folder's README for why the split exists. **Workflow (adding a new SKU or photo):** 1. Drop a photo here directly (flat, no subfolders — a filename with no `/` is what marks an image as "validation" instead of "training"). 2. Label it via the `/manual-label-scan` page (correct `no_sku`, `nama_item`, `expiry_date` by hand — don't just accept the AI-scan prefill, that would make the ground truth equal to the model's own prediction). 3. Re-run `node scripts/freeze-validation-set.mjs` from `backend/` to promote the new photo into `product-test-images-fixed/` (renamed to ` .`) so it actually gets scored on the next `accuracy-check-scan.mts` run. **This is not where new training photos go.** To improve the classifier itself (DINOv2 index / YOLO fine-tune), add photos to `pfm-web-app/public/produk-pfm/foto-kemasan-v2//` instead, then reindex/retrain per `docs/scan-product.md`'s "Model artifacts & retraining" section.