# RetrieX Patch 9.0f - PromptBuilder Role Guard & Measurement Evidence YAML-only

## Scope

This patch continues the PromptBuilder YAML-only migration after Patch 9.0e.

It converts these remaining PromptBuilder truth/product-role related areas to required YAML configuration:

- `role_guard.main_device_request_keywords`
- `role_guard.main_device_product_keywords`
- `role_guard.accessory_product_keywords`
- `technical_product_keywords`
- `accessory_request_keywords`
- `sections.measurement_evidence_label`
- `measurement_evidence_guard.intro_rules`
- `measurement_evidence_guard.parameters`
- `technical_product_model_pattern`

## Intent

PHP no longer provides fallback truth for these PromptBuilder areas. If a required YAML value is missing or invalid, `PromptBuilderConfig` now throws a clear `InvalidArgumentException`.

## Not changed

This patch does not change:

- Retrieval logic
- Commerce logic
- Shop matching
- AgentRunner
- SSE / frontend
- Prompt wording content in YAML

## Notes

`measurement_evidence_guard.parameters` is now required to contain at least one valid parameter definition. Individual list fields inside a parameter are still normalized as before to preserve behavior.

## Recommended checks

```bash
php bin/console cache:clear
php bin/console mto:agent:config:validate
php bin/console mto:agent:config:audit-source --details
php bin/console mto:agent:regression:test
```
