# Goal: Store Icon Progress Overlay Use Krypton Execution to execute `docs/goals/store-icon-progress/PLAN.md` after the required Buy-store fixture and catalog icon URL evidence are available. Core rules: - Treat PLAN.md as the source plan. - Create `data/fixtures.json` from the reviewed 17-file corpus before changing recognition behavior. - Keep fixture expected data human-owned; tests may report actual values but must never bless or rewrite expectations automatically. - Keep fixture calibration, templates, catalog JSON/icon bytes and sequence pending/found states human-owned and versioned. - Run fixtures through the single `src/frame-analyzer.js#analyzeFrame` path used by live capture; remove the inline implementation from `main.js` and do not create a test-only parser. - Use real production OpenCV/Tesseract/parser in the Playwright lane; substitute only catalog transport with committed fixture assets. - Preserve the active result as slot-state truth owner. - Keep old six-field calibration readable and operational. - Do not infer the parsed slot from tooltip position or hover order. - Mark a slot green only for a unique best visual match above both the absolute threshold and second-best margin; ties remain yellow. - Do not send runtime images or slot state to the backend. - Make the active source preview readable at the real source-card scale before accepting overlay evidence. - Verify optional grid calibration survives the hosted PUT-to-GET round trip. - Capture yellow-to-green browser evidence and record it in EVIDENCE.md. - Finish with one `npm run check` gate covering unit tests, all fixture screenshots, the production build and `git diff --check`. - Say `implemented but unproven` if Buy/Sell or catalog-icon matching cannot be demonstrated.