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).