Aller au contenu

PD-283 — Plan d’implémentation : Revue

1. Références

  • Spécification : PD-283-specification.md
  • Tests contractuels : PD-283-tests.md
  • Plan d’implémentation : PD-283-plan.md
  • Date de revue : 2026-03-09
  • Reviewer : Auditeur technique indépendant (LLM)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Non-conformité Spec Spec §6 ERR-01 / Test TC-ERR-01 / Plan §2.1 (étape 2) Le flux nominal place IDLE -> PREPARING avant la réponse API, alors que ERR-01 exige export non lancé sur 403 FREE et TC-ERR-01 exige l’absence de cycle PREPARING/DOWNLOADING. Contradiction contractuelle et comportement non conforme au cas d’erreur FREE. BLOQUANT
Test irréalisable Test TC-ERR-01 / Plan §2.1 vs §6 ERR-01 Le plan contient deux comportements incompatibles pour 403 FREE (PREPARING déjà atteint dans §2.1, mais “pas de PREPARING” dans §6). Le test TC-ERR-01 n’a pas d’oracle unique déterministe. BLOQUANT
Couverture manquante Spec §3.3 (règle exportId8 avec padding) / Plan C5-C10 Le mécanisme de nommage mentionne exportId8 mais ne couvre pas la règle contractuelle complète “<8 alphanumériques => compléter par zéros à droite”. Risque de nom final non conforme regex/contrat dans cas limites. MAJEUR
Test irréalisable Spec §3.3 (guideUrl) + F-01 étape 5 / Test TC-NOM-08 / Plan §2.1 Le plan n’explicite pas le mécanisme de récupération du binaire guideUrl avant insertion passthrough (guide_plainte_france.pdf), alors que le test exige présence et identité binaire. TC-NOM-08 non démontrable de façon fiable avec le plan tel qu’écrit. BLOQUANT
Hypothèse implicite Spec §6 (ERR-01 vs ERR-03) / Plan C3 §6 La détection d’expiration URL repose sur 403/401, alors que 403 est aussi un cas FREE bloquant côté API; la règle de disambiguïsation n’est pas contractualisée dans le plan. Mauvaise branche d’erreur possible (refresh au lieu de blocage premium), non-conformité fonctionnelle. MAJEUR
Risque sécu/conformité Spec INV-283-13 / Plan §7.3 Le plan assimile FileSystem.cacheDirectory à une protection “Data Protection” sans mécanisme de preuve explicite de chiffrement au repos pour artefacts cryptographiques temporaires. Conformité INV-283-13 non démontrable en audit externe. MAJEUR
Code Contract — Invariant Spec §4 (INV-283-xx) / Code contracts (temp-file-manager, export-ui, etc.) Plusieurs “invariants” des contracts ne sont pas un sous-ensemble des invariants de la spec (ex. “registre persisté AsyncStorage”, contraintes UI CA). Rupture de traçabilité normative entre contrat code et base contractuelle. MAJEUR
Code Contract — Frontière Plan C5/C10 / Code contracts (pvproof-assembler, export-orchestrator) Chevauchement de responsabilité sur le nommage final .pvproof dans plusieurs modules contractuels. Frontières de responsabilité ambiguës en audit de conformité composant par composant. MINEUR
Contrainte technique non documentée Exigence §7 revue / Plan (absence section “Contraintes techniques”) Dépendances inter-PD non listées avec statut explicite DONE/TODO/STUB. Traçabilité de dépendances incomplète pour exécution contractuelle. MINEUR
Contrainte technique non documentée Exigence §7 revue / Plan (absence section “Contraintes techniques”) Framework de test (Jest ou Vitest) non explicitement choisi. Ambiguïté de runner de tests et de reproductibilité des scénarios. MAJEUR
Contrainte technique non documentée Exigence §7 revue / Plan (absence section “Contraintes techniques”) Compatibilité ESM/CJS des dépendances critiques non documentée, runner adapté non précisé. Risque d’échec d’exécution tests/build non anticipé. MAJEUR
Contrainte technique non documentée Exigence §7 revue / Plan (absence section “Contraintes techniques”) Variables CI nécessaires (DATABASE_URL, CI=true, etc.) non documentées. Exécution CI potentiellement non déterministe pour tests d’intégration/perf. MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 3, MAJEUR = 6, MINEUR = 3
  • Points critiques :
  • Contradiction contractuelle sur le traitement 403 FREE (flux et erreur).
  • Réalisabilité incomplète du flux guideUrl / test TC-NOM-08.
  • Absence de section “Contraintes techniques” demandée avec éléments obligatoires (runner, ESM/CJS, dépendances inter-PD, variables CI).

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : Présence d’écarts bloquants de conformité et de testabilité (gestion 403 incohérente, scénario guide/passthrough non contractualisé de bout en bout), complétés par des manques majeurs de contraintes techniques et de traçabilité contractuelle des code contracts.