Aller au contenu

PD-101 — Dossier de conformité Gate 5 (AMBIGUITY) — v1

Méta

  • Story : PD-101 — Upload probatoire mobile chiffré
  • Gate : 5 (AMBIGUITY)
  • Itération : v1
  • Date : 2026-03-10
  • P1 : Claude (fallback — prompt 115KB > 30KB OpenCode limit)
  • P2 : Claude (confrontation — prompt 110KB)
  • Dérogation Art. II : Même dérogation que Gate 3 — prompts > 30KB.

Écarts BLOQUANTS : 0

Écarts MAJEURS (5 review + 3 confrontation)

ID Type Résumé Source Correction
E-01 Ambiguïté 500 MB décimal vs 524 288 000 binaire (spec §3.2) Review Aligner : spec dit 524 288 000, plan doit utiliser cette valeur
E-02 Faisabilité TC-INV-08 inspection DB irréalisable côté mobile seul Review Reclasser comme test cross-repo backend
E-03 Cohérence optimizedConsent? optionnel sans garde orchestrateur Review Ajouter validation optimized → consent non-null
E-04 Risque @noble/ciphers ESM-only, config Jest non documentée Review Documenter dans section contraintes techniques
E-05 Ambiguïté Audit fire-and-forget vs fail-closed (learning PD-85/PD-63/PD-262/PD-265) Review + ZO-09 Documenter comportement explicite (fail-open justifié ou fail-closed)
DIV-01 Cohérence Contract T8 observe transitions backend via store Zustand (UI only) Confrontation Corriger l'observable dans le contract
ZO-05 Risque OOM 500 MB non mitigé contractuellement (streaming chunks) Confrontation Documenter stratégie streaming avec limite mémoire
ZO-06 Risque File.readAsArrayBuffer de 500 MB impraticable Confrontation Documenter approche chunked read

Écarts MINEURS (6)

ID Résumé Source
E-06 cancelUpload() documente READY→CANCELLED mais observable imprécis Review
DIV-02 Validation format sha3_256 côté client pas dans le plan Confrontation
DIV-03 Garde PENDING sur annulation (CANCELLED directe) Confrontation
DIV-04 CSPRNG pour jitter non explicite Confrontation
DIV-05 Audit EXIF/transcodage non contractualisé dans spec Confrontation
DIV-06 Worker réconciliation confirmé hors scope mais non tracé Confrontation

Scoring

Critère Score Justification
feasibility 7.5 OOM 500MB non mitigé (-1), ESM config manquante (-0.5), TC-INV-08 irréalisable mobile (-0.5), mineurs (-0.5)
coverage 8.0 10/10 INV couverts, 14/14 CA couverts, T8 observable incorrect (-1), mineurs (-0.5), tests cross-repo manquants (-0.5)
risk_mitigation 7.0 Audit fire-and-forget non documenté (-1), OOM non mitigé (-1), CSPRNG jitter non explicite (-0.5), mineurs (-0.5)
coherence 8.0 Bonne cohérence globale. optimizedConsent sans garde (-0.5), 500M vs 524M (-0.5), store UI vs backend (-0.5), mineurs (-0.5)