# RetrieX Patch p57 - Single-Genre Source Audit / Legacy Cleanup Guard ## Ziel Dieser Patch ist der naechste kleine Schritt nach p56. Er loescht noch keine Legacy-YAML-Werte, sondern haertet die zentrale Single-Genre-Pflegeflaeche fuer den spaeteren Cleanup. Es bleibt strikt bei: eine Installation = ein Genre. Es gibt keine Multi-Genre-Umschaltung, keinen Tenant-Kontext und keinen Request-/Host-Resolver. ## Warum dieser Schritt Nach p55/p56 sind viele fachliche Werte bevorzugt in `config/retriex/genre.yaml` gepflegt, waehrend die alten Pfade als Fallback bestehen bleiben. Damit diese Uebergangsphase kontrollierbar bleibt, muessen die in `genre.configuration_values.*.source_paths` dokumentierten Legacy-/Effective-Pfade selbst validierbar und auditierbar sein. p57 macht diese Source-Path-Metadaten maschinenlesbar und sichtbar. ## Was geaendert wurde - `GenreConfig` erhaelt `getConfigurationValueSourcePaths()`. - `RetriexEffectiveConfigProvider` validiert nun auch die `source_paths` unter `genre.configuration_values` gegen bekannte effektive bzw. Legacy-Config-Pfade. - `ConfigSourceAuditProvider` sammelt die Single-Genre-Source-Path-Metadaten fuer `mto:agent:config:audit-source --json`. - `ConfigSourceAuditCommand --details` zeigt zusaetzlich eine Tabelle der Single-Genre-Source-Pfade. ## Nicht geaendert - Keine Fachlogik-Aenderung. - Keine neuen fachlichen Listen. - Keine neuen Defaults. - Keine Entfernung von Legacy-Fallback-Werten. - Keine Shopware-Kriterien-, Ranking-, Retrieval- oder LLM-Verhaltensaenderung. - Keine Multi-Genre-/Tenant-Loesung. ## Erwartetes Verhalten Das Antwortverhalten bleibt unveraendert. Der Unterschied ist nur, dass die zentrale Genre-Konfiguration besser validiert und auditierbar ist. Wenn spaeter ein falscher oder veralteter `source_paths`-Eintrag in `genre.yaml` entsteht, meldet `mto:agent:config:validate` eine Warnung statt den Fehler unbemerkt zu lassen. ## Geaenderte Dateien - `src/Config/GenreConfig.php` - `src/Config/RetriexEffectiveConfigProvider.php` - `src/Config/ConfigSourceAuditProvider.php` - `src/Command/ConfigSourceAuditCommand.php` - `RETRIEX_PATCH_57_SINGLE_GENRE_SOURCE_AUDIT_README.md` ## Lokale Checks ```bash php -l src/Config/GenreConfig.php php -l src/Config/RetriexEffectiveConfigProvider.php php -l src/Config/ConfigSourceAuditProvider.php php -l src/Command/ConfigSourceAuditCommand.php ``` YAML-Parsing fuer alle Dateien unter `config/retriex/*.yaml`. Projektchecks nach dem Einspielen: ```bash bin/console cache:clear 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 ```