PD-85 — 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¶
- Spécification (Étape 1) :
PD-85 — Export probatoire consolidé prêt au dépôt (backend) - Tests contractuels (Étape 2) :
PD-85 — Scénarios de tests contractuels
2. Convergences¶
- Les deux documents convergent sur le périmètre fonctionnel principal : endpoint
POST /exports/complaint-file, export partiel explicite, rejets partiels possibles, blocages400/403/404/413/422, succès200. - Convergence sur les invariants probatoires clés (INV-02/03/09/11/12, INV-85-01 à INV-85-09), y compris : non-déchiffrement backend, immutabilité des ProofEnvelope, hash
integrityHash, borne taille 1 GB, TTL signé <= 30 min. - Convergence sur le cas B2C mineur / représentant légal (
LEGAL_GUARDIAN) avec inclusion conditionnelle d’évidences additionnelles. - Convergence sur la vérifiabilité externe : présence
manifest,chronology, URLs signées,README_VERIFICATION, guide, et contrôles de recalcul SHA3-256. - Convergence sur la logique de succès partiel : conservation des preuves valides +
rejectedProofsexplicites.
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : Référence épique incohérente
- Source A (Spécification, Références) : Epic =
PD-185 - Source B (Tests, §1) : Epic =
EPIC-XX(incohérence explicitement notée) -
Impact : traçabilité Jira/epic non fiable pour la gate et l’audit.
-
DIV-02 : Politique d’audit des erreurs (4xx/422)
- Source A (Spécification, CA-12 + §10 point 7 “RÉSOLU”) : audit WORM requis pour tout appel (200, 400, 403, 404, 413, 422)
- Source B (Tests, matrice INV-85-05 + §9) : couverture partielle, politique 4xx/422 jugée ambiguë / “à confirmer”
-
Impact : impossibilité de conclure la conformité Art. III (traçabilité complète) sur base test.
-
DIV-03 : Valeur par défaut
signedUrlTtl - Source A (Spécification, §5.2 + §10 point 3 “RÉSOLU”) : défaut = 15 min (
EXPORT_SIGNED_URL_TTL_MIN) - Source B (Tests, §9) : “défaut non spécifié”
-
Impact : contradiction sur testabilité déterministe de CA-10.
-
DIV-04 : Règle contractuelle sur doublons
proofIds - Source A (Spécification, §6) : doublons => 400 (déduplication interdite, fail-fast)
- Source B (Tests, §7 TC-NEG-01) : “soit déduplication explicite soit rejet 400 (à figer)”
-
Impact : comportement API non univoque côté QA/régression.
-
DIV-05 : Cas mixte
404(non possédé + inexistant) - Source A (Spécification, §6 + §10 point 9 “RÉSOLU”) : fail-fast première erreur 404
- Source B (Tests, matrice CA-04 + §9) : cas mixte déclaré non spécifié
-
Impact : divergence sur oracle de test et sur déterminisme des erreurs.
-
DIV-06 : Enum
documentType - Source A (Spécification, §5.1 + §10 point 5 “RÉSOLU”) : enum figée à 7 valeurs
- Source B (Tests, §9) : “valeurs non figées”
-
Impact : incertitude de validation payload/manifest côté tests.
-
DIV-07 : Format
proofEnvelopeRef - Source A (Spécification, §5.1 + §10 point 6 “RÉSOLU”) : UUID v4
- Source B (Tests, §9) : format non défini (UUID/URN/autre)
- Impact : divergence contractuelle sur validation de structure des preuves exportées.
4. Zones d'ombre¶
- Le contexte de mesure performance P95 reste non opérationnel (spec §5.2/§9 H-06 et tests §9) : valeurs cibles présentes, environnement de référence absent.
- Le contrat d’erreur 422 ne précise pas explicitement la présence/absence de
manifest; les tests reflètent cette ambiguïté (manifest absent ou présent selon contrat), sans règle unifiée. - Le comportement exact en cas d’échec de la journalisation WORM dans un flux synchrone (spec §5.7) n’est pas décrit en résultat HTTP observable.
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