Aller au contenu

PD-103 — 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

  • SPECIFICATION — PD-103 — Capture probatoire d’écran et scellement automatique (document d’entrée Spécification)
  • TESTS — PD-103 — Scénarios de tests contractuels (document d’entrée Tests)

2. Convergences

  • Intégrité/sécurité alignées: hash local avant upload, chiffrement local file-level, upload en ciphertext, pas de clair au repos temporaire.
    Réf: SPEC §4 (INV-103-03/06/09), §5.4-5.5; TESTS §2, TC-NOM-01, TC-INV-03.
  • Fidélité bit-à-bit (original=submitted=probatory) cohérente entre contrat et tests.
    Réf: SPEC §3, §4 (INV-103-01/02), §5.1; TESTS TC-NOM-01, TC-INV-01.
  • OCR convergent: optionnel, local, non bloquant, non probatif, sans IA externe.
    Réf: SPEC INV-103-04/05, ER-103-03; TESTS TC-NOM-02/03, TC-ERR-03.
  • Machine à états convergente sur les transitions principales, garde PENDING_SEAL -> SEALED, et terminalité stricte.
    Réf: SPEC INV-103-20..28, §5.7; TESTS TC-NOM-07/08/09/12, TC-ERR-08.
  • Flux différé convergent: UPLOADING -> UPLOAD_DEFERRED, reprise avant TTL, puis CANCELLED + purge à expiration.
    Réf: SPEC §5.3, §5.5, ER-103-01/04/11; TESTS TC-NOM-05/06, TC-ERR-01/04/11.
  • Notification obligatoire à SEALED alignée, incluant le texte attendu.
    Réf: SPEC §5.6, INV-103-12; TESTS TC-NOM-08.
  • Protection distribuée alignée (lock, idempotence, réconciliation, rate-limit, clearing).
    Réf: SPEC §5.9, INV-103-11; TESTS TC-INV-05/06/07/08, TC-ERR-10, TC-NEG-11.
  • Les ambiguïtés structurantes sont explicitement reconnues par les deux documents.
    Réf: SPEC §10.2 (Q-103-*), TESTS §9-§10.

3. Divergences

⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.

  • DIV-01 : Contrat des codes API non aligné (409)
  • Source A (SPECIFICATION) : contrat explicite sur 202 (POST nominal), 400 (payload invalide), 429 (rate-limit) + 200 sur PUT S3; pas de 409 contractualisé pour POST /documents/capture.
  • Source B (TESTS) : §8 exige l’observabilité des codes 200/202/400/409/429.
  • Impact : risque de rejet QA/gate sur un statut (409) non défini contractuellement dans la spec.

  • DIV-02 : Granularité du rate-limit formulée différemment

  • Source A (SPECIFICATION) : §5.2 formule 60 req/min/utilisateur.
  • Source B (TESTS) : TC-ERR-10 et §8 testent explicitement user_id + IP.
  • Impact : comportement de throttling potentiellement non déterministe selon l’interprétation appliquée.

4. Zones d'ombre

  • Valeur officielle de l’epic non figée (MOBILE-IOS / PD-195 / EPIC-XX).
  • Liste officielle des devices/perf tiers absente pour opposabilité P95 hors device de référence.
  • Contrat détaillé de réponse POST /documents/capture non figé (schéma/statuts métiers).
  • Politique de notification à ANCHOR_CONFIRMED non arrêtée.
  • Whitelist finale des langues OCR non contractualisée.
  • Quota final rate-limit pour usages massifs légitimes non arbitré.
  • Politique légale de conservation locale au-delà TTL non arrêtée (signalée bloquante côté QA).
  • Absence d’un scénario de test explicite pour l’annulation utilisateur en UPLOADING -> CANCELLED (transition autorisée par la spec).

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