Aller au contenu

PD-273 — Plan d'implémentation : Revue

1. Références

  • Spécification : PD-273-specification.md
  • Tests contractuels : PD-273-tests.md
  • Plan d'implémentation : PD-273-plan.md
  • Date de revue : 2026-02-27
  • Reviewer : Auditeur technique indépendant (Claude)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité
Couverture manquante INV-273-07 / Plan §5 Le plan indique que INV-273-07 est couvert "par construction" sans mécanisme explicite pour rejeter les règles non vérifiables Impossible de tester TC-ERR-273-03 (classification des exigences non vérifiables) MAJEUR
Test irréalisable TC-ERR-273-01/02/03/04 / Plan §3 Le plan ne décrit pas l'implémentation des codes d'erreur structurés ERR-273-* requis par les tests d'erreur Les tests d'erreur contractuels ne peuvent pas être validés automatiquement BLOQUANT
Test irréalisable TC-ERR-273-04 / Plan §3 Aucun mécanisme pour détecter les exécutions d'audit incomplètes dans le plan Test TC-ERR-273-04 (audit run incomplete) ne peut pas être réalisé BLOQUANT
Hypothèse implicite Plan §3 TASK-1 Le plan suppose que extract-facts.py supporte les nouveaux mappings trigger sans validation préalable Risque de casser d'autres extractions ou règles Prolog existantes MAJEUR
Hypothèse implicite Plan §4 Version Python pour extract-facts.py non spécifiée, version SWI-Prolog non spécifiée Risque d'incompatibilité environnement/CI MAJEUR
Risque sécu/conformité Plan §3 TASK-1 Race condition potentielle si plusieurs extractions extract-facts.py simultanées modifient les mêmes fichiers de faits Corruption possible des faits Prolog en environnement concurrent MAJEUR
Contrainte technique non documentée Plan §4 Variables CI pour SWI-Prolog non documentées (PATH, bibliothèques système requises) Échec possible en CI par environnement mal configuré MINEUR
Hypothèse implicite Plan §6 Ordre d'exécution suppose isolation parfaite des modifications sans validation des effets de bord Une modification pourrait affecter une autre non prévue MAJEUR

3. Synthèse

  • Nombre d'écarts par gravité :
  • BLOQUANT : 2 écarts
  • MAJEUR : 5 écarts
  • MINEUR : 1 écart
  • Points critiques :
  • Codes d'erreur ERR-273-* non implémentés (BLOQUANT)
  • Détection des runs incomplets manquante (BLOQUANT)
  • Hypothèses environnementales non validées (MAJEUR)
  • Race conditions non prises en compte (MAJEUR)

4. Verdict de la revue

  • Statut : ⛔ REJETÉ
  • Motif synthétique : Le plan présente 2 écarts BLOQUANTS qui rendent les tests d'erreur contractuels irréalisables, et 5 écarts MAJEURS introduisant des risques techniques et de conformité non maîtrisés. La testabilité contractuelle n'est pas garantie.

5. Détail des écarts critiques

5.1 Tests d'erreur non implémentables (BLOQUANT)

La spécification contractuelle exige des codes d'erreur structurés ERR-273-01-CHECK-NOT-OK, ERR-273-02-REGRESSION-DETECTED, etc. Le plan ne décrit aucun mécanisme pour générer ces codes lors des échecs d'audit.

Impact : Les tests TC-ERR-273-01/02/03/04 ne peuvent pas être validés automatiquement, violant l'exigence de testabilité contractuelle.

5.2 Détection des runs incomplets manquante (BLOQUANT)

Le test TC-ERR-273-04 exige la détection des exécutions d'audit incomplètes avec code ERR-273-04-AUDIT-RUN-INCOMPLETE. Le plan ne prévoit aucun mécanisme pour cette détection.

Impact : Impossible de valider contractuellement qu'un audit partiel est rejeté.

5.3 Race conditions dans extract-facts.py (MAJEUR)

Le plan ne considère pas les exécutions concurrentes de extract-facts.py qui pourraient corrompre les fichiers de faits Prolog, compromettant la fiabilité de l'audit formel.

Impact : Résultats d'audit potentiellement incohérents en environnement multi-processus.