Aller au contenu

PD-281 — Plan d’implémentation : Revue

1. Références

  • Spécification : PD-281-specification.md
  • Tests contractuels : PD-281-tests.md
  • Plan d’implémentation : PD-281-plan.md
  • Date de revue : 2026-03-01
  • Reviewer : Auditeur technique indépendant (conformité contractuelle)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Non-conformité Spec INV-281-01 / Spec §5.2 / Plan §1 C1, pseudo-code v2 Le mécanisme d’inclusion reste basé sur ent_name in enum_type_map (niveau entité) et non sur un couple entité+colonne, alors que la discrimination contractuelle porte sur la colonne (status vs non-status) et les mappings explicites de colonne. Inclusion possible d’enums non-status non éligibles, violation directe de la règle de discrimination. BLOQUANT
Test irréalisable TC-NOM-03 / Tests §3 / Plan §1 C1, §5 TC-NOM-03 exige une traçabilité du mapping explicite pour un couple (entity_name, column_name). Le plan décrit une clé de décision centrée entité, sans point d’observabilité explicite de clé de couple. Le scénario de preuve contractuelle TC-NOM-03 n’est pas réalisable tel que décrit. BLOQUANT
Couverture manquante INV-281-02 / Spec §5.2 (liste d’exclusions obligatoires) / Plan §3 Le plan traite les 5 exclusions comme simple conséquence du filtre général, sans mécanisme explicite de garantie non-régressive de la liste contractuelle des exclusions. Les exclusions obligatoires peuvent être réintroduites sans garde dédiée, compromettant CA-03/CA-05. MAJEUR
Risque sécu/conformité INV-281-01, INV-281-03 / Plan §1 C1 pseudo-code, §9.1 anchored_enums[ent_name] est alimenté dans une boucle multi-enum; la clé par entité peut écraser une entrée précédente, avec perte silencieuse d’un enum d’état attendu. Contournement possible d’invariants (ancrage incomplet), rupture d’auditabilité du résultat lint. MAJEUR
Non-conformité Spec Spec §1, §7 CA-01/CA-04, §9 H-281-01 / Plan §8 H-281-01 Le plan introduit une divergence normative (“la Spec doit être mise à jour”) au lieu d’aligner l’exécution sur la spécification canonique contractuelle fournie. Interprétation libre de la base contractuelle, risque de rejet en audit tiers. MAJEUR
Hypothèse implicite INV-281-02 / Plan §3, §5 Le maintien de l’exclusion des 5 couples repose implicitement sur l’absence de ces entités dans _z_enum_type_mappings, propriété non contractualisée dans le plan. Dépendance implicite pouvant invalider la discrimination en cas d’évolution du mapping. MAJEUR
Code Contract — Cohérence Code contracts discriminateur-enum forbidden / Plan §2 Flux D (3c) Contradiction interne : le contrat interdit “modifier des entrées existantes dans _z_enum_type_mappings”, alors que le plan prévoit “mettre à jour _z_enum_type_mappings si nécessaire” pour le cas DepositStatus. Contrat non exécutable de manière univoque, risque de non-conformité d’implémentation. MAJEUR
Code Contract — Frontière Code contracts completion-types-z vs condition-deposit-status Chevauchement de périmètre de fichiers (NF_Z42_013.zed, ISO_14641.zed) entre deux modules contractuels distincts, sans règle d’arbitrage. Ambiguïté de responsabilité, traçabilité d’audit affaiblie (séparation des responsabilités non nette). MAJEUR
Contrainte technique non documentée Exigence §7 “Contraintes techniques documentées” / Plan (aucune section dédiée) Le plan ne documente pas explicitement le choix du framework de test (Jest/Vitest) ni la politique associée. Ambiguïté d’exécution des tests contractuels côté runner; critère demandé absent. MAJEUR
Contrainte technique non documentée Exigence §7 “Compatibilité ESM/CJS” / Plan (aucune section dédiée) Aucune documentation explicite des dépendances ESM-only et du runner adapté. Risque d’échec de run en CI non anticipé; contrainte technique demandée absente. MAJEUR
Contrainte technique non documentée Exigence §7 “Dépendances inter-PD” / Plan (aucune section dédiée) Aucune liste de dépendances inter-story avec statut DONE/TODO/STUB. Traçabilité de dépendance incomplète, risque de blocage tardif non visible. MINEUR
Contrainte technique non documentée Exigence §7 “Variables CI” / Plan (aucune section dédiée) Variables d’environnement CI non documentées (CI=true, DATABASE_URL, etc., si applicable aux tests d’intégration). Reproductibilité CI partiellement documentée. MINEUR
Non-conformité Spec Axe “aucune règle ajoutée” / Plan §12 Le plan introduit une règle “couverture minimale 80%” qui n’est pas présente dans la spécification canonique PD-281. Ajout normatif hors contrat, écart de stricte conformité documentaire. MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 2, MAJEUR = 8, MINEUR = 3.
  • Points critiques :
  • Discrimination non strictement contractuelle (clé entité au lieu d’un couplage explicite entité+colonne).
  • Réalisabilité contractuelle de TC-NOM-03 non démontrée.
  • Contradictions internes entre plan et code contracts (_z_enum_type_mappings).
  • Absence de section “Contraintes techniques” avec les items exigés.

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : Le plan présente des écarts bloquants de conformité contractuelle (règle de discrimination et testabilité TC-NOM-03), des contradictions de gouvernance (code contracts), et des contraintes techniques requises non documentées.