Aller au contenu

PD-275 — 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 (Étape 1) : PD-275 — Conformite PV Anchor ANCHOR-16/17 (Finality Depth & Signer Revocation)
  • Tests (Étape 2) : PD-275 — Scenarios de tests contractuels

2. Convergences

  • Les deux documents convergent sur l’objectif de conformité Prolog 32/32 couvrant explicitement les checks 28–32 (Spec §1, §7 CA-06, §8 T8 ; Tests §2 matrice, TC-NOM-08, TC-NR-01/02).
  • Alignement complet sur les invariants de sécurité centraux : fail-closed, finality guard, registre signer autoritatif, revocation atomique auditée, terminalité REVOKED, autorisation revoke, anti-usurpation revokedBy, sérialisation concurrente, unicité événement de revocation (Spec §4 INV-275-01..12 ; Tests §2, §5, TC-NOM-10/11, TC-ERR-08/09).
  • Les flux nominaux F1/F2/F3/F4 de la spécification sont repris en scénarios test correspondants (Spec §5 ; Tests TC-NOM-01 à TC-NOM-11).
  • Convergence sur les erreurs métier attendues (ERR-FINALITY-INSUFFICIENT, ERR-SIGNER-NOT-FOUND, ERR-SIGNER-REVOKED, ERR-SIGNER-ALREADY-REVOKED, ERR-AUDIT-TRAIL-MISSING, ERR-REVOKE-UNAUTHORIZED, ERR-REVOKEDBY-SPOOFING, ERR-COMPLIANCE-NOT-MET) avec assertions testables dédiées (Spec §6 ; Tests §4).
  • Convergence sur la migration DDL reversible up/down/up et vérification des contraintes restaurées (Spec CA-08, §10.4, T9 ; Tests TC-NOM-09, TC-NR-05).
  • Convergence explicite sur les ambiguïtés structurantes non levées (Q-01/Q-02/Q-03/Q-04) qui empêchent un verdict “testable intégralement” (Spec §10.8 ; Tests §9 + Verdict QA).

3. Divergences

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

  • DIV-01 : Complétude machine à états batch déclarée vs reconnue incomplète
  • Source A (Spécification) : la checklist indique la couverture comme complète ([x] + INV-275-07-state-machine-complete) et contractualise NON_FINALIZED -> FINALIZED + FINALIZED -> * : INTERDITE (Spec §5, “Checklist machine à états”).
  • Source B (Tests) : l’exhaustivité des états anchor_batch hors FINALIZED est déclarée incompletable et bloquante tant que Q-02 n’est pas tranchée (Tests §9, ligne “Exhaustivite des etats anchor_batch...”, impact Bloquant).
  • Impact : risque de faux sentiment de complétude sur les transitions batch, avec trous potentiels de contractualisation au gate.

  • DIV-02 : Traçabilité Epic non alignée / non stabilisée

  • Source A (Spécification) : “Reference epique non fournie (a completer)” (Spec “References”).
  • Source B (Tests) : référence “Epic : EPIC-XX” (Tests §1).
  • Impact : traçabilité gouvernance/jira non fiable (lien artefacts ↔ epic), fragilise l’auditabilité de gate (Article III).

  • DIV-03 : Mapping de couverture CA-08 incohérent avec l’invariant associé

  • Source A (Spécification) : CA-08 porte sur la reversibilité migration DDL (Spec §7).
  • Source B (Tests) : la matrice associe CA-08 à INV-275-03-confirmation-persistence (Tests §2, ligne INV-275-03 ... CA-08 ... TC-NOM-09), alors que le contenu de TC-NOM-09 vise le schéma/migration.
  • Impact : ambiguïté de démonstration “critère ↔ invariant”; peut créer une contestation de couverture formelle en gate.

4. Zones d'ombre

  • Valeur officielle de FINALITY_DEPTH par environnement (dev/staging/prod) non figée : test paramétrique possible, conformité de référence impossible sans décision (Spec Q-01 ; Tests §9).
  • Format canonique de revokedBy non fixé (UUID interne vs JWT sub brut vs identité service account), malgré exigence “auth-derived” (Spec Q-04 ; Tests §9).
  • Normalisation/collision d’adresse signer (checksum/casse, unicité métier multi-format) non contractualisée (Spec Q-03 ; Tests §9).
  • Liste canonique complète des états anchor_batch hors FINALIZED absente, empêchant la preuve d’exhaustivité globale des transitions (Spec Q-02 ; Tests §9).
  • Stratégie de seed initial des signers actifs non définie opérationnellement (source de vérité, gouvernance de mise à jour) ; risque de refus massifs fail-closed au démarrage (Spec H-04/Q-05, peu instrumenté côté tests).
  • Politique explicite de gestion des timeouts/deadlocks (codes d’erreur, observabilité minimale attendue) seulement cadrée en principe fail-closed, sans contrat d’erreur détaillé inter-documents (Spec §10.7 ; Tests couvrent l’effet, pas le contrat complet).

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