PD-286 — 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-286 — Export probatoire multi-volumes sans perte de preuves (entrée pré-gate, étape 3)TESTS— PD-286 — Scénarios de tests contractuels (entrée pré-gate, étape 3)
2. Convergences¶
- Le cadre de volumétrie est aligné : plafond global
10_737_418_240bytes, volume borné à<= 805_306_368bytes, et refus explicites (413 EXPORT_TOTAL_LIMIT_EXCEEDED,422 PROOF_TOO_LARGE_FOR_VOLUME) dans la spécification (INV/ERR) et dans les tests (TC-ERR-01,TC-ERR-02). - La rétrocompatibilité single-volume est convergente : contrat legacy conservé sans dépendance obligatoire à
volumes[](SpecINV-286-05,CA-286-02; TestsTC-NOM-01,TC-NR-01). - Le traitement multi-volumes séquentiel côté app est cohérent entre les deux documents (Spec flux nominal B + hors périmètre du parallèle; Tests
TC-NOM-04). - Le contrôle d’intégrité par volume et l’échec global immédiat en cas de mismatch sont alignés (Spec
INV-286-07,ERR-286-04; TestsTC-NOM-04,TC-ERR-04). - L’assemblage attendu en un unique
.pvproofavec métadonnées multi-volumes (volumes_count,assembled_from[]) est convergent (SpecINV-286-08,CA-286-03; TestsTC-NOM-03,TC-INV-08,TC-NR-02). - Le comportement terminal/non-reprise est cohérent :
FAILED/COMPLETED/EXPIREDsans transition sortante, reprise interdite sur mêmeexportId(SpecINV-286-11/12; TestsTC-INV-11,TC-INV-12,TC-NEG-06/07/08). - Les invariants hors périmètre fonctionnel (guards auth/premium, rate limiting, pipeline validation des preuves) sont traités de façon cohérente via non-régression (Spec hors périmètre; Tests
TC-NR-03/04/05). - Les deux documents reconnaissent explicitement des réserves de testabilité sur la canonicalisation JSON et la taxonomie finale des erreurs (Spec
Q-286-01/02; Tests section 9).
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : Liaison incohérente entre invariant de limite globale et critère d’acceptation référencé dans la matrice.
- Source A (SPECIFICATION) :
INV-286-02porte sur la limite>10GB => 413;CA-286-01porte sur le cas nominal2GBmulti-volumes et la borne par volume. - Source B (TESTS) : Matrice section 2 associe
INV-286-02àCA-286-01(INV-286-02 | CA-286-01 | TC-ERR-01). -
Impact : traçabilité exigence-test ambiguë; risque de lecture erronée de la couverture contractuelle.
-
DIV-02 : Liaison partielle entre invariant d’exhaustivité d’ensemble et critère référencé.
- Source A (SPECIFICATION) :
INV-286-03exige l’égalité d’ensemble (sans doublon ni omission);CA-286-08exige uniquement la non-scission d’une preuve. - Source B (TESTS) : Matrice section 2 relie
INV-286-03àCA-286-08(INV-286-03 | CA-286-08 | TC-INV-03). -
Impact : la matrice de couverture ne reflète pas fidèlement la sémantique du critère cité; audit de conformité potentiellement disputable.
-
DIV-03 : Exigence d’observabilité supplémentaire côté tests non explicitée comme exigence contractuelle dans la spécification.
- Source A (SPECIFICATION) :
INV-286-09impose un audit WORM fail-closed avec champs requis; aucune exigence explicite de signature d’événement n’est formulée. - Source B (TESTS) : Section 8 impose un « Événement signé / horodaté » comme observable requis.
-
Impact : possible conflit d’oracle de test (attendu QA plus strict que le contrat explicitement formulé).
-
DIV-04 : Attendu de test non univoque sur
integrityHashinvalide (code HTTP vs rejet de contrat applicatif). - Source A (SPECIFICATION) : section 5.1 indique
422 VOLUME_INTEGRITY_HASH_INVALIDpour format invalide;ERR-286-03indique rejet du contrat backend +FAILED+ audit fail-closed. - Source B (TESTS) :
TC-NEG-02attend «422 ... / rejet contrat» (double résultat possible), tandis queTC-ERR-03attend rejet contrat +FAILED. -
Impact : verdict de test potentiellement non déterministe selon l’interprétation du contexte de validation.
-
DIV-05 : Référence d’épopée non alignée.
- Source A (SPECIFICATION) : Epic « non renseignée ».
- Source B (TESTS) : Epic
EPIC-XX. - Impact : traçabilité portefeuille/PMO incomplète à la gate.
4. Zones d'ombre¶
- Spécification formelle de canonicalisation JSON (
Q-286-01) absente : ordre des clés, normalisation exacte, encodage canonique. - Taxonomie finale des codes d’erreur (
Q-286-02) non figée contractuellement. - Durée normative de rétention post-
FAILED/EXPIRED(Q-286-03) non chiffrée. - Valeurs effectives de TTL en production (
Q-286-04) non confirmées. - Modalités de preuve attendue pour valider
INV-286-10(envelope encryption au repos) insuffisamment cadrées : type de preuves, périmètre d’environnements, critères d’acceptation sécurité. - Comportement contractuel détaillé en cas d’indisponibilité de la chaîne d’audit WORM (codes/état/temporalité de l’échec fail-closed) non explicité de façon testable.
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 ```