# Phase 5C — File « À vérifier » et validation canonique

## Objectif

Transformer les observations sourcées produites par l’ingestion en décisions administrables sans permettre à un fournisseur d’écraser directement la donnée publiée.

## Flux

```text
Connecteur / ingestion
        ↓
Observation sourcée
        ↓
ReviewQueueService
        ↓
À vérifier
   ├─ nouvelle donnée sans canonique
   ├─ valeur différente
   └─ conflit multi-sources
        ↓
Administrateur
   ├─ Valider une observation
   ├─ Rejeter une observation
   └─ Conserver la valeur actuelle
        ↓
Valeur canonique + historique
        ↓
API Coaster World
```

## Principe de non-répétition

Une décision est associée à l’empreinte des valeurs actuellement proposées. Si une source renvoie de nouveau les mêmes valeurs, la vérification reste résolue. Si une nouvelle valeur distincte apparaît, l’empreinte change et la file est automatiquement rouverte.

## Table `data_review_items`

Une ligne unique par `subject_type + subject_id + field_key + locale`. Elle conserve le motif, la priorité, la valeur canonique, l’observation recommandée, les compteurs, l’empreinte courante et l’empreinte résolue.

## Décisions

- **Valider cette valeur** : promotion explicite de l’observation, validation humaine, historique canonique et résolution du conflit.
- **Rejeter** : l’observation sort des valeurs courantes, le rejet est tracé et la file est recalculée.
- **Conserver la valeur actuelle** : confirmation explicite de la valeur canonique existante sans supprimer les affirmations contradictoires des sources.

## Reconstruction

`php artisan cw:review:rebuild` reconstruit la file depuis toutes les observations `current`. Cette commande est exécutée une fois après la migration v0.15.0 et peut être réutilisée pour diagnostic.
