Lot 1 bis — Référentiel global et états de qualité par référentiel
02/10/2026. Séquence L1-1+2 du plan d’alignement, partie A, d’après la note d’amendement (AM-06, AM-16). Décisions appliquées : EC-089, EC-090, EC-101 ; écart ouvert : EC-100 (états du NOP).
- Les états viennent du référentiel. Les états de qualité et de statut d’un référentiel, et leur ordre, sont une donnée de son pack ; ce n’est plus une liste figée dans le code ou dans la base.
- Un catalogue global, des référentiels cochés.
app.referentielest partagé entre toutes les organisations ; chaque organisation coche les siens dansapp.organisation_referentiel(RG-301). - L’affichage dépend de la catégorie, pas de l’état. Quatre catégories fermées : bio, conversion, conventionnel, hors statut. Le vert reste réservé à « bio ».
- Les algorithmes ne changent pas. Mélange par le bas, verdict de revendication, critère de fin n° 3 : mêmes règles, mêmes cas de test.
États d’un référentiel
Section intitulée « États d’un référentiel »Le pack référentiel porte etats, contrôlés à la publication par qualite.validerEtats.
| Champ | Contenu |
|---|---|
code, libelle |
Identifiant stable, libellés français et anglais |
categorie |
bio, conversion, conventionnel ou hors_statut (EC-090) |
rang |
Plus haut = meilleur ; absent pour « hors statut » (suspendu, retiré), qui n’est pas une qualité |
revendicable |
L’unité peut revendiquer le référentiel, avec un certificat en vigueur |
vendable_sous |
État sous lequel un lot se vend, s’il ne se vend pas sous lui-même (RG-156) |
exige_debut_conversion |
Un statut dans cet état exige une date de début de conversion |
Packs du dépôt, sans ligne de décision :
| Pack | États |
|---|---|
packs/referentiels/ue/1.0.0.json |
bio (3, revendicable), conversion année 2 et plus (2, revendicable), conversion année 1 (1, vendable en conventionnel), conventionnel (0), suspendu, retiré |
packs/referentiels/nop/1.0.0.json |
Même liste, provisoire, à confirmer (EC-100) |
Migration db/migrations/20261003100000_lot1bis_referentiel_global.sql :
app.referentiel(ancienne table par organisation) est renomméeapp.organisation_referentiel, sans changer ses identifiants (EC-101).certificat.referentiel_idetstatut_conformite.referentiel_iddésignent le référentiel coché ;- nouveau catalogue global
app.referentiel: code, nature, libellés, pack référentiel. La publication d’un pack référentiel crée ou relie sa ligne ; l’API ne l’écrit pas ; organisation_referentiel.codeest une clé étrangère vers le catalogue : on ne coche qu’un référentiel connu ;app.etats_referentiel(code)rend les états de la dernière version publiée du pack ;statut_conformite: la liste figée des états est remplacée par le déclencheur, qui refuse un état inconnu (etat_inconnu), un référentiel sans états publiés (referentiel_sans_etats) et une conversion sans date de début quand l’état l’exige (debut_conversion_requis). Les lignes existantes ne changent pas.
qualite:EtatReferentiel,validerEtats,intersectionQualites(lots, etats),vendableSous(qualite, etats).certification.peutRevendiquer({ etat, etats, certificats, date }): raisonsstatut_inconnu,statut_hors_qualite,etat_non_revendicable, puis celles des certificats. Le verdict porte l’état et l’état vendable.- Vecteurs VT-QUAL et VT-CERT réécrits avec les états de l’UE en entrée : mêmes cas, mêmes conclusions. Les vecteurs d’
etatVersQualite(VT-CERT-018 à 023) sont retirés avec la fonction.
API et écrans (contrat 1.13.0)
Section intitulée « API et écrans (contrat 1.13.0) »GET /v1/conformite/statutsetGET /v1/conformite/verdictrendent chaque état avec son libellé et sa catégorie (EtatAffiche). Le champqualitedu verdict disparaît : l’état revendiqué estetatquandpeutest vrai.- Le livret du moteur de règles se filtre sur les référentiels cochés et actifs.
TamponQualitereçoit{ referentiel, libelle, categorie }. L’écran Certificats affiche les libellés du référentiel.- PowerSync : le compartiment
globalesdescend le catalogueapp.referentiel(les états sont dans le contenu du pack, déjà descendu) ; le compartimentorganisationdescendapp.organisation_referentiel.
| Test | Ce qu’il vérifie |
|---|---|
qualite.test.ts, VT-QUAL, VT-CERT |
Mélange par le bas selon l’ordre du référentiel, vendableSous, validerEtats, verdict |
db/tests/l1-a6.sql (adapté) |
État inconnu, référentiel sans pack, conversion sans date, référentiel hors catalogue, catalogue fermé à l’API |
db/tests/l1bis-1.sql |
États de la dernière version publiée, brouillon ignoré, catalogue visible de chaque organisation, lignes cochées isolées |
apps/api/test/certification.test.ts, back-office.test.ts |
Verdicts et synthèse avec les états du référentiel |
infra/powersync/regles.test.mjs |
Règles et contrat de données |
packages/ui/src/jetons.test.ts |
Un symbole par catégorie, vert réservé à « bio », aucune couleur nouvelle pour « hors statut » |