Aller au contenu

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

  • PD-275 — Conformité PV Anchor ANCHOR-16/17 (Finality Depth & Signer Revocation) (document Specification, étape 1)
  • PD-275 — Scenarios de tests contractuels (document Tests, étape 2)

2. Convergences

  • Les deux documents convergent sur le périmètre fonctionnel central : couverture des checks Prolog 28–32, objectif final 32/32, sans fail-open.
  • Convergence sur les gardes métier critiques :
  • finalisation refusée si confirmation_count < FINALITY_DEPTH (INV-275-02, CA-02, TC-NOM-02, TC-ERR-02)
  • soumission refusée si signer REVOKED ou inconnu (CA-05, TC-NOM-06/07, TC-ERR-04/05)
  • Convergence sur la révocation atomique auditée : transition ACTIVE -> REVOKED avec revokedAt et revokedBy obligatoires, refus si déjà révoqué, refus si audit trail incomplet (INV-275-05, ERR-AUDIT-TRAIL-MISSING, TC-NOM-04/05, TC-ERR-06).
  • Convergence sur les contraintes de migration réversible up/down/up avec vérification de restauration des objets attendus (CA-08, TC-NOM-09, TC-NR-05).
  • Convergence explicite sur les ambiguïtés restantes (Q-01, Q-02, Q-03, Q-04) : elles sont reconnues dans la spec et reprises comme réserves de testabilité dans les tests.

3. Divergences

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

  • DIV-01 : complétude de machine à états déclarée vs non vérifiable
  • Source A (Specification) : INV-275-07-state-machine-complete + checklist marquée complète ([x]) pour transitions sortantes des états identifiés.
  • Source B (Tests) : section 9 indique l’exhaustivité des états anchor_batch hors FINALIZED comme non testable et bloquante (Q-02).
  • Impact : la complétude exigée comme invariant non négociable n’est pas démontrable de bout en bout avec le référentiel actuel.

  • DIV-02 : unicité métier signer implicite en test vs règle de normalisation non figée en spec

  • Source A (Tests) : TC-NOM-09 attend la restauration de contraintes incluant une “unicité attendue”.
  • Source B (Specification) : Q-03 laisse ouverte la politique de collision/normalisation d’adresse (checksum/casse), donc l’unicité métier n’est pas strictement contractualisée.
  • Impact : risque d’assertions de test non stables selon l’interprétation d’adresse (format/casse/checksum).

  • DIV-03 : référence épique incohérente entre les documents

  • Source A (Specification) : “Référence épique non fournie (à compléter)”.
  • Source B (Tests) : “Epic : EPIC-XX”.
  • Impact : traçabilité gouvernance incomplète/incohérente pour la gate et l’archivage probatoire.

  • DIV-04 : rattachement Invariant/Critère non aligné dans la matrice de tests

  • Source A (Specification) : CA-07 = couverture des 5 comportements nouveaux (checks 28–32).
  • Source B (Tests) : matrice associe INV-275-08-envelope-encryption à CA-07 (TC-INV-08).
  • Impact : ambiguïté de lecture de conformité (preuve de couverture fonctionnelle vs preuve crypto), pouvant biaiser l’évaluation de gate.

4. Zones d'ombre

  • Valeur par défaut officielle de FINALITY_DEPTH par environnement (Q-01) : testable en paramètre, mais conformité opérationnelle par environnement non établie.
  • Canon des états anchor_batch hors FINALIZED (Q-02) : empêche la preuve d’exhaustivité globale des transitions.
  • Politique normative de normalisation d’adresse signer (Q-03) : checksum/casse/collision non figés.
  • Identité et format normatifs de revokedBy (Q-04) : audit trail hétérogène possible.
  • Stratégie de seed initial des signers actifs (Q-05) : risque fail-closed massif au démarrage si référentiel initial incomplet.
  • Autorisation métier de l’action revokeSigner (qui a le droit de révoquer) : non explicitée contractuellement dans les deux documents.

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