# RetrieX p43S - Final YAML List / Map Inventory

Dieses Inventar dokumentiert den Stand nach p43R und p43S. Es ist bewusst dokumentarisch und verändert keine Runtime-Konfiguration.

## Zweck

Die p43-Serie hat zentrale Begriffslisten, Maps und Cleanup-Gruppen aus lokalen Domain-YAMLs in zentrale Pflegebereiche überführt:

- `config/retriex/vocabulary.yaml`
- `config/retriex/language.yaml`
- gezielte Domain-YAMLs mit lokalen Overrides

Dieses Inventar hält fest, welche Bereiche ab jetzt als zentralisiert gelten und welche Bereiche bewusst lokal bleiben.

## Zentralisierte Pflegebereiche

### Vocabulary-Views

Verwendet für reine Begriffslisten, die von Agent-, Prompt-, Retrieval-, SearchRepair-, Commerce- oder Shop-Config gelesen werden.

Beispiele:

- `agent.input_normalization_fuzzy_routing_terms`
- `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`
- `search_repair.direct_product_type_terms`
- `search_repair.direct_product_attribute_stop_terms`
- `search_repair.requested_accessory_code_terms`
- `search_repair.model_candidate_exclude_terms`
- `prompt.measurement_evidence_guard.accessory_lookup_guard_terms`
- `prompt.measurement_evidence_guard.accessory_lookup_passthrough_terms`
- `prompt.measurement_evidence_guard.generic_positive_context_terms`
- `prompt.measurement_evidence_guard.generic_negative_context_terms`

### Vocabulary-Maps

Verwendet für key-basierte Synonyme oder Parameterlisten.

Beispiele:

- `agent.rag_evidence_guard.synonyms`
- `shop.accessory_focus_variants`
- `prompt.measurement_evidence_guard.request_terms`
- `prompt.measurement_evidence_guard.positive_terms`
- `prompt.measurement_evidence_guard.non_equivalent_terms`

### Vocabulary-Map-Aliase

Map-Aliase sind erlaubt, wenn mehrere Keys wirklich dieselbe Wertemenge innerhalb derselben Map-Domäne verwenden.

Beispiele:

- Salinität-Aliase in `agent.rag_evidence_guard.synonyms`
- Redox/ORP-Aliase in `agent.rag_evidence_guard.synonyms`
- Varianten in `shop.accessory_focus_variants`

Nicht empfohlen sind Cross-Domain-Aliase zwischen fachlich unterschiedlichen Maps, selbst wenn aktuell dieselben Werte vorkommen.

### Language-Group-Sets

Verwendet für gemeinsame Cleanup-Basisgruppen.

Beispiele:

- `stopword_groups.de_conversation`
- `phrase_groups.user_instruction`
- Cleanup-Profile mit `stopword_group_sets` und `phrase_group_sets`

## Bewusst lokale Bereiche

### Prompt-Regeln

Prompt-Regeltexte bleiben in `prompt.yaml`, weil sie Verhalten ausdrücken, nicht bloß Vocabulary.

Beispiele:

- `measurement_evidence_guard.intro_rules`
- `measurement_evidence_guard.product_specific_rules`
- `measurement_evidence_guard.final_rules`
- `output_priority.rules`
- `fallback_escalation.*`
- Antwortformat- und Quellenregeln

### Regex- und Pattern-Regeln

Regex-Listen bleiben dort, wo sie die jeweilige Domain-Logik ausdrücken.

Beispiele:

- Prompt Role Guard Patterns
- Measurement Generic Request Patterns
- Numeric Value Focus Patterns
- Intent-/Routing-Patterns

### Governance-/Regression-Baselines

Regression- und Governance-Baselines bleiben unabhängig, damit sie nicht dieselbe Quelle validieren, die sie absichern sollen.

Beispiele:

- `regression_baseline.protected_short_model_tokens`
- Accessory-/Reagent-Guardrail-Baselines

### Parameternahe Sonderkontexte

Parameternahe Kontextlisten bleiben lokal, wenn sie bewusst Schreibvarianten oder Prompt-Matching-Nuancen enthalten.

Beispiel:

- pH-spezifische `negative_context_terms` im Measurement-Evidence-Parameterblock

## Verbleibende bewusst akzeptierte Duplikate

| Bereich | Grund für Beibehaltung |
| --- | --- |
| Governance protected short model tokens vs. retrieval important short model tokens | unabhängige Guardrail-Baseline |
| Prompt request terms für pH/Redox vs. RAG-Evidence-Synonyme | unterschiedliche Domain-Semantik |
| Governance accessory prompt keywords vs. retrieval reagent words | unterschiedliche Regression-Baselines |

## Pflegeleitlinie nach p43S

Neue Listen sollen erst klassifiziert werden:

1. Reine Begriffe, Synonyme oder Varianten? → `vocabulary.yaml`
2. Sprachbereinigung / Cleanup-Profil? → `language.yaml`
3. Prompt-Verhalten, Antwortregel oder Formatregel? → lokale Prompt-Config
4. Regression-/Governance-Schutz? → lokale Governance-Config
5. Domain-spezifischer Override? → lokale Domain-YAML mit optionalem Vocabulary-Fallback

Vor Merge immer 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
```
