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 (entrée fournie), avec coexistence d’un bloc historique non tagué (v2) et d’un bloc marqué [v3].
  • TESTS — PD-103 — Scénarios de tests contractuels (entrée fournie, [v3]).

2. Convergences

  • Le flux probatoire principal est aligné sur le bloc [v3] : hash local avant upload, chiffrement local AES-256-GCM, upload ciphertext-only avec contrôle d’intégrité S3.
    Réf: SPEC [v3] §4 (INV-103-03, INV-103-06), §5.4, §5.5 ; TESTS [v3] §2, TC-NOM-01, TC-INV-03.
  • Fidélité probatoire cohérente (original=submitted=probatory, sans transformation).
    Réf: SPEC [v3] §4 (INV-103-01, INV-103-02) ; TESTS [v3] TC-NOM-01, TC-INV-01.
  • Reprise différée convergente : UPLOADING -> UPLOAD_DEFERRED, reprise conditionnée (JWT + URL fraîche), expiration TTL vers CANCELLED avec purge.
    Réf: SPEC [v3] INV-103-23/24/38, §5.3, §5.5 ; TESTS [v3] TC-NOM-05/06, TC-ERR-11/15.
  • Garde de scellement et notification SEALED alignées.
    Réf: SPEC [v3] INV-103-08, INV-103-12, §5.6 ; TESTS [v3] TC-NOM-08, TC-ERR-08.
  • Extension v3 alignée entre docs : normalisation capture_id lowercase, fingerprint canonique d’idempotence, rotation KEK (kek_id + keyring), GC orphelins S3, SEAL_DELAYED.
    Réf: SPEC [v3] INV-103-31..37, §5.9, §5.11, §5.12 ; TESTS [v3] §2, TC-NOM-15/16/17, TC-INV-06/11/13/14.
  • Distinction explicite des erreurs d’unwrap (422) vs indisponibilité service clé (503) convergente.
    Réf: SPEC [v3] §5.5, §5.12, ER-103-16/17 ; TESTS [v3] TC-ERR-16/17, §8.

3. Divergences

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

  • DIV-01 : Baseline documentaire non univoque (v2 + v3 dans la même source SPECIFICATION)
  • Source A (document) : la SPECIFICATION contient un premier bloc non tagué (v2) sans invariants INV-103-31..39, puis un second bloc [v3] qui les introduit.
  • Source B (document) : les TESTS se déclarent explicitement sur PD-103-specification.md (v3) et couvrent INV-103-31..39.
  • Impact : risque d’interprétation contradictoire en gate (périmètre de conformité variable selon le bloc lu).

  • DIV-02 : Contrat API incohérent entre la section “points à clarifier” de la SPEC et les TESTS v3

  • Source A (document) : SPEC [v3] §10.2 Q-103-03 indique un contrat fixé à 202/200/409/400/429.
  • Source B (document) : TESTS [v3] exigent et observent aussi 422/503 (TC-ERR-16, TC-ERR-17, §8).
  • Impact : ambiguïté sur le référentiel API opposable (jeu exact de statuts attendus).

  • DIV-03 : Traçabilité Invariant/Critère partiellement incohérente sur INV-103-38

  • Source A (document) : SPEC [v3] INV-103-38 porte sur UPLOAD_DEFERRED -> CANCELLED à expiration TTL.
  • Source B (document) : TESTS [v3] matrice §2 lie INV-103-38 au CA-103-27 (purge locale immédiate post-UPLOADED) en plus de TC-ERR-11.
  • Impact : couverture déclarative potentiellement trompeuse (association invariant/critère non strictement alignée).

4. Zones d'ombre

  • Valeur officielle de l’epic non stabilisée (MOBILE-IOS / PD-195 / EPIC-XX).
  • Liste officielle des devices tiers pour validation P95 non fixée.
  • Politique produit de notification à ANCHOR_CONFIRMED non définie.
  • Whitelist finale des langues OCR non arrêtée.
  • Quota rate-limit cible pour usages massifs légitimes non arbitré.
  • Règle normative de sérialisation canonique pour cas limites (ex: normalisation Unicode/numérique multi-runtime) partiellement définie mais pas entièrement explicitée comme oracle inter-implémentations.
  • Preuve de conformité de rétention des KEK historiques sur toute la fenêtre deferredUploadTtl + dedupWindow non formalisée en critère dédié.

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 tokens used 100 187 Écriture impossible dans PD-103-confrontation-step3.md (operation not permitted, sandbox en lecture seule).
    Contenu du rapport :

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 (entrée fournie), avec coexistence d’un bloc historique non tagué (v2) et d’un bloc marqué [v3].
  • TESTS — PD-103 — Scénarios de tests contractuels (entrée fournie, [v3]).

2. Convergences

  • Le flux probatoire principal est aligné sur le bloc [v3] : hash local avant upload, chiffrement local AES-256-GCM, upload ciphertext-only avec contrôle d’intégrité S3.
    Réf: SPEC [v3] §4 (INV-103-03, INV-103-06), §5.4, §5.5 ; TESTS [v3] §2, TC-NOM-01, TC-INV-03.
  • Fidélité probatoire cohérente (original=submitted=probatory, sans transformation).
    Réf: SPEC [v3] §4 (INV-103-01, INV-103-02) ; TESTS [v3] TC-NOM-01, TC-INV-01.
  • Reprise différée convergente : UPLOADING -> UPLOAD_DEFERRED, reprise conditionnée (JWT + URL fraîche), expiration TTL vers CANCELLED avec purge.
    Réf: SPEC [v3] INV-103-23/24/38, §5.3, §5.5 ; TESTS [v3] TC-NOM-05/06, TC-ERR-11/15.
  • Garde de scellement et notification SEALED alignées.
    Réf: SPEC [v3] INV-103-08, INV-103-12, §5.6 ; TESTS [v3] TC-NOM-08, TC-ERR-08.
  • Extension v3 alignée entre docs : normalisation capture_id lowercase, fingerprint canonique d’idempotence, rotation KEK (kek_id + keyring), GC orphelins S3, SEAL_DELAYED.
    Réf: SPEC [v3] INV-103-31..37, §5.9, §5.11, §5.12 ; TESTS [v3] §2, TC-NOM-15/16/17, TC-INV-06/11/13/14.
  • Distinction explicite des erreurs d’unwrap (422) vs indisponibilité service clé (503) convergente.
    Réf: SPEC [v3] §5.5, §5.12, ER-103-16/17 ; TESTS [v3] TC-ERR-16/17, §8.

3. Divergences

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

  • DIV-01 : Baseline documentaire non univoque (v2 + v3 dans la même source SPECIFICATION)
  • Source A (document) : la SPECIFICATION contient un premier bloc non tagué (v2) sans invariants INV-103-31..39, puis un second bloc [v3] qui les introduit.
  • Source B (document) : les TESTS se déclarent explicitement sur PD-103-specification.md (v3) et couvrent INV-103-31..39.
  • Impact : risque d’interprétation contradictoire en gate (périmètre de conformité variable selon le bloc lu).

  • DIV-02 : Contrat API incohérent entre la section “points à clarifier” de la SPEC et les TESTS v3

  • Source A (document) : SPEC [v3] §10.2 Q-103-03 indique un contrat fixé à 202/200/409/400/429.
  • Source B (document) : TESTS [v3] exigent et observent aussi 422/503 (TC-ERR-16, TC-ERR-17, §8).
  • Impact : ambiguïté sur le référentiel API opposable (jeu exact de statuts attendus).

  • DIV-03 : Traçabilité Invariant/Critère partiellement incohérente sur INV-103-38

  • Source A (document) : SPEC [v3] INV-103-38 porte sur UPLOAD_DEFERRED -> CANCELLED à expiration TTL.
  • Source B (document) : TESTS [v3] matrice §2 lie INV-103-38 au CA-103-27 (purge locale immédiate post-UPLOADED) en plus de TC-ERR-11.
  • Impact : couverture déclarative potentiellement trompeuse (association invariant/critère non strictement alignée).

4. Zones d'ombre

  • Valeur officielle de l’epic non stabilisée (MOBILE-IOS / PD-195 / EPIC-XX).
  • Liste officielle des devices tiers pour validation P95 non fixée.
  • Politique produit de notification à ANCHOR_CONFIRMED non définie.
  • Whitelist finale des langues OCR non arrêtée.
  • Quota rate-limit cible pour usages massifs légitimes non arbitré.
  • Règle normative de sérialisation canonique pour cas limites (ex: normalisation Unicode/numérique multi-runtime) partiellement définie mais pas entièrement explicitée comme oracle inter-implémentations.
  • Preuve de conformité de rétention des KEK historiques sur toute la fenêtre deferredUploadTtl + dedupWindow non formalisée en critère dédié.

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