# RetrieX Patch 43Q - Agent Term Vocabulary View Consolidation

## Ziel

p43Q reduziert weitere lokale Agent-Termlisten und verschiebt sie in zentrale Vocabulary-Views, ohne fachliche Runtime-Logik, Scoring, Retrieval oder Prompt-Regeln zu ändern.

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

## Änderungen

### `config/retriex/agent.yaml`

Folgende lokale Listen wurden entfernt und durch `vocabulary_views` ersetzt:

- `follow_up_context.commercial_table_follow_up.table_terms`
- `no_llm_fallback.product_roles.main_device_request_keywords`
- `no_llm_fallback.product_roles.accessory_product_keywords`
- `shop_prompt.current_input_preservation.terms`
- `shop_prompt.context_anchor_enrichment.trigger_terms`

Lokale Overrides bleiben möglich: Wird die ursprüngliche lokale Liste wieder gesetzt, bevorzugt der Config-Accessor diese Liste vor der Vocabulary-View.

### `config/retriex/vocabulary.yaml`

Neue zentrale Klassen:

- `agent_follow_up_commercial_table_terms`
- `agent_no_llm_main_device_request_keywords`
- `agent_no_llm_accessory_product_keywords`
- `agent_shop_current_input_preservation_terms`
- `agent_shop_context_anchor_trigger_terms`

Neue Views:

- `agent.follow_up_context.commercial_table_follow_up.table_terms`
- `agent.no_llm_fallback.product_roles.main_device_request_keywords`
- `agent.no_llm_fallback.product_roles.accessory_product_keywords`
- `agent.shop_prompt.current_input_preservation_terms`
- `agent.shop_prompt.context_anchor_enrichment.trigger_terms`

### `src/Config/AgentRunnerConfig.php`

Die betroffenen Accessors nutzen nun `getConfiguredStringListOrVocabularyView()`:

- `getCommercialTableFollowUpTableTerms()`
- `getNoLlmMainDeviceRequestRoleKeywords()`
- `getNoLlmAccessoryProductRoleKeywords()`
- `getShopQueryCurrentInputPreservationTerms()`
- `getShopQueryContextAnchorEnrichmentTriggerTerms()`

## Effektive Werte

Die effektiven Listen bleiben gegenüber p43P identisch:

- `commercial_table_terms`: 6 / 6
- `no_llm_main_device_request_keywords`: 16 / 16
- `no_llm_accessory_product_keywords`: 28 / 28
- `current_input_preservation_terms`: 7 / 7
- `context_anchor_trigger_terms`: 9 / 9

## Nicht geändert

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

## Lokale Prüfungen

Ausgeführt:

```bash
php -l src/Config/AgentRunnerConfig.php
php -l src/Config/DomainVocabularyConfig.php
php -l src/Config/SearchRepairConfig.php
php -l src/Config/PromptBuilderConfig.php
php -l src/Config/GovernanceConfig.php
php -l src/Config/LanguageCleanupConfig.php
python3 YAML parse check for config/retriex/*.yaml
python3 effective p43P-vs-p43Q agent list comparison
zip -T retriex_p43q_agent_term_vocabulary_view_consolidation_patch_only.zip
```

Ergebnis: grün.

## Nicht lokal ausführbar

Die Symfony-Console-Checks konnten in der lokalen Artefaktumgebung nicht ausgeführt werden, weil der ZIP-Stand kein `vendor/` enthält und `bin/console` mit fehlenden Dependencies abbricht.

Bitte nach Einspielen wie gewohnt prüfen:

```bash
bin/console c:cl
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
```
