# RetrieX Patch p43E – Direct Attribute Vocabulary View Consolidation

## Ziel

p43E reduziert weitere doppelt gepflegte Direct-Attribute-Begriffe, ohne fachliche Runtime-Logik, Scoring, Prompt-Regeln, Retrieval oder Admin-UI zu verändern.

Der Patch setzt auf dem grünen p43D-Stand auf.

## Änderungen

- `config/retriex/agent.yaml`
  - `shop_prompt.product_attribute_query_cleanup.product_type_terms` wird nicht mehr lokal als Liste gepflegt.
  - `shop_prompt.product_attribute_query_cleanup.stop_terms` wird nicht mehr lokal als Liste gepflegt.
  - Beide Listen werden über `vocabulary_views` aus `config/retriex/vocabulary.yaml` referenziert.

- `config/retriex/search_repair.yaml`
  - Lokale `direct_product_attribute_lookup.stop_terms` entfernt.
  - SearchRepair nutzt weiterhin lokale Overrides, falls künftig bewusst wieder ein projektspezifischer Override ergänzt wird.

- `config/retriex/vocabulary.yaml`
  - Zentrale Klasse `direct_product_attribute_stop_terms` ergänzt.
  - Zentrale View `search_repair.direct_product_attribute_stop_terms` ergänzt.
  - Bestehende View `search_repair.direct_product_type_terms` bleibt die zentrale Quelle für direkte Produktart-Begriffe.

- `src/Config/AgentRunnerConfig.php`
  - `DomainVocabularyConfig` wird optional injiziert.
  - Direct-Attribute-Produktart- und Stop-Term-Zugriffe lösen nun lokale Overrides oder Vocabulary-Views auf.

- `src/Config/SearchRepairConfig.php`
  - `getDirectProductAttributeLookupStopTerms()` nutzt lokale Overrides oder die neue zentrale Vocabulary-View.

- `config/services.yaml`
  - `DomainVocabularyConfig` wird an `AgentRunnerConfig` injiziert.

## Effektive Listen

Die effektiven Listen bleiben gegenüber p43D unverändert:

- AgentRunner Direct-Attribute `product_type_terms`: 12 vorher / 12 nachher, identisch.
- AgentRunner Direct-Attribute `stop_terms`: 40 vorher / 40 nachher, identisch.
- SearchRepair Direct-Attribute `product_type_terms`: 12 vorher / 12 nachher, identisch.
- SearchRepair Direct-Attribute `stop_terms`: 40 vorher / 40 nachher, identisch.

## Bewusst nicht geändert

- Keine neue Fachlogik.
- Keine Scoringänderung.
- Keine Prompt-Regeländerung.
- Keine Retrievaländerung.
- Keine Admin-UI.
- Keine neuen harten Listen im PHP-Core.

## Lokale Checks in dieser Patch-Erstellung

Grün:

```bash
php -l src/Config/AgentRunnerConfig.php
php -l src/Config/SearchRepairConfig.php
```

Zusätzlich wurde per YAML-/Listenvergleich geprüft, dass die effektiven Direct-Attribute-Listen identisch zum p43D-Stand bleiben.

Nicht lokal ausführbar in dieser Umgebung:

```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
```

Grund: Der entpackte ZIP-Stand enthält kein `vendor/`; `bin/console` bricht deshalb mit `Dependencies are missing` ab. Ein lokaler `composer install` war in der Ausführungsumgebung nicht möglich, da PHP-Extensions (`curl`, `dom`, `sqlite3`, `xml`) fehlen und externe Downloads nicht aufgelöst werden konnten.

## Empfohlene Pflichtchecks nach Einspielen

```bash
php -l src/Config/AgentRunnerConfig.php
php -l src/Config/SearchRepairConfig.php
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
```
