# RX-CLN-001 (A) – Reconciliation Semantics Cleanup

Status: implementation draft / test candidate  
Date: 2026-08-31

## Decision

The following concepts are currently considered sufficiently separated:

- `InterpretationNode.technique_uri`: interpretation technique; describes how an interpretation was produced.
- `ReconciliationRun.configuration.discovery_method`: candidate-discovery method; describes how candidates are searched.

The following `ReconciliationResult` properties remain reserved, but are deliberately **undefined for the current runtime**:

- `matching_strategy_uri`
- `vocabulary_matching_pattern_uri`

Until a stable domain definition exists, both values MUST be persisted as `NULL` by the current OpenRefine/classic and Vector Discovery execution paths.

`VECTOR_SIMILARITY` is a discovery method and MUST NOT be persisted as `matching_strategy_uri`.
The provisional value `https://reconcilix.example/strategy/legacy` is not migrated to a new notation; it is removed from current runtime configuration and existing stored values are cleared.

## Data cleanup

Migration `0008_reconciliation_result_undefined_semantics.sql` clears both fields for existing `reconciliation_result` rows.

No columns are removed. The fields remain nullable and available for a later explicit domain definition.

## Code cleanup

- `ReconciliationApplicationService` creates results with `matchingStrategyUri: null`.
- `DiscoveryTestbenchService` creates vector results with `matchingStrategyUri: null`.
- `RuntimeFactory` no longer accepts or forwards a matching-strategy configuration value.
- `ReconciliationCompositionRoot` no longer defines the provisional legacy matching-strategy URI.
- Regression tests explicitly verify `NULL` for matching strategy and vocabulary matching pattern in the active application paths.

## Migration compatibility

`0007_interpretation_status_notation.sql` is included with the MariaDB-compatible `CHANGE COLUMN` syntax established during server testing.

## Out of scope

This cleanup does not define or change:

- `candidate_provider_uri`
- `payload_json`
- matching-strategy vocabulary terms
- vocabulary-matching-pattern vocabulary terms

Those topics remain for RX-CLN-001 (B) or a later explicit domain decision.
