Aller au contenu

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.