This commit is contained in:
team 1
2026-05-06 16:58:01 +02:00
parent 9731880cd3
commit 81ae3c3902
6 changed files with 2011 additions and 71 deletions

View File

@@ -0,0 +1,148 @@
# RetrieX Patch p55 - Single-Genre Config Values
## Ziel
Dieser Patch ist der erste Schritt nach p54, um RetrieX fuer eine **eine Installation = ein Genre**-Konfiguration vorzubereiten.
p54 war die Landkarte (`adaptation_surface`). p55 fuegt nun in `config/retriex/genre.yaml` eine erste zentrale Werteflaeche hinzu:
```yaml
retriex.genre.config:
configuration_values:
product_roles:
product_attributes:
brands_and_canonical_terms:
intent_and_routing:
context_resolution:
shop_query_runtime:
result_identity_and_answer_policy:
search_repair:
retrieval_and_language:
shop_data_mapping:
governance_and_regression:
```
Die Werte sind aus dem aktuellen stabilen Wasseranalyse-/Messgeraete-Genre uebernommen. Dadurch ist erstmals an einer zentralen Stelle sichtbar, welche konkreten fachlichen Werte bei einer spaeteren Umwidmung, z. B. auf Fashion, Moebel, Ersatzteile oder Elektronik, ersetzt werden muessten.
## Bewusste Nicht-Ziele
- Keine Multi-Genre-Loesung
- Keine Tenant-Logik
- Keine Runtime-Umschaltung pro Request
- Keine SaaS-/Host-/API-Key-Auswahl
- Keine fachliche Logikaenderung
- Keine neuen fachlichen Tokenlisten im PHP-Core
- Keine Ranking-, Retrieval- oder Shopware-Kriterienaenderung
- Keine LLM-Verhaltensaenderung
- Keine Entfernung alter Config-Pfade
- Kein p56-Wiring
Die Runtime liest nach diesem Patch weiterhin die bisherigen Config-Dateien und Pfade. `configuration_values` ist die neue zentrale Pflege-/Migrationsflaeche, aber noch nicht die fuehrende Runtime-Quelle.
## Geaenderte Dateien
```text
config/retriex/genre.yaml
src/Config/GenreConfig.php
src/Config/RetriexEffectiveConfigProvider.php
RETRIEX_PATCH_55_SINGLE_GENRE_CONFIG_VALUES_README.md
```
## Wichtigste Aenderungen
### `config/retriex/genre.yaml`
Neu ist der Block:
```yaml
configuration_values:
...
```
Er enthaelt die aktuellen genreabhaengigen Werte gruppiert nach denselben Bereichen wie `adaptation_surface`:
- Produktrollen und Shop-/Prompt-Views
- Produktattribute und numerische Constraints
- Marken, Canonical Terms und Query-Enrichment
- Intent- und Routing-Signale
- Follow-up-/Kontextanker
- Shopquery-Runtime
- Result-Identity und Antwort-/Grounding-Regeln
- Search Repair
- Retrieval-/Language-Begriffe
- Shopdaten-Mapping
- Governance-/Regression-Guardrails
Jeder Unterbereich enthaelt `source_paths`, damit nachvollziehbar bleibt, aus welchen bestehenden Runtime-Pfaden die Werte stammen.
### `GenreConfig`
Neue Zugriffsmethoden:
```php
getConfigurationValues(): array
getConfigurationValueGroup(string $group): array
```
Diese Methoden stellen die neue Werteflaeche bereit, ohne die Runtime bereits darauf umzustellen.
### `RetriexEffectiveConfigProvider`
Die Config-Validierung prueft nun zusaetzlich:
- `genre.configuration_values` ist eine nicht-leere Map
- jede Werte-Gruppe ist eine nicht-leere Map
- fuer jede `adaptation_surface`-Gruppe existiert eine passende `configuration_values`-Gruppe
Fehlende Value-Gruppen wuerden als Warnung sichtbar; strukturell falsche Value-Gruppen als Fehler.
## Warum p55 noch kein Wiring macht
p55 soll bewusst risikoarm bleiben. Die alten Pfade bleiben fuehrend, damit bestehende Regressionen und Shop-/RAG-Verhalten unveraendert bleiben.
Der naechste Schritt waere ein separater Patch:
```text
p56 Single-Genre Config Wiring
```
Dort koennen ausgewaehlte Getter oder ein zentraler Effective-Provider bevorzugt aus `genre.configuration_values` lesen und bei fehlenden Werten auf die alten Pfade zurueckfallen.
## Lokale Pruefungen
Ausgefuehrt im entpackten Patch-Arbeitsstand:
```bash
php -l src/Config/GenreConfig.php
php -l src/Config/RetriexEffectiveConfigProvider.php
```
Ergebnis: beide PHP-Lints gruen.
Zusaetzlich wurden alle YAML-Dateien unter `config/retriex/*.yaml` per Python/YAML-Parser geprueft.
Ergebnis: YAML-Parsing gruen.
Zusaetzlich wurde geprueft:
- `adaptation_surface` hat 11 Gruppen
- `configuration_values` hat dieselben 11 Gruppen
- keine `adaptation_surface`-Gruppe ohne entsprechende Werte-Gruppe
## Nicht lokal ausfuehrbar
`bin/console` konnte lokal nicht ausgefuehrt werden, weil im ZIP kein `vendor/` enthalten ist:
```text
Dependencies are missing. Try running "composer install".
```
## Empfohlene 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
```