This commit is contained in:
team 1
2026-05-07 15:42:35 +02:00
parent 987b15d4ff
commit e02f3d7143
5 changed files with 282 additions and 114 deletions

View File

@@ -0,0 +1,71 @@
# RetrieX Patch p59D - Genre Source Path Metadata Split
## Goal
Continue the p59 cleanup after p59A/p59B/p59C by separating native genre values from legacy/runtime source-path metadata.
`genre.yaml.configuration_values` should be the maintenance surface for actual genre values. Legacy/runtime source paths are still useful for audit and migration visibility, but they no longer need to live inside individual value nodes once p59C has classified them in `adaptation_surface.*.review_path_groups`.
## Changes
- Removed all remaining `source_paths` declarations from `genre.yaml.configuration_values`.
- Marked the affected value nodes with `origin: genre_native`.
- Kept all 39 legacy/runtime source paths in `adaptation_surface.*.review_path_groups`.
- Updated `GenreSourceOfTruthGuard` so frozen/runtime source-path checks read declared paths from review path groups as well as the legacy value-node format.
- Updated `ConfigSourceAuditProvider` so the source audit distinguishes:
- configuration value nodes with `source_paths`
- review path groups with declared source paths
- total declared source paths
- Updated the audit command labels from “Genre value path” to “Genre metadata path” for source-path audit rows.
## Runtime impact
No runtime, retrieval, prompt, shop, routing, query, scoring or answer logic was changed.
The patch only changes configuration metadata placement and audit/guard handling.
## Expected audit shape after the patch
- `genre.configuration_values.*.source_paths`: 0
- `genre.adaptation_surface.*.review_path_groups.*.paths`: 39 declared paths
- frozen non-empty legacy paths: 37
- runtime-resolved allowed paths: 2
- source-of-truth violations: 0
## Local checks performed
Because the ZIP does not include `vendor/`, Symfony console commands could not be executed locally.
Performed locally:
- `config/retriex/genre.yaml` parses as YAML.
- `config/retriex/governance.yaml` parses as YAML.
- PHP lint passed for changed files:
- `src/Config/GenreSourceOfTruthGuard.php`
- `src/Config/ConfigSourceAuditProvider.php`
- `src/Command/ConfigSourceAuditCommand.php`
- Local guard simulation:
- 0 `configuration_values` source-path nodes
- 39 declared review source paths
- 39 unique declared source paths
- 0 missing source paths
- 0 unregistered non-empty source paths
- 0 frozen hash mismatches
- 0 undeclared frozen hashes
## Required project checks after applying
Run in the real project with dependencies installed:
```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
```
## Notes
This patch intentionally does not remove the legacy/runtime YAML values themselves. It only removes their duplicate declaration from `configuration_values` and keeps them visible in the adaptation surface review inventory.
A later patch can decide, group by group, whether a legacy value is still a necessary runtime fallback, a technical config that should remain outside genre values, or removable after a dedicated runtime rewire.