# RetrieX Patch 17c - Accuracy CAL / Pool Grounding Hotfix

## Ziel

Patch 17c korrigiert zwei nach Patch 17b verbliebene Accuracy-Probleme:

1. **Testomat CAL / Grenzwerte**
   - Prompts wie `welche grenzwerte kann der testomat cal messen` sollen den passenden Produktdatensatz `Testomat 2000 CAL` sicherer als exaktes Dokument auflösen, auch wenn der Nutzer die numerische Familienkennung `2000` nicht nennt.
   - Fehlübertragungen von Testomat-808-Indikatorbereichen auf Testomat CAL werden im Prompt-Grounding weiter untersagt.

2. **Chlor / Schwimmbad**
   - Chlor-Messfähigkeit und Schwimmbad-/Pool-Anwendung werden getrennt bewertet.
   - Ein Produkt darf nur dann als Schwimmbad-/Pool-Lösung empfohlen werden, wenn dieselbe RAG- oder Shop-Quelle diese Anwendung explizit nennt.

## Geänderte Dateien

- `src/Knowledge/Retrieval/NdjsonChunkLookup.php`
- `config/retriex/prompt.yaml`

## Details

### Exact document lookup

`NdjsonChunkLookup` erhält einen zusätzlichen Fallback für Titelmatches mit fehlender numerischer Produktfamilie. Dadurch kann ein Prompt wie `Testomat CAL` auf einen Titel wie `Testomat 2000 CAL` matchen, wenn alle nicht-numerischen Titelanker übereinstimmen und kein widersprechender numerischer Promptanker vorhanden ist.

Beispiele:

- `Testomat CAL` -> darf `Testomat 2000 CAL` matchen.
- `Testomat 808 CAL` -> darf nicht allein wegen `CAL` auf `Testomat 2000 CAL` springen, wenn ein widersprechender Zahlenanker vorhanden ist.

### Prompt-Grounding

Die Promptregeln wurden um zwei Guardrails ergänzt:

- CAL darf nicht mit Testomat-808-Indikatorbereichen oder generischen `0,02 °dH bis 5 °dH`-Bereichen beantwortet werden, außer ein CAL-Quellrecord belegt diese Zuordnung explizit.
- Chlor-Messung ist kein automatischer Beleg für Schwimmbad-/Pool-Eignung. Diese Anwendung muss in derselben Quelle explizit stehen.

## Erwartete Checks

Nach dem Einspielen ausführen:

```bash
bin/console mto:agent:config:validate
bin/console mto:agent:regression:test
bin/console mto:agent:config:audit-source --details
bin/console mto:agent:config:audit-patterns --details
```

## Manuelle Regression

Erneut testen:

- `welche grenzwerte kann der testomat cal messen`
- `ich würde gern chlor im schwinnbad messen`

