Aller au contenu

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

1. Références

  • Spécification : PD-47-specification.md
  • Tests contractuels : PD-47-tests.md
  • Plan d’implémentation : PD-47-plan.md
  • Date de revue : 2026-03-03
  • Reviewer : OpenCode (auditeur technique indépendant)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Test irréalisable Test TC-NOM-08 / Spec §5.6 / Plan §1.1 MOD-09, §5.1 TC-NOM-08 Le plan borne la réconciliation aux états non-terminaux (SCHEDULED, RUNNING), alors que TC-NOM-08 exige explicitement la réconciliation d’un cas SUCCESS en DB sans objet S3. Le scénario contractuel TC-NOM-08 ne peut pas être exécuté tel que défini. BLOQUANT
Test irréalisable Test TC-NOM-02 / Spec F2, CA-47-02 / Plan §5.1 TC-NOM-02, périmètre de test Le plan déclare TC-NOM-02 en SKIP si H-TECH-01 n’est pas levée. Le test est contractuel et marqué couvert dans PD-47-tests.md. Couverture contractuelle F2 conditionnelle, donc non garantie. BLOQUANT
Non-conformité Spec Spec §5.7 (transition FAILED -> SCHEDULED autorisée) / Plan §6.2, DI-01 Le circuit-breaker max_replanification_cycles refuse ensuite une transition pourtant listée comme autorisée par la machine d’états contractuelle. Ajout d’une règle de refus non spécifiée dans la table contractuelle des transitions. MAJEUR
Couverture manquante Invariant INV-47-01 / Plan §2.2 (F2), §2.3 (F3), §3 Le seuil 300 s de persistance en clair est instrumenté explicitement sur F1, mais pas contractualisé par mécanisme équivalent sur F2/F3. Invariant global de confidentialité non démontré sur tous les types d’artefacts. MAJEUR
Couverture manquante Invariant INV-47-07 / Spec §5.7 / Plan §2.2 F2, §3 Le flux WAL ne décrit pas de machine d’états explicite ni de contrôle de transitions pour les entités WAL, alors que l’invariant vise toute transition d’état d’un backup. Contrôle de conformité des transitions incomplet sur un flux nominal majeur (WAL continu). MAJEUR
Risque sécu/conformité Spec INV-47-08, ERR-47-04 / Plan §2.1 étape 9 [CORR M-04] La vérification post-upload mentionne GetObject partiel possible pour >100 MB, tout en concluant sur l’intégrité SHA3-256 de bout en bout. Assurance d’intégrité potentiellement incomplète sur artefacts volumineux. MAJEUR
Hypothèse implicite Spec §8.Observabilité / Plan §2.2 (“endpoint interne ou fichier de métriques”) Le mécanisme exact de production de la métrique P95 WAL (source, granularité, horodatage, fiabilité) n’est pas contractualisé dans le plan. Testabilité de CA-47-02 dépend d’un comportement non figé. MAJEUR
Code Contract — Cohérence Code Contracts CC-47-08 / Plan §1.1 MOD-09 / Test TC-NOM-08 Le contrat CC-47-08 restreint la réconciliation à SCHEDULED/RUNNING, en conflit avec le test contractuel de crash post-commit sur SUCCESS. Incohérence interne Plan↔Code Contracts↔Tests sur une exigence de résilience. MAJEUR
Contrainte technique non documentée Plan §10 “Contraintes techniques” Les dépendances inter-PD ne sont pas listées au format demandé avec statut explicite DONE/TODO/STUB acceptable (seulement “story autonome”). Traçabilité contractuelle de dépendances incomplète. MINEUR
Contrainte technique non documentée Plan §11 “Variables CI/CD” La variable de contexte CI (CI=true) n’est pas documentée alors que des tests d’intégration sont prévus. Ambiguïté d’exécution en pipeline (doc d’exploitation incomplète). MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT 2 / MAJEUR 6 / MINEUR 2
  • Points critiques :
  • Irréalisabilité de tests contractuels (TC-NOM-08, TC-NOM-02 conditionnel).
  • Conformité machine d’états altérée par règle additionnelle non contractuelle.
  • Couverture incomplète d’invariants transverses (INV-47-01, INV-47-07).

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : présence d’écarts BLOQUANTS rendant des tests contractuels non exécutables tels que définis, et écarts MAJEURS sur conformité stricte et couverture d’invariants non négociables.