# RetrieX accessory price follow-up precision fix This patch hardens commerce follow-up handling for questions such as: - "was kostet der indikator" - "was kostet indikatortyp 300" Problem fixed: - Technical RAG correctly resolves `0,02 °dH -> Testomat 808 -> Indikatortyp 300`. - The subsequent commerce follow-up generated the correct primary query (`indikatortyp 300 testomat 808`), but shop repair broadened the search again. - Repair queries could add model-only searches or nearby products, causing device prices or unrelated reagents to appear in the final answer. Changes: - Requested accessory codes are extracted with a configurable regex that also matches `indikatortyp 300`. - If a requested accessory/reagent code is present, shop repair is restricted to focused accessory-code queries. - Prompt-anchored models are preferred over proximity-only models for requested accessory-code repair. - Fallback accessory-code repair query templates are configurable. - Prompt grounding rules now explicitly forbid answering accessory price follow-ups with device prices or unrelated reagent prices. No changes: - No retrieval/scoring/vector logic changed. - No hard keyword list added to the retriever core. - No PromptBuilder text removed; only more precise shop grounding rules were added. After applying: ```bash php bin/console cache:clear php bin/console mto:agent:config:validate php bin/console mto:agent:regression:test ``` Expected behavior: If the shop does not contain a clear product for `Indikatortyp 300`, RetrieX should say that the price is not available in the provided shop data and must not add the price of `Testomat 808`, `Testomat 2000`, or unrelated reagents.