Aller au contenu

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

1. Références

  • Spécification : PD-294-specification.md
  • Tests contractuels : PD-294-tests.md
  • Plan d’implémentation : PD-294-plan.md
  • Date de revue : 2026-04-19
  • Reviewer : Auditeur technique indépendant (IA)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Test irréalisable Tests TC-NOM-06, TC-ERR-09 / Plan §2.3, C6, C7 L’endpoint de vérification /v2/merkle-proof/verify est déclaré « optionnel » alors que les tests contractuels exigent un résultat HTTP vérifiable sur ce flux. Réalisation contractuelle des tests de vérification non garantie. BLOQUANT
Couverture manquante Invariant INV-294-06 / Plan §9 V-01, C5 Le plan documente une divergence potentielle RFC/implémentation et renvoie à une escalade ultérieure. L’invariant de vérifiabilité RFC n’est pas garanti par le design proposé. BLOQUANT
Non-conformité Spec Spec §6 / Plan §6 (audit fail-closed) En cas d’échec audit, le plan permet une remontée 500 qui peut supplanter un ERR-294-* attendu. Non-déterminisme de la réponse contractuelle attendue. MAJEUR
Test irréalisable Test TC-NOM-08 / Plan §3 (INV-294-09), §5 (TC-NOM-08) Le contrôle documentaire demandé par TC-NOM-08 est mappé à un script technique de grep code. Le test contractuel ne prouve pas l’exigence documentaire visée. MAJEUR
Couverture manquante Tests §8 (observabilité) / Plan §7 L’exigence d’« événement signé/horodaté » pour la vérification RFC n’a pas de mécanisme explicite décrit. Preuve d’audit externe incomplète. MAJEUR
Hypothèse implicite Plan §9 V-09 / C9 Le contrôle anti-fuite dépend d’un wrapping de réponse non figé (merkle_proof vs data.merkle_proof). Contournement possible de INV-294-07 selon structure réelle de réponse. MAJEUR
Risque sécu/conformité Plan §7 V-04 / Spec §2 La normalisation v1→v2 est décrite sans contrôle d’intégrité cryptographique amont avant émission. Risque probatoire de restitution d’une preuve normalisée non fiable. MAJEUR
Risque sécu/conformité Spec §6 (ERR-294-10 vs ERR-294-04/05/06) / Plan §9 V-07 Distinction 404/400 maintenue et reconnue comme dette. Surface d’énumération d’identifiants de preuve. MINEUR
Couverture manquante Plan §2bis, §2ter, §6-§7, C9/C10 Les diagrammes Mermaid n’alignent pas toutes les dépendances d’audit décrites dans le plan texte (filter/interceptor/audit). Cohérence diagrammes↔mécanismes partielle, traçabilité affaiblie. MAJEUR
Code Contract — Cohérence Code Contracts C5 / Spec §5.1, §6 C5 associe un cas de cohérence inclusion_path/tree_size à ERR-294-09, alors que la spec le classe en validation format (ERR-294-04). Ambiguïté de code erreur selon chemin d’exécution. MAJEUR
Code Contract — Invariant Code Contracts C5/C10/C12 / Spec §4 Des invariants de code contracts ne sont pas un sous-ensemble des invariants spec (ex: couverture 80%, corrélationId, troncature logs). Dérive contractuelle des critères d’audit. MAJEUR
Code Contract — Frontière Plan « Mécanismes cross-module » + C10 / Code Contracts C10 files Le plan déclare un périmètre strict en src/modules/merkle/v2/ mais C10 impose une modification hors ce périmètre. Frontière de changement incohérente, risque de régression hors périmètre. MAJEUR
Code Contract — Forbidden Code Contracts C7 / Spec (pas de contrainte de route explicite) Interdictions de patterns ajoutées sans justification contractuelle explicite côté spec/sécurité. Contraintes supplémentaires non traçables contractuellement. MINEUR
Contrainte technique non documentée Plan (section absente « Contraintes techniques ») La section dédiée est absente, incluant l’état des dépendances inter-PD (DONE/TODO/STUB). Traçabilité des dépendances incomplète. MINEUR
Contrainte technique non documentée Plan (framework de test) Choix Jest/Vitest non figé explicitement dans une section contractuelle dédiée (mentions implicites seulement). Ambiguïté du runner de test contractuel. MAJEUR
Contrainte technique non documentée Plan (ESM/CJS) Compatibilité ESM/CJS et dépendances ESM-only non documentées. Risque d’échec CI/exécution des tests. MAJEUR
Contrainte technique non documentée Plan (variables CI) Variables CI requises (DATABASE_URL, CI=true, etc.) non documentées. Exécution d’intégration non déterministe selon environnement. MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 2, MAJEUR = 11, MINEUR = 4.
  • Points critiques :
  • Réalisabilité contractuelle des tests de vérification non garantie (/verify optionnel).
  • Couverture de l’invariant INV-294-06 non verrouillée dans le plan.
  • Écarts de cohérence entre plan, diagrammes Mermaid et code contracts sur les mécanismes d’audit.
  • Contraintes techniques contractuelles (runner/ESM-CJS/CI) non documentées.

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : présence d’écarts BLOQUANTS sur testabilité contractuelle et couverture d’invariant critique, plus incohérences majeures de cohérence contractuelle (plan ↔ code contracts ↔ diagrammes) et contraintes techniques obligatoires non documentées.