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 : Auditeur technique indépendant (ChatGPT)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Non-conformité Spec Spec §5.7 / Plan §6.2 Le plan introduit un max_replanification_cycles qui bloque FAILED -> SCHEDULED au-delà d’un seuil, alors que la transition est contractuellement autorisée sans borne explicite. Règle contractuelle affaiblie par ajout de contrainte non spécifiée. MAJEUR
Non-conformité Spec Spec §5.8 (colonne « Hors bornes ») / Plan §1.1 MOD-12 Le plan annonce un mécanisme générique de clamp des valeurs hors bornes, alors que la spec impose un rejet sur plusieurs paramètres (fréquence, heure, rétention, retry). Comportement runtime divergent du contrat sur la validation de configuration. MAJEUR
Couverture manquante INV-47-05 / Spec §4, §5.6 / Plan §1.1 MOD-07, §3 (INV-47-05) La déduplication est implémentée sur (backup_id, event_type) et non explicitement sur backup_id seul comme exigé par l’invariant. Le mécanisme de déduplication peut laisser passer des doublons auditables au même backup_id. MAJEUR
Test irréalisable TC-ERR-08 / Tests §4 / Plan §5.2 (TC-ERR-08) Le plan mappe TC-ERR-08 sur un hash invalide (ERR-47-04) au lieu d’un échec de restauration trimestrielle avec incident conformité et interdiction de clôture sans plan d’action. Le scénario contractuel TC-ERR-08 n’est pas réalisable tel que décrit dans le plan. BLOQUANT
Couverture manquante ERR-47-04 / Tests TC-ERR-04 / Plan §1.1 MOD-05, §2.1 étape 9 La vérification post-upload est décrite via HeadObject + ETag pour comparer un expected_hash SHA3-256, sans mécanisme explicite de correspondance cryptographique contractuelle. Détection d’intégrité post-upload non démontrable au niveau attendu par les tests contractuels. MAJEUR
Hypothèse implicite Spec §4 INV-47-03, INV-47-09 / Plan §8 H-TECH-05 Le plan introduit un fallback HKDF local si Vault Transit est indisponible. Ce mode n’est pas contractualisé dans la spec. Introduction d’un comportement crypto implicite hors cadre contractuel. MAJEUR
Risque sécu/conformité Spec §5.6 / Plan §2.1, §3 (INV-47-05) Le plan ne démontre pas explicitement la garantie « au moins un événement append-only par tentative » dans tous les chemins d’échec précoces (ex. avant écriture SUCCESS), alors que l’exigence couvre succès/échec. Risque de rupture de traçabilité probatoire sur tentatives échouées. MAJEUR
Code Contract — Cohérence Spec §5.6 (crash post-commit) / Plan §1.1 MOD-09 / Code Contracts CC-47-08 Le contrat CC-47-08 borne la réconciliation au cas RUNNING sans objet, alors que la spec exige une réconciliation observable jusqu’à cohérence état↔objet↔journal post-crash. Périmètre de réconciliation contractuelle incomplet dans les interfaces déclarées. MAJEUR
Code Contract — Invariant Spec §4 (INV-47-01..09) / Code Contracts CC-47-14 CC-47-14 déclare des « invariants » non référencés comme sous-ensemble des invariants de la spec. Incohérence de gouvernance contractuelle entre invariants normatifs et invariants de contrat de code. MINEUR
Contrainte technique non documentée Plan (absence section dédiée « Contraintes techniques ») Le plan ne contient pas une section explicite « Contraintes techniques » au format demandé. Traçabilité incomplète des contraintes exigées pour audit externe. MINEUR
Contrainte technique non documentée Plan §11-§Périmètre de test Le runner de tests n’est pas explicitement choisi (Jest ou Vitest). Ambiguïté d’exécution CI/tests ; non-conformité de documentation du framework de test. MAJEUR
Contrainte technique non documentée Plan (global) Compatibilité ESM/CJS et dépendances ESM-only non documentées. Risque d’échec d’exécution des tests selon le runner/runtime. MAJEUR
Contrainte technique non documentée Plan (global) Variables CI requises pour tests d’intégration (ex. DATABASE_URL, CI=true) non documentées. Exécutabilité CI partielle et reproductibilité test réduite. MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 1 ; MAJEUR = 9 ; MINEUR = 3.
  • Points critiques :
  • TC-ERR-08 non aligné avec le scénario contractuel (test irréalisable).
  • Divergences contractuelles sur replanification et validation des bornes de configuration.
  • Traçabilité append-only et réconciliation post-crash non suffisamment démontrées pour l’audit externe.
  • Contraintes techniques d’exécution (runner, ESM/CJS, variables CI) incomplètement documentées.

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : présence d’un écart BLOQUANT (test contractuel non réalisable) et de plusieurs écarts MAJEURS de conformité contractuelle, couverture d’invariants, cohérence code contracts et contraintes techniques documentées.