# RetrieX Patch 13 – Agent/Commerce Pattern Externalization

## Ziel

Patch 13 setzt die Developer Policies aus v1.5.1 weiter um und entfernt weitere fachliche Patterns,
Signal-Listen und Produkt-/Fokuslisten aus PHP-Core-Klassen.

Die Änderung ist bewusst klein gehalten und soll das Laufzeitverhalten nicht fachlich verändern:
Die bisherigen Werte wurden 1:1 nach YAML verschoben und die PHP-Klassen lesen sie nur noch aus der Konfiguration.

## Geänderte Bereiche

### AgentRunner

Dateien:

- `src/Agent/AgentRunner.php`
- `src/Config/AgentRunnerConfig.php`
- `config/retriex/agent.yaml`

Externalisiert wurden:

- starke Follow-up-Referenzpatterns, z. B. „der Wert“, „womit“, „welcher Indikator“
- explizite Commerce-Follow-up-Signale, z. B. „shop“, „preis“, „kostet“, „sku“
- History-/Follow-up-Strukturpatterns für `Question:`-Parsing
- Referenzanker-Patterns für Testomat-Modellanker und Härtewerte in °dH

### CommerceQueryParser

Dateien:

- `src/Commerce/CommerceQueryParser.php`
- `src/Config/CommerceQueryParserConfig.php`
- `config/retriex/commerce.yaml`

Externalisiert wurden:

- Search-Control-Tokens wie `shop`, `store`, `produkt`, `artikel`, `kaufen`, `bestellen`, `online`

### CommerceReferenceResolver

Dateien:

- `src/Commerce/CommerceReferenceResolver.php`
- `src/Config/CommerceReferenceResolverConfig.php`
- `config/services.yaml`
- `config/retriex/commerce.yaml`

Externalisiert wurden:

- Conversation-Produktpatterns für Testomat-Modelle
- Fokus-Term-Patterns für Zubehör-/Reagenz-/Ersatzteilbegriffe

## Bewusst nicht geändert

Nicht alle technischen Normalisierungsregexe im `AgentRunner` wurden in diesem Patch angefasst.
Bewusst unverändert bleiben zunächst rein technische Parser-/Sanitizer-Patterns wie Whitespace-Normalisierung,
Tokenisierung oder HTML-/Output-Formatierung.

Diese können später in einem separaten, kleineren Follow-up-Patch geprüft werden, falls der Audit weiterhin zu viel
Pattern-Logik im Core meldet.

## Prüfungen

In der Patch-Arbeitsumgebung wurde geprüft:

```bash
php -l src/Config/AgentRunnerConfig.php
php -l src/Agent/AgentRunner.php
php -l src/Config/CommerceQueryParserConfig.php
php -l src/Commerce/CommerceQueryParser.php
php -l src/Config/CommerceReferenceResolverConfig.php
php -l src/Commerce/CommerceReferenceResolver.php
```

Alle geprüften PHP-Dateien waren syntaktisch valide.

Zusätzlich wurden die geänderten YAML-Dateien parserseitig geprüft:

- `config/retriex/agent.yaml`
- `config/retriex/commerce.yaml`
- `config/services.yaml`

## Nach dem Einspielen lokal ausführen

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

Falls die Umgebung `vendor/` nicht enthält, vorher wie üblich Abhängigkeiten installieren.

## Erwartetes Ergebnis

- Keine fachliche Verhaltensänderung.
- Keine neue Strict-Validation.
- Weniger fachliche Pattern-/Keyword-Logik im PHP-Core.
- Weitere Annäherung an die Developer Policies aus v1.5.1.
