Aller au contenu

PD-248 — Confrontation Gate 5 (v1)

Contexte

  • Gate : 5 (AMBIGUITY)
  • Document évalué : Plan d'implémentation + Code Contracts
  • Score ChatGPT : 6.75/10 (feasibility: 7, coverage: 8, risk_mitigation: 5, coherence: 7)
  • Verdict ChatGPT : RESERVE

Analyse des écarts identifiés

GAP-01 : CA-248-09 couvert uniquement par TASK-1

Sévérité ChatGPT : Majeure

Analyse Claude : - CA-248-09 stipule : "Inventaire des dépendances montre uniquement expo-screen-capture" - TASK-1 installe la dépendance (action) - TASK-6 exécute S-248-08 qui valide CA-248-09 (vérification) - Le mapping dans le plan montre : CA-248-09 | TASK-1 | TC-248-CFG-01

Verdict : MINEUR — Le mapping existe dans le tableau final du plan (ligne 340). La CA est bien validée par un test. L'ambiguïté est cosmétique.


GAP-02 : INV-248-06 absent du tableau des tâches

Sévérité ChatGPT : Majeure

Analyse Claude : - INV-248-06 : "Le comportement DOIT être valide en build production iOS (EAS)" - Dans le tableau des tâches (TASK-1 à TASK-6), INV-248-06 n'apparaît pas explicitement - MAIS dans le mapping INV/CA → TASK (ligne 329) : INV-248-06 | TASK-6 | TC-248-ENV-02

Verdict : MINEUR — Incohérence de présentation entre deux sections du même document. Le mapping final est correct. Correction cosmétique recommandée.


GAP-03 : Absence de plan anti-flakiness OCR

Sévérité ChatGPT : Majeure

Analyse Claude : - Le plan spécifie "OCR : Tesseract 5.x" comme outil - La spec CA-248-01..04 indique "vérifié par OCR Tesseract" sans seuil de confiance - L'absence de mitigation flakiness est un risque opérationnel, pas un risque fonctionnel - Si OCR échoue : le test échoue → correction → relance (processus normal)

Verdict : MOYEN (rétrogradé de Majeur) — Risque opérationnel CI, pas de risque de non-conformité fonctionnelle. Recommandation d'ajouter une note de robustesse dans TASK-6.


GAP-04 : Comportements iOS spécifiques non sécurisés

Sévérité ChatGPT : Moyenne

Analyse Claude : - Le hook useScreenshotProtection utilise useFocusEffect (pattern React Navigation standard) - useFocusEffect gère automatiquement les transitions app state (foreground/background) - INV-248-03 couvre explicitement les transitions sensible→sensible - INV-248-06 + CA-248-08 couvrent la validation en build production

Verdict : NON VALIDE — Les comportements iOS sont couverts par le pattern standard de React Navigation. Pas d'écart réel.


GAP-05 : CA-248-07 sans validation explicite

Sévérité ChatGPT : Moyenne

Analyse Claude : - CA-248-07 : "Aucune UI d'alerte screenshot" - Mapping plan (ligne 338) : CA-248-07 | TASK-4 | TC-248-SIL-01 - TC-248-SIL-01 est défini dans PD-248-tests.md et couvre explicitement ce critère - Le Code Contract CC-248-03 spécifie : "Aucune alerte utilisateur (INV-248-04)"

Verdict : NON VALIDE — Le mapping existe, le test existe, le code contract est explicite.


Synthèse des écarts reclassifiés

ID Sévérité initiale Sévérité reclassifiée Justification
GAP-01 Majeure MINEUR Mapping présent dans section finale
GAP-02 Majeure MINEUR Incohérence cosmétique, mapping correct
GAP-03 Majeure MOYEN Risque opérationnel, pas fonctionnel
GAP-04 Moyenne NON VALIDE Couvert par pattern standard
GAP-05 Moyenne NON VALIDE Mapping et test existent

Écarts valides restants : 3 (2 MINEUR, 1 MOYEN)


Re-scoring après confrontation

Critère Score initial Score corrigé Justification
feasibility 7/10 8/10 Le pattern useFocusEffect couvre les comportements iOS
coverage 8/10 8.5/10 Mappings complets dans section finale du plan
risk_mitigation 5/10 7/10 Risque OCR est opérationnel, pas fonctionnel
coherence 7/10 8/10 Incohérences cosmétiques, pas structurelles

Nouveau score moyen : 7.875/10


Actions correctives recommandées

Corrections mineures (non bloquantes)

  1. TASK-6 : Ajouter INV-248-06 dans la liste des invariants couverts
  2. TASK-6 : Ajouter une note sur la robustesse OCR (retry, seuil confiance 70%)
  3. Alignement tableaux : Harmoniser les invariants listés entre les deux sections du plan

Pas de correction majeure requise

Le plan couvre tous les INV et CA. Les écarts identifiés sont cosmétiques ou des recommandations d'amélioration.


Recommandation de verdict

RESERVE — Le plan est conforme sur le fond. Les écarts restants sont mineurs et peuvent être corrigés pendant l'implémentation sans risque de non-conformité.

Conditions de levée de réserve : 1. Ajouter INV-248-06 explicitement dans TASK-6 2. Documenter la stratégie OCR dans TASK-6 (seuil, retry)