# RetrieX Patch p59 - Complete Genre Wiring ## Ziel Dieser Patch schliesst die Genre-Verdrahtung weiter ab: noch nicht oder nur indirekt verdrahtete fachliche Parameter lesen nun bevorzugt aus `config/retriex/genre.yaml`. Wichtig: p59 loescht keine Werte aus Legacy-YAMLs. Die alten Pfade bleiben als Fallback aktiv. Damit ist der Patch bewusst ein reiner Wiring-Schritt und bereitet p60 vor. ## Warum dieser Schritt p55 bis p58 haben die zentrale Single-Genre-Pflegeflaeche aufgebaut, erste Runtime-Flows an `genre.yaml` angeschlossen und bereits verdrahtete Legacy-Werte kontrolliert reduziert. p59 erweitert diese bevorzugte Genre-Leselogik auf die verbliebenen fachlichen Oberflaechen, insbesondere: - `vocabulary.yaml` Include-/View-/Map-Ketten - `prompt.yaml` fachliche Antwort-, Format- und Grounding-Regeln - `search_repair.yaml` fachliche Suchreparatur-Patterns und Candidate-Terms - `retrieval.yaml` Exact-Selection- und fachliche Retrieval-Begriffe - `language.yaml` `protected_terms` - `governance.yaml` fachliche Regression-/Guardrail-Erwartungen - fachliche Intent-/Routing-Restwerte fuer Commerce/Sales - Commercial-Table-Follow-up-Anker in `agent.yaml` ## Was geaendert wurde ### Genre-Konfiguration `config/retriex/genre.yaml` wurde um fehlende, bereits bestehende fachliche Werte ergaenzt. Die Werte wurden aus den bisherigen Legacy-Pfaden uebernommen, nicht neu erfunden. Ergaenzt wurden insbesondere: - Shop-Semantic-Search-Tokens aus `vocabulary.views.shop.semantic_search_tokens` - technische Prompt-Keywords aus `vocabulary.views.prompt.technical_product_keywords` - Measurement-Evidence-Maps aus `vocabulary.maps.prompt.measurement_evidence_guard` - Safety-Doc-/Safety-Word-Retrieval-Views aus `vocabulary.views.retrieval.*` ### Runtime-/Config-Facades Folgende Config-Klassen lesen neue fachliche Werte bevorzugt aus `GenreConfig` und fallen sonst auf die bestehenden Legacy-Pfade zurueck: - `DomainVocabularyConfig` - `PromptBuilderConfig` - `SearchRepairConfig` - `NdjsonHybridRetrieverConfig` - `LanguageCleanupConfig` - `GovernanceConfig` - `SalesIntentConfig` - `CommerceIntentConfig` - `AgentRunnerConfig` ### Dependency Injection `config/services.yaml` injiziert `GenreConfig` nun auch in die neu verdrahteten Config-Facades. ## Nicht geaendert - Keine Legacy-Wertloeschung. - Keine Reduktion von `vocabulary.yaml`, `prompt.yaml`, `search_repair.yaml`, `retrieval.yaml`, `language.yaml` oder `governance.yaml`. - Keine neuen fachlichen Defaults im PHP-Core. - Keine neuen harten Token-/Stringlisten im PHP-Core. - Keine Multi-Genre-/Tenant-Umschaltung. - Keine Aenderung an `model.yaml`, `vector.yaml`, `index.yaml`, `runtime.yaml`, Cache-/Pfad-Konfiguration, LLM-Timeouts, Embedding-Modellen, Chunk-Groessen, technischen Stream Guards oder allgemeinem `final_answer_guard`. - Keine Shopware-Kriterien-, Ranking-, Retrieval-Scoring- oder LLM-Logik-Aenderung. ## Erwartetes Verhalten Das fachliche Antwortverhalten soll unveraendert bleiben. Fuer die verdrahteten Werte gilt nun: 1. `genre.yaml` ist bevorzugte Quelle. 2. Die bisherigen Legacy-Pfade bleiben Fallback. 3. p60 kann danach die verbleibenden doppelten Legacy-Werte sicher reduzieren. Damit bleibt das Zielbild sauber getrennt: - `genre.yaml` sagt, was fachlich relevant ist. - Agent/Commerce/Prompt/Retrieval/Search-Repair/Language/Governance sagen, wie diese Werte verarbeitet, validiert oder auditiert werden. ## Lokale Pruefung Durchgefuehrt: ```bash php -l src/Config/DomainVocabularyConfig.php php -l src/Config/PromptBuilderConfig.php php -l src/Config/SearchRepairConfig.php php -l src/Config/NdjsonHybridRetrieverConfig.php php -l src/Config/LanguageCleanupConfig.php php -l src/Config/GovernanceConfig.php php -l src/Config/SalesIntentConfig.php php -l src/Config/CommerceIntentConfig.php php -l src/Config/AgentRunnerConfig.php ``` Alle PHP-Syntaxchecks waren gruen. ```bash python3 - <<'PY' # YAML-Parsing fuer alle Dateien unter config/retriex/*.yaml PY ``` Alle `config/retriex/*.yaml` Dateien konnten geparst werden. Zusaetzlich wurde skriptbasiert geprueft, dass die neu verdrahteten Genre-Werte den bisherigen Legacy-Werten entsprechen. Geprueft wurden unter anderem: - Vocabulary-Views und Vocabulary-Maps - Prompt-Regeln und technische Keywords - Search-Repair-Patterns und Candidate-Terms - Retrieval-Safety-Views und Language-Protected-Terms - Governance-/Regression-Guardrail-Werte - Sales-/Commerce-Intent-Restwerte - Commercial-Table-Follow-up-Anker Ergebnis: `RESULT PASS`. `bin/console` konnte lokal nicht ausgefuehrt werden, weil im ZIP kein `vendor/` enthalten ist: ```text Dependencies are missing. Try running "composer install". ``` ## 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 ``` ## Naechster Schritt Wenn p59 gruen ist, kann p60 folgen: `Legacy Value Reduction Final`. Erst dort werden die verbleibenden doppelten fachlichen Werte aus den Legacy-YAMLs entfernt oder auf leere Fallback-Platzhalter reduziert.