Aller au contenu

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

  • Spécification fonctionnelle et contractuelle : PD-278-specification.md (Étape 1 — Specification)
  • Plan de tests contractuels : document “PD-278 — Scénarios de tests contractuels” (Étape 2 — Tests & Validation)

2. Convergences

  • Les deux documents convergent sur l’objectif principal : ajout de l’état DIP et correction de l’alignement formel DocStates ⊆ RealStates (Spec §1, §7 CA-10 ; Tests matrice + TC-FML-01).
  • La matrice de transitions est cohérente entre les deux : SEALED → DIP autorisée sous gardes, DIP → SEALED explicite uniquement, transitions interdites rejetées (409) (Spec §5.2, §6 ; Tests TC-NOM-01/03/04, TC-ERR-06, TC-NEG-04).
  • Les exigences de traçabilité sont alignées : audit DOCUMENT_DISSEMINATED / DOCUMENT_RETURNED avec métadonnées de corrélation (Spec INV-278-04, §5.⅗.4 ; Tests TC-NOM-01/03, TC-INV-04).
  • L’attestation de restitution est traitée comme obligatoire et bloquante en cas d’échec (Spec INV-278-05, E-500-ATTESTATION ; Tests TC-NOM-01, TC-ERR-09, TC-INV-05).
  • Les contraintes de non-régression sécurité/probatoire sont convergentes : WORM préservé, RLS préservée, EXPIRED terminal (Spec INV-278-06/07/08 ; Tests TC-NR-01/02, TC-INV-06/07/08).
  • Les réserves de testabilité sont reconnues des deux côtés sur les mêmes points structurants (N_MAX, endpoints API, règle motif_communication, politique de panne post-commit) (Spec §10 Q-01..Q-04 ; Tests §9).

3. Divergences

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

  • DIV-01 : Incohérence sur le code d’erreur pour event_type invalide.
  • Source A (Spécification) : §5.1 indique event_type invalide → rejet 422.
  • Source B (Spécification reprise par Tests) : §6 E-400-ID-FORMAT inclut “enum invalide” → 400, tandis que Tests TC-ERR-02 attend 422.
  • Impact : oracle de test ambigu, risque d’échec de gate sur conformité HTTP et contrat d’erreur.

  • DIV-02 : Référence épique non alignée entre artefacts.

  • Source A (Spécification) : “Epic : Référence épique non fournie (à compléter)”.
  • Source B (Tests) : “Epic : EPIC-XX”.
  • Impact : traçabilité documentaire affaiblie (chaîne de preuve/gouvernance incomplète).

  • DIV-03 : Niveau d’engagement sur INV-278-10 (encryption) vs testabilité effective.

  • Source A (Spécification) : INV-278-10 défini “invariant crypto obligatoire” (non négociable).
  • Source B (Tests) : couverture TC-INV-10 marquée “Partielle”, dépendante de l’observabilité sécurité.
  • Impact : risque de déclarer conforme un invariant constitutionnel sans preuve complète observable.

4. Zones d'ombre

  • Valeur contractuelle N_MAX absente : borne haute package non testable intégralement.
  • URI/méthodes API exactes non définies : black-box contract testing incomplet.
  • Statut métier de motif_communication (obligatoire vs optionnel selon contexte) non tranché.
  • Politique explicite en cas d’échec d’ancrage audit post-commit non définie (mode dégradé vs blocage).
  • Référence canonique des transitions historiques hors DIP (PENDING/SEALED/EXPIRED) non fournie.
  • Référence épique finale non stabilisée (placeholder / manquante), impactant la traçabilité transverse.

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