Aller au contenu

PD-86 — Rapport de confrontation (Étape 3)

Ce rapport est produit par l'orchestrateur Claude avant chaque gate PMO. Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.

1. Sources confrontées

  • PD-86-specification.md (Étape 1 — Spécification)
  • PD-86-tests.md (Étape 2 — Tests & Validation)

2. Convergences

  • Le périmètre fonctionnel est aligné : détection locale au viewer sur image/vidéo/PDF, sans analyse serveur, avec écran de consentement avant rendu (spec sections 2/⅘, tests TC-86-01/02/03/17).
  • La logique vidéo est cohérente entre documents : agrégation max(score_categorie), plafond 12 frames, inclusion des 2 premières secondes (spec Q3-Q4 + perf, tests TC-86-02/24, PERF-86-04).
  • La politique prudente en cas d'échec d'analyse est convergente sur TIMEOUT, MODEL_UNAVAILABLE, CORRUPTED_INPUT, INTERNAL_ERROR (spec ⅘/9, tests TC-86-08/09/19/20, ERR-86-01..05).
  • Les invariants sécurité sont couverts de façon explicite : zéro transmission réseau, cache chiffré minimal, absence de dérivés persistants, hygiène des logs, zeroization best-effort (spec 4/7, tests TC-86-04/06/07/15/16 + SEC-86-01..05).
  • Les critères d'acceptation CA-86-01 à CA-86-12 sont tous mappés à au moins un scénario de test (matrice 1.2 complète).
  • Les transitions utilisateur clés sont testées : désactivation globale, préférence document réversible, décisions KEEP_HIDDEN/CANCEL, confirmation additionnelle mineur (spec 4.1/INV-86-06/14/15, tests TC-86-10/11/13/21).

3. Divergences

  • DIV-01 : Contradiction sur la structure minimale du verdict en cache (documentId).
  • Source A (spécification, modèle de données 3.1) : DocumentSensitiveVerdict inclut documentId comme champ de l'entité.
  • Source B (tests, TC-86-06 + CA-86-06 repris) : attendu limité à isSensitive, catégories, scores arrondis, modelVersion, analyzedAt, analysisStatus (sans documentId dans la liste autorisée).
  • Impact : ambiguïté de conformité sur le contenu exact du cache, risque de rejet en gate (lecture stricte de "uniquement les champs autorisés").

4. Zones d'ombre

  • Priorité non explicitée entre suppressWarning=true et statuts d'erreur prudents (TIMEOUT, MODEL_UNAVAILABLE, etc.) : la règle de précédence n'est pas formalisée en cas de collision.
  • Les seuils utilisateur (bornes [0.50, 0.95], valeurs par catégorie, comportement aux bornes) sont spécifiés mais sans cas de test dédié.
  • L'unicité (documentId, modelVersion) est définie dans la spec sans scénario de validation explicite (absence de test collision/doublon).
  • La notion de "pages représentatives" PDF reste non contractée (signalée ST-86-04), donc vérification partielle seulement.
  • Le budget <=700 ms est conditionné au "device cible" sans matrice de référence figée (signalée ST-86-03), ce qui limite l'objectivation du verdict perf.
  • La compatibilité iOS minimale est indiquée "décision d'implémentation" dans la spec sans critère de test associé.

5. Recommandation

  • Procéder — convergence confirmée, aucun conflit bloquant
  • Rework nécessaire — divergences à résoudre avant de continuer
  • Escalade — décision humaine requise sur un point structurant