# RetrieX Config Source Audit Patch This patch starts the YAML-only migration with a non-invasive diagnostic layer. It does not change retrieval, prompt generation, commerce parsing, shop matching, SSE behavior, or any answer logic. ## Added - `App\Config\ConfigSourceAuditProvider` - `mto:agent:config:audit-source` ## Purpose The audit makes remaining PHP defaults visible before we remove them. It scans: - `config/retriex/*.yaml` parameter paths - `src/Config/*Config.php` constants - config helper calls with fallback arguments, for example `stringList('x', self::DEFAULT)` or `int('x', 3)` - constructor defaults that still act as PHP fallbacks ## Usage ```bash php bin/console mto:agent:config:audit-source php bin/console mto:agent:config:audit-source --details php bin/console mto:agent:config:audit-source --json ``` ## Interpretation - `yaml_with_php_fallback`: the YAML path exists, but PHP still has a fallback argument. This is ready for a later conversion to required YAML access. - `php_fallback_if_yaml_missing_or_invalid`: PHP still supplies a default and no matching YAML path was found. This must be migrated before the fallback can be removed. - `php_only`: constants without an injected YAML config parameter. These must be classified as either technical guardrails or values that should move to YAML. ## Migration rule for the next patches Do not remove PHP defaults yet. First migrate every still-needed value into YAML, then convert fallback helpers to required YAML accessors in small class groups. ## Validation performed for this patch ```bash php -l src/Config/ConfigSourceAuditProvider.php php -l src/Command/ConfigSourceAuditCommand.php ``` Both files are syntactically valid. Full Symfony command execution was not performed in this ZIP workspace because `vendor/` is not included in the uploaded archive.