PD-242 — Review Plan (Gate 5)¶
Reviewer : ChatGPT GPT-5.2 (Phase 1) Date : 2026-02-19 Documents analysés : - PD-242-specification.md - PD-242-tests.md - PD-242-plan.md - PD-242-code-contracts.yaml
Synthèse¶
Le plan présente plusieurs écarts identifiés par la review automatisée.
Points identifiés : 4 bloquants, 7 majeurs, 0 mineurs.
Écarts BLOQUANTS¶
B1 — Couverture TA non démontrée¶
Type : Couverture manquante Référence : TA-1..TA-16 / TASK-8 Description : Le plan ne mappe pas explicitement les 16 tests d'acceptation (TA-1..TA-16) vers des TC-* et des mécanismes d'exécution (unit/E2E). La seule matrice fournie est INV→TC. Impact : Impossible de prouver la conformité complète du plan à la spec.
B2 — Rate limiting non garanti¶
Type : Non-conformité Référence : INV-242-13 / TASK-6 Description : Le rate limiting "5 échecs / 15 min" ne peut pas être garanti par un écran UI seul. Il nécessite un contrôle côté backend avec persistance et horodatage fiable. Le plan n'identifie aucune tâche backend. Impact : Invariant contournable (réinstallation, multi-device, bypass client).
B3 — HKDF SHA3-256 non vérifié¶
Type : Hypothèse implicite Référence : INV-242-06 / PD-97 Description : Le plan présume que l'existant fournit HKDF avec SHA3-256. Or "HKDF" est souvent implémenté en SHA-256. Aucune vérification n'est planifiée. Impact : Algo non conforme, incompatibilité avec vecteurs officiels.
B4 — Protection screenshot non testable¶
Type : Test irréalisable Référence : INV-242-11 / TC-SEC-07 Description : Le plan ne précise ni la lib/approche (ScreenCapture prevention iOS), ni comment TC-SEC-07 est automatisé en CI. Impact : Invariant potentiellement non implémenté ou non prouvable.
Écarts MAJEURS¶
M1 — Détection device change¶
Type : Hypothèse implicite Référence : INV-242-10 / TC-ARCH-01 Description : Le plan ne décrit pas le mécanisme de détection (device binding, signal backend). Impact : Flux potentiellement fail-open ou fail-close.
M2 — H_verify stockage et comparaison¶
Type : Hypothèse implicite Référence : INV-242-08 / TASK-3 Description : Le plan ne décrit pas où est stocké H_verify, ni la comparaison constant-time. Impact : Risque de fuite ou timing attack.
M3 — Stratégie test timeout¶
Type : Test irréalisable Référence : INV-242-12 / TC-SEC-08 Description : Le plan ne précise pas la stratégie (fake timers, E2E avec horloge contrôlée). Impact : Tests flakys ou impossibles.
M4 — Garanties anti-fuite logs¶
Type : Couverture manquante Référence : INV-242-01, INV-242-02 Description : Le plan ne décrit pas les garanties anti-fuite (analytics, crash reports, clipboard). Impact : Fuite accidentelle de phrase/K_recovery.
M5 — Approche zeroize best-effort¶
Type : Non-conformité Référence : INV-242-03 / TC-SEC-05 Description : Le plan ne documente pas l'approche "best-effort" (Uint8Array overwrite). Impact : Invariant non démontrable.
M6 — Jest + ESM compatibilité¶
Type : Test irréalisable Référence : Contraintes techniques Description : @noble/bip39 ESM-only + Jest peut casser l'exécution. Impact : TC-BIP-* non exécutables sans travail additionnel.
M7 — Vérification backend ZK¶
Type : Hypothèse implicite Référence : INV-242-04 Description : La spec impose une propriété système backend. Le plan ne contient aucune tâche backend. Impact : Propriété non garantie architecturalement.
Conclusion¶
La review identifie des écarts significatifs nécessitant confrontation et potentiellement correction du plan avant Gate 5 GO.