[0m
build · gpt-5.3-codex [0m
PD-282 — Rapport de confrontation (Étape N)¶
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-282-specification.md— Spécification contractuelle (Étape 1)PD-282-tests.md— Scénarios de tests contractuels (Étape 2)PD-282-review-phase1.md(contenu fourni: “PD-282 — Specification Review”, 2026-03-02) — Revue pré-gate (Phase 1)
2. Convergences¶
- Les trois documents convergent sur le socle fonctionnel principal:
envelopeSealobligatoire, exclusion deenvelopeSealdu payload signé (JCS), intégrité “1 octet modifié => invalidation”, immutabilité post-scellement, terminalitéSEALED(SpecINV-282-01/02/03/08/09/10 ;Testsmatrice + TC-NOM-01/02/05/06 ;Reviewne conteste pas ces invariants de base). - Convergence sur le contrat de rejet explicite en cas de format invalide / données manquantes (
SpecINV-282-12, ERR-06 ;TestsTC-ERR-06 + TC-NEG-* ;Reviewqualifie surtout des manques de couverture, pas une contradiction du principe). - Convergence sur le mode dégradé OCSP:
ocspResponses=[]acceptable uniquement avecvalidationPolicy=OCSP_UNAVAILABLE(SpecERR-05 + §5.1.2 ;TestsTC-ERR-05, TC-NEG-06/07 ;Reviewsignale ambiguïtés de formulation mais pas de désaccord de fond). - Convergence sur la pérennité post-rotation de clé via
kid+ chaîne embarquée (SpecINV-282-11 ;TestsTC-NOM-07 ;Reviewne contredit pas l’objectif). - Convergence explicite sur le fait que la story reste partiellement testable avec réserves externes (perf environnement de référence, recevabilité juridique, trust-store tiers):
SpecQ-02/H-04/H-01 ;Tests§9 “Règles non testables” ;Reviewclasse ces sujets en risques/ambiguïtés majeurs.
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : Couverture Mode B contractualisée mais non démontrée positivement
- Source A (Specification) : Mode B “online public” est inclus au périmètre (
§2 Inclus,§3 Définitions). - Source B (Tests) : aucun scénario nominal positif Mode B ; seulement Mode A nominal (
TC-NOM-04) et échec A/B (TC-ERR-08). - Source C (Review) :
IST-01classé Bloquant. -
Impact : exigence en périmètre sans preuve de conformité positive.
-
DIV-02 : Statut OCSP
revokeddéfini mais comportement métier non contractualisé - Source A (Specification) : enum
ocspResponses[].statusinclutgood|revoked|unknown(§5.1.2) sans règle de décision explicite à finalisation. - Source B (Tests) : absence de test dédié au cas
revoked. - Source C (Review) :
IST-05classé Bloquant. -
Impact : décision de finalisation potentiellement indéterminée sur un cas critique probatoire.
-
DIV-03 : Horodatage
signedAtprésent mais non protégé par le sceau global - Source A (Specification) :
signedAtest dansenvelopeSeal(§5.1.1) etenvelopeSealest exclu du calcul du sceau (INV-282-02). - Source B (Tests) : aucun test détectant altération de
signedAtisolé. - Source C (Review) :
HD-01classé Bloquant. -
Impact : incohérence potentielle de chronologie probatoire non détectable par la vérification du sceau.
-
DIV-04 : Exigence de monitoring formulée “DOIT” tout en étant hors périmètre
- Source A (Specification) : note
ERR-05impose monitoring >10%/1h avec “DOIT”, tout en indiquant “hors périmètre fonctionnel”. - Source B (Tests) : pas de test couvrant cette obligation d’exploitation.
- Source C (Review) :
CTR-01classé Majeur. -
Impact : obligation normative sans portage clair de responsabilité ni vérifiabilité dans la story.
-
DIV-05 : Normalisation
certSerialNumbercontractualisée mais non couverte - Source A (Specification) : normalisation uppercase à l’ingestion, comparaison sur forme normalisée (
§5.1.2). - Source B (Tests) : aucun test explicite entrée mixte/minuscule + persistance normalisée.
- Source C (Review) :
IST-03classé Majeur. -
Impact : règle de contrat susceptible d’être non implémentée sans détection QA.
-
DIV-06 : Contrainte temporelle
producedAt <= validationTimestampsans cas négatif - Source A (Specification) : CA-05 impose la relation temporelle.
- Source B (Tests) : vérifié en nominal (
TC-NOM-03) mais pas de comportement défini/testé en violation. - Source C (Review) :
IST-04classé Majeur. -
Impact : comportement non déterminé sur incohérence temporelle OCSP.
-
DIV-07 : Atomicité testée mais traçabilité de couverture incomplète
- Source A (Specification) : atomicité détaillée (
§5.5). - Source B (Tests) : scénario dédié
TC-NOM-08, mais non rattaché à un invariant/CA dans la matrice de couverture. - Source C (Review) :
IST-02classé Mineur. -
Impact : audit de couverture formel potentiellement incomplet malgré présence d’un test.
-
DIV-08 : Rôle des chaînes de certificats insuffisamment explicités
- Source A (Specification) : trois chaînes (
envelopeSeal.certificateChain,tsaCertificateChain,eidasCertificateChain) définies sans sémantique contractuelle exhaustive. - Source B (Tests) : validation de présence, sans oracle explicite d’usage différencié par chaîne.
- Source C (Review) :
AMB-02classé Majeur. -
Impact : risque d’interprétations divergentes entre implémenteurs/vérificateurs tiers.
-
DIV-09 : Déterminisme JCS vs persistance
jsonbnon cadré - Source A (Specification) : impose JCS (
INV-282-02) et stack PostgreSQLjsonb(§10.1) sans préciser le point exact de canonicalisation de référence. - Source B (Tests) : pas de scénario round-trip DB ciblé sur stabilité de vérification.
- Source C (Review) :
HD-02classé Majeur. -
Impact : risque de faux négatifs de vérification sur enveloppes intactes selon cycle stockage/lecture.
-
DIV-10 : Concurrence de finalisation non contractualisée
- Source A (Specification) : états + atomicité définis, sans règle explicite de collision de finalisations concurrentes.
- Source B (Tests) : aucun test de course concurrente.
- Source C (Review) :
HD-03classé Majeur. - Impact : comportement runtime non spécifié en contention (erreurs techniques vs métier).
4. Zones d'ombre¶
- Environnement de référence performance non fixé (
SpecQ-02), ce qui empêche l’objectivation complète des bornes P95 (confirmé “non testable” dansTests§9). - Alignement final avec le modèle d’états global PD-280 non tranché (
SpecQ-04), malgré non-régression prévue (TestsTC-NR-02). - Politique d’inclusion/exclusion de la root CA dans les chaînes embarquées non arrêtée (
SpecQ-05), avec dépendance au trust-store tiers (H-01). - Référentiel explicite du “mécanisme de réconciliation existant” absent (
Spec§5.5), sans ancrage documentaire partagé. - Gouvernance d’évolution de la liste anti-secrets (“patterns minimaux”) non formalisée (point signalé par
ReviewAMB-01, non couvert par un artefact décisionnel dans les sources fournies). - Preuve de non-révocation du certificat de scellement ProbatioVault en Mode A non explicitement embarquée (point de risque
ReviewRSC-01, non arbitré dans le contrat source).
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