Aller au contenu

Plan d'alignement sur la note d'amendement

Version 1, 02/10/2026. Confronte la note d’amendement (modules, règles et normes) à l’état du dépôt au commit df485a3 : Lot 0 avancé, Lot 1 pistes A et B livrées, recette non faite.

  • Rien n’est à jeter. Partie double, ajout seul, numérotation, RLS, synchronisation, paramètres contextuels et packages/domain restent tels quels. Les tables du Lot 1 restent en place : le monolithe modulaire ne déplace aucune table.
  • Trois éléments livrés sont à reprendre : les états de qualité figés (QualiteLot, statut_conformite.etat, tampon de qualité), la table referentiel propre à chaque organisation, et les tables recette / recette_ligne (remplacées par l’arbre d’activités).
  • Le Lot 0 reçoit un complément (« Lot 0 bis », environ 5 jours) : catalogue d’activités, modules et manifestes, moteur de règles minimal, constats, ADR CEL, rôles plateforme scindés.
  • Le Lot 1 reçoit un complément (« Lot 1 bis », environ 4 jours) : qualité par référentiel, pack référentiel, portée du certificat, points de contrôle, arbre d’activités du pack fruits.
  • La recette du Lot 1 est décalée après le Lot 1 bis : la faire avant obligerait à la refaire sur la certification et les référentiels.
  • Préalable : les six décisions de la section 2 sont prises (EC-088 à EC-093, 02/10/2026). La note a été relue par l’équipe le 02/10/2026 : le Lot 0 bis peut démarrer.
Amendement Déjà dans le dépôt Action Séquence
AM-01, AM-02 Préparer et prouver ; quatre familles Aucun code concerné Documenter (page de conception) P0
AM-03 Cinq invariants I1 (partie double, SB-06, SB-07), I2 (ajout seul, journal), I3 (numérotation A3) ; I4 et I5 au Lot 2 Tableau I1 à I5 → tests existants ; aucune migration P0
AM-04 Arbre d’activités typé facteur operation, recette, recette_ligne (A2), section recettes du pack fruits Nouveau catalogue activite, organisation_activite ; section arbre du pack ; gel de recette (plus aucun appelant nouveau), suppression au Lot 2 L0-2, L1-4
AM-05 Modules activables Permissions déjà préfixées par domaine en anglais (collection.*, plot.*, producer.*, capacity.*, EC-038) ; règles PowerSync gelées (A9) ; navigation B2 Tables module, organisation_module ; manifestes dans apps/api ; garde de module ; filtre des menus ; filtre des ensembles de permissions ; règles de synchronisation par module (nouvelle version du contrat de données) L0-3
AM-06 Pack référentiel pack sans type ; referentiel par organisation (A6) Colonne pack.type ; catalogue global des référentiels porté par les packs référentiels ; choix de l’organisation dans une table propre (écart à trancher, D2) L0-2, L1-2
AM-07 Portée du certificat certificat sans portée (A6) Table certificat_portee ; contrôle « écart de portée » comme point ordinaire L1-2
AM-08 Liste fermée de combinaison parametres (règle la plus précise, PC-04) Module combinaison reporté au premier appelant (SCI, Lot 4), pour ne pas recréer un module sans appelant (audit du 01/10/2026) Lot 4
AM-09 Moteur de règles Interface expressions réservée ; parametres ; sync.controle et ses motifs (EC-013) ADR CEL ; modules expressions, dictionnaire, regles ; tables variable_dictionnaire, regle_decision ; lien constat ↔ file de contrôle (écart, D4) L0-1, L0-4
AM-10 Livret et évaluation au serveur Protocole de synchronisation, réévaluation au serveur Format du livret défini au Lot 0 bis ; descente PowerSync au Lot 3 L0-4, Lot 3
AM-11 Date de référence Version de pack figée par campagne (A1) Colonnes de dates sur regle_decision et point_controle ; la campagne garde son pack filière L0-4, L1-3
AM-12 Procédés Modules rendement, bilan du domaine Lot 2 : ordre_transformation, etape_realisee, sorties typées Lot 2
AM-13 Publication Script de publication de pack (A2), empreinte SHA-256 Validation CI des packs référentiels (étape 3) ; relecture par revue de code L0-4
AM-14 Rôles plateforme Rôle unique equipe_biotrace (royaume, garde.ts, verificateur.ts, tests KC) Quatre rôles ; création d’organisation réservée au support ou au publieur (à trancher) ; séparation rédacteur / relecteur vérifiée par la base L0-5
AM-15 Constat Aucun Table constat (ajout seul, changement de statut seul) L0-4
AM-16 Qualité par référentiel QualiteLot figé (domaine), statut_conformite.etat à six valeurs en CHECK, TamponQualite et jetons.ts, écran Certificats, schémas certification.ts États et ordre lus du référentiel ; intersectionQualites et peutRevendiquer paramétrés ; correspondance état → couleur (écart, D3) L1-1
AM-17 Tri des 957 exigences Aucun Contenu, sans développeur, en parallèle Continu

Toutes validées le 02/10/2026 et consignées dans ecarts.md.

Réf. Question Décision
D1 · EC-088 Rang de la note dans l’ordre des sources de CLAUDE.md Rang 0 (plus récente) une fois relue ; d’ici là, statut « Proposé » et aucun code
D2 · EC-089 referentiel est par organisation (A6), la note le veut global Catalogue global referentiel issu des packs référentiels + table organisation_referentiel (référentiels cochés, RG-301) ; migration des lignes de démonstration
D3 · EC-090 Le design system attache une couleur à chaque état figé ; avec des états fournis par le référentiel, laquelle ? Chaque état déclare une catégorie d’affichage fermée (bio, conversion, conventionnel, hors statut) ; le vert reste réservé à « bio »
D4 · EC-091 Constat (AM-15) et file de contrôle (sync.controle, EC-013) se recouvrent La file de contrôle garde les motifs techniques de synchronisation ; une issue « acceptée en file de contrôle » crée aussi un constat qui la référence
D5 · EC-092 Identifiants de permission : la note écrit collecte.creer, EC-038 a retenu l’anglais Garder l’anglais (EC-038) ; le code de module devient le préfixe (collection, plot…) ; la note est corrigée
D6 · EC-093 Critère de fin n° 3 du Lot 1 (« un certificat expiré bloque la revendication ») contre P1 (signaler plutôt que bloquer) Garder le blocage de la revendication (une action, AM-09) ; la réception sur certificat expiré devient une règle de processus réglable (RG-014)

Les questions ouvertes Q1 et Q3 à Q8 de la note restent ouvertes. Q2 (bibliothèque CEL) est close par l’ADR 0043.

Règles de conduite inchangées : une migration par séquence via app.installer_table, COMMENT ON en français, tests portant l’identifiant de la règle, pnpm install et pnpm build verts, un commit par séquence. Un module du domaine n’est livré qu’avec son premier appelant dans la même séquence.

Fait le 02/10/2026 :

  • Note renommée note-amendement-conception.md, avec front-matter et statut « Proposé ».
  • Écarts EC-088 à EC-093 ; ordre des sources dans CLAUDE.md et sur l’accueil du site.
  • Renvoi de la note d’analyse critique vers la note d’amendement (Q8), dans EC-088, puisque docs-sources/ est en lecture seule.
  • Correspondance des invariants avec les tests existants, ci-dessous (pas de nouvelle page : gel des spécifications).
Invariant Tests existants Reste à couvrir
I1 Chaque gramme est compté SB-06 (mouvement déséquilibré refusé), SB-07 (contre-passation exacte) Bilan par étape (Lot 2)
I2 Rien ne s’efface SB-04 (aucun DELETE), SB-05 (aucun UPDATE de mouvement, commande, paramètre), SB-08 (journal de chaque écriture) –
I3 Identifiant officiel unique, jamais réutilisé A3-01 à A3-04 (100 attributions concurrentes, sans doublon ni trou) –
I4 Tout lot a une origine Aucun : la table des lots arrive au Lot 2 Mouvement de création obligatoire (Lot 2)
I5 Lot en quarantaine bloqué Aucun : RG-161 arrive au Lot 2 Lot 2

Lot 0 bis (environ 5 jours, à confier à une autre personne que la synchronisation)

Section intitulée « Lot 0 bis (environ 5 jours, à confier à une autre personne que la synchronisation) »
Séq. Contenu Livrables et tests
L0-1 Fait le 02/10/2026. ADR CEL (Q2, close) : @marcbachmann/cel-js, 24 Ko compressés, mêmes résultats dans Node et Chromium ; module expressions ADR 0043 ; VT-EXPR-001 à 028
L0-2 Fait le 02/10/2026 (page). Migration : activite (catalogue fermé, trois niveaux, regroupements §2.2), organisation_activite, module, organisation_module, pack.type l0bis-2.sql, SB-01 et SB-13 étendus ; module modules du domaine (etatModules, verifierChangement, modulesProposes) appelé par le service d’activation ; 4 routes (contrat 1.10.0) ; droit modules.manage (EC-094) ; arbreActif et peutDesactiver(noeud) reportés en L1-4, avec l’arbre du pack
L0-3 Fait le 02/10/2026 (page ; EC-092 précisé, EC-095 en partie, EC-096, EC-097 ; contrat 1.11.0 ; synchronisation filtrée reportée en L1-5). Manifestes des modules existants (Noyau, Membres et foncier, Collecte, SCI…) ; garde de module sur l’API et les commandes ; ensembles de permissions filtrés Test : une route d’un module inactif répond par un code stable ; un module dont dépend un module actif ne se désactive pas
L0-4 Fait le 02/10/2026 (page ; EC-098). Moteur minimal : variable_dictionnaire, regle_decision, constat ; modules dictionnaire et regles (evaluerPoint, issueLaPlusForte, six issues) ; validation CI d’un pack référentiel Trois tests de la note (règle publiée figée, constat modifiable par statut seul, variable manquante → « à vérifier ») ; premier appelant : reception.avant_validation en test d’intégration, sans écran
L0-5 Fait le 02/10/2026, amendé par EC-099 (page) : trois rôles génériques de l’éditeur, sans séparation des tâches. Prévu à l’origine : Rôles plateforme : rédacteur, relecteur, publieur, support ; garde.ts et verificateur.ts ; séparation rédacteur / relecteur en base Tests KC mis à jour ; ROLE_EQUIPE_BIOTRACE supprimé

Hors Lot 0 bis : atelier de publication, simulation, notifications (lots 6 et 7).

Séq. Contenu Livrables et tests
L1-1 Fait le 02/10/2026, avec L1-2 (page). Qualité par référentiel : QualiteLot lu du référentiel, statut_conformite.etat contrôlé contre les états du référentiel (le CHECK figé disparaît), TamponQualite par catégorie d’affichage (D3) Vecteurs qualite et certification rejoués à l’identique avec les états UE ; test de palette réservée conservé
L1-2 Fait le 02/10/2026 (partie A, partie B, portée ; EC-102, EC-103 ; contrat 1.14.0). Pack référentiel UE minimal (états, identité) ; referentiel global et organisation_referentiel (D2) ; certificat_portee Migration des données de démonstration ; écran Certificats : portée affichée, écart de portée
L1-3 Fait le 02/10/2026 (grille de conformité, parties A et B ; EC-104 à EC-107 ; contrat 1.15.0). Pas de pack CCPB (EC-106). point_controle, evaluation_point, preuve ; cinq statuts d’un point ; « non applicable » pour un module ou un nœud inactif Tests de statut ; quelques points UE et CCPB du pilote, au format pack
L1-4 Fait le 02/10/2026 (page ; EC-108 à EC-110 ; contrat 1.16.0). Section arbre du pack fruits (ananas : collecte, stockage, conditionnement, exportation) ; ouverture du compte depuis l’arbre (RG-300 comme préréglage) ; gel de recette Pack fruits 1.1.0 ; test d’activation avec garde-fous (nœud critique, enfants désactivés) ; arbreActif, peutDesactiver(noeud) (reportés de L0-2)
L1-5 Fait le 02/10/2026 (page ; EC-111 ; contrat d’API inchangé, 1.16.0). Écran « Activités » (Mes activités, Vue d’ensemble de la filière), menu sans « pack », règles de synchronisation filtrées par module (Membres et foncier) Tests vitest de l’écran, tests SQL et de synchronisation du périmètre par module ; budget de volume remesuré (11,38 Mo, pire cas)
L1-6 Étape 1 faite le 02/10/2026 (cinq droits d’écriture). Étape 2 faite le 03/10/2026 (page ; EC-112 ; contrat 1.17.0) : routes d’écriture et recette automatisée. Parcours navigateur reporté à la recette d’un lot ultérieur. Recette du Lot 1 sur « ananas Togo » (SR-L1-01 à 11), avec les permissions d’écriture EC-082 à EC-087 Critères de fin du Lot 1, dont D6
Lot Changement
2 Réadapté le 03/10/2026, voir le plan d’exécution. Procédés (AM-12) à la place des recettes ; points d’accroche réception, étape, vente, document ; constats dans les flux ; suppression de recette / recette_ligne
3 Livret de règles synchronisé, évaluation locale, constats sur le téléphone (AM-10)
4 Grilles UE et CCPB du pilote, Naturland selon Q3 ; tableau « prêt pour l’audit » ; module combinaison avec le SCI
5 à 7 Grille NOP, portail auditeur, atelier de publication, simulation, tri complet des 957 exigences
Période Travail
02/10 P0, décisions D1 à D6, relecture de la note
05/10 – 09/10 Lot 0 bis (en parallèle : reste du Lot 0, enrôlement et fichiers/url-envoi)
12/10 – 15/10 L1-1 à L1-3 ; la réponse à l’appel d’offres du 15/10 peut décrire le modèle des grilles avec une démonstration sur la qualité par référentiel
16/10 – 21/10 L1-4 à L1-6, recette du Lot 1

Retard estimé sur le plan initial : environ deux semaines, absorbées avant le Lot 2. Le chemin critique (synchronisation, Lot 3) ne bouge pas si le Lot 0 bis est porté par une autre personne.

5. Documents du Lot 0 et du Lot 1 à mettre à jour

Section intitulée « 5. Documents du Lot 0 et du Lot 1 à mettre à jour »

À mettre à jour dans le commit de la séquence qui livre le changement, jamais avant (gel des spécifications) :

  • lot0-parametres-contextuels.md (PC-02, PC-05, PC-08) : L0-2, L0-4.
  • lot0-schema-base.md (§4, §8, §9) : L0-2, L0-4.
  • lot0-configuration-keycloak.md (§6) : L0-5.
  • lot0-paquet-domain.md (§3.6, §3.10, §3.11) : L0-1, L0-4, L1-1.
  • lot1-plan-execution.md (A6, référentiels, critères de fin) et lot1-a2-produits.md, lot1-a6-certification.md : L1-1 à L1-4.
  • ADR 0004 (organisation du front) et 0024 (paramétrage et packs) : avenant en L0-3 et L0-2.
  • Dictionnaire de données (tbls) régénéré à chaque migration.
  • Recette repoussée : le Lot 1 n’a jamais été essayé de bout en bout avec un compte réel. Mitigation : essai de connexion seul dès P0, sans attendre L1-6.
  • Modules sans appelant : le Lot 0 bis ajoute cinq modules au domaine. Chacun doit avoir un appelant dans sa séquence, sinon il attend.
  • Contrat de données gelé (A9) : le filtrage par module change les règles PowerSync ; prévoir une version et remesurer le volume.
  • Contenu réglementaire : les grilles UE et CCPB n’avancent que si le rédacteur et le relecteur sont nommés (Q4).