Aller au contenu

PD-240 — Rapport de confrontation (Étape 3)

Ce rapport est produit par l'orchestrateur Claude avant la gate PMO CONFORMITY_CHECK. Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.

1. Sources confrontées

  • PD-240-specification.md (Étape 1)
  • PD-240-tests.md (Étape 2)
  • PD-240-specification-review.md (Étape 3, Phase 1)

2. Convergences

  • CON-01 : Tous les invariants (INV-240-01 à INV-240-10) sont couverts par au moins un test dans la matrice de couverture.
  • CON-02 : Tous les critères d'acceptation (CA-240-01 à CA-240-09) sont couverts par au moins un test.
  • CON-03 : La règle INV-240-10 / CA-240-09 (preuve RGPD hors périmètre) est correctement identifiée comme NON TESTABLE dans les deux documents.
  • CON-04 : Les codes d'erreur spécifiés (ERR-240-*) sont alignés entre spec et tests.
  • CON-05 : Le flux nominal F-240-01 est couvert par le test T-240-NOM-01.
  • CON-06 : Format d'erreur {error, message} vérifié dans tous les tests d'erreur (T-240-ERR-*).

3. Divergences

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

  • DIV-01 : Confirmation renforcée non définie
  • Spec (§5 Définitions) : "format exact à contractualiser"
  • Tests (T-240-NOM-01, T-240-ERR-03) : supposent un format valide/invalide sans le définir
  • Impact : INV-240-03 et CA-240-03 non vérifiables objectivement

  • DIV-02 : Observable d'anonymisation/purge RGPD absent

  • Spec (INV-240-05, CA-240-05) : "anonymisées/purgées selon RGPD"
  • Tests (T-240-POST-02) : "Contrôler les enregistrements liés à U1 dans les stores applicatifs"
  • Impact : Aucune définition des stores ni du périmètre exact — test non reproductible

  • DIV-03 : Délai d'invalidation des sessions non borné

  • Spec (INV-240-06) : "DOIVENT être invalidées après suppression"
  • Tests (T-240-NOM-01) : "token précédent refusé" sans délai
  • Impact : Résultat de test potentiellement flaky ou non déterministe

  • DIV-04 : Délai de propagation Keycloak non défini

  • Spec (INV-240-04, CA-240-04) : "supprimé de manière irréversible"
  • Tests (T-240-POST-01) : "Échec d'authentification ultérieure" sans timing
  • Impact : Test potentiellement flaky selon latence Keycloak

  • DIV-05 : Comportement atomicité Keycloak/RGPD non contractualisé

  • Spec (§11 Points à clarifier) : "Statut attendu si suppression Keycloak réussie mais purge RGPD échoue"
  • Tests : aucun test couvrant ce cas intermédiaire
  • Impact : État incohérent possible sans règle de compensation

  • DIV-06 : ERR-240-DELETE-FAILED ne distingue pas Keycloak vs purge

  • Spec (§8 Cas d'erreur) : "Échec suppression compte (Keycloak ou purge)"
  • Tests (T-240-ERR-04) : vérifie uniquement le code générique
  • Impact : Traçabilité et diagnostic réduits

4. Zones d'ombre

  • ZO-01 : Format exact de la confirmation renforcée (header, body, token dédié) — non défini nulle part.
  • ZO-02 : Périmètre des données RGPD à anonymiser/purger — non listé explicitement.
  • ZO-03 : Délai maximal de propagation pour invalidation sessions et suppression Keycloak — non borné.
  • ZO-04 : Mécanisme de compensation si suppression Keycloak OK mais purge RGPD KO — non spécifié.
  • ZO-05 : Format du X-Reauth-Token (header exact) confirmé dans les tests mais pas dans la spec.

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

Justification

6 divergences majeures identifiées affectant la testabilité et la conformité : - DIV-01, DIV-02, DIV-05 sont bloquantes pour la validation RGPD et la reproductibilité des tests - DIV-03, DIV-04 créent des risques de tests non déterministes - DIV-06 réduit la traçabilité en production

Les 5 zones d'ombre nécessitent clarification avant l'étape 4 (Plan d'implémentation).