Ce dossier est assemblé automatiquement avant la gate PMO CONFORMITY_CHECK. Il constitue la base factuelle sur laquelle le verdict est rendu.
Objectif : Vérifier la complétude et la testabilité de la spécification.
1. Documents de référence
| Document | Étape | Statut |
| PD-240-besoin.md | 0 | ✓ Présent |
| PD-240-specification.md | 1 | ✓ Présent |
| PD-240-tests.md | 2 | ✓ Présent |
| PD-240-specification-review.md | 3 | ✓ Présent |
| PD-240-confrontation-step3-v1.md | 3 | ✓ Présent |
2. Hypothèses déclarées
Extraites de PD-240-specification.md §10 :
| ID | Hypothèse | Validée ? |
| H-240-01 | Keycloak Admin API permet la suppression définitive d'un compte | À vérifier |
| H-240-02 | Le backend peut valider un reauth token PD-238 | ✓ (PD-238 DONE) |
| H-240-03 | Le mécanisme de confirmation renforcée est disponible côté client | ⚠️ Non défini |
| H-240-04 | Le backend peut invalider toutes les sessions utilisateur | À vérifier |
| H-240-05 | L'artefact RGPD est géré hors PD-240 | ✓ Assumé (hors périmètre) |
3.1 Invariants ↔ Tests
| Invariant | Test(s) couvrant | Couvert ? |
| INV-240-01 : JWT obligatoire | T-240-ERR-01 | ✓ |
| INV-240-02 : Reauth token obligatoire | T-240-ERR-02 | ✓ |
| INV-240-03 : Confirmation renforcée obligatoire | T-240-ERR-03 | ⚠️ Format non défini |
| INV-240-04 : Suppression Keycloak irréversible | T-240-NOM-01, T-240-POST-01 | ⚠️ Délai non borné |
| INV-240-05 : Anonymisation/purge RGPD | T-240-NOM-01, T-240-POST-02 | ⚠️ Observable non défini |
| INV-240-06 : Invalidation sessions | T-240-NOM-01, T-240-ERR-05 | ⚠️ Délai non borné |
| INV-240-07 : Compte inutilisable post-suppression | T-240-POST-01 | ✓ |
| INV-240-08 : Format erreur | T-240-ERR-* | ✓ |
| INV-240-09 : Motif exploitable sur refus | T-240-ERR-04/05/06 | ✓ |
| INV-240-10 : Preuve RGPD hors périmètre | T-240-INV-01 | ✓ (NON TESTABLE déclaré) |
3.2 Critères d'acceptation ↔ Tests
| Critère | Test(s) | Vérifié ? |
| CA-240-01 : Refus sans JWT | T-240-ERR-01 | ✓ |
| CA-240-02 : Refus sans reauth | T-240-ERR-02 | ✓ |
| CA-240-03 : Refus confirmation invalide | T-240-ERR-03 | ⚠️ Format non défini |
| CA-240-04 : Compte Keycloak supprimé | T-240-POST-01 | ⚠️ Délai non borné |
| CA-240-05 : Données anonymisées/purgées | T-240-POST-02 | ⚠️ Observable non défini |
| CA-240-06 : Sessions invalidées | T-240-NOM-01 | ⚠️ Délai non borné |
| CA-240-07 : Format erreur respecté | T-240-ERR-* | ✓ |
| CA-240-08 : Motif exploitable | T-240-ERR-04/05/06 | ✓ |
| CA-240-09 : Preuve RGPD externe | T-240-INV-01 | ✓ (NON TESTABLE) |
4. Écarts identifiés (Review + Confrontation)
Écarts bloquants (Majeurs)
| ID | Type | Description | Source |
| ECT-01 | Ambiguïté | Confirmation renforcée : format non défini | Review §1, DIV-01 |
| ECT-02 | Non testable | Anonymisation RGPD : observable absent | Review §3, DIV-02 |
| ECT-03 | Hypothèse dangereuse | Atomicité Keycloak/RGPD non contractualisée | Review §5, DIV-05 |
| ECT-04 | Risque sécu | Sessions persistantes post-suppression possible | Review §6 |
| ECT-05 | Incohérence Spec↔Tests | T-240-POST-02 suppose accès stores non défini | Review §4, DIV-02 |
Écarts mineurs
| ID | Type | Description | Source |
| ECT-06 | Ambiguïté | Délai invalidation sessions non borné | Review §7, DIV-03 |
| ECT-07 | Non testable | Délai propagation Keycloak non défini | Review §8, DIV-04 |
| ECT-08 | Ambiguïté | ERR-240-DELETE-FAILED ne distingue pas Keycloak/purge | Review §9, DIV-06 |
5. Rapport de confrontation
- Voir : PD-240-confrontation-step3-v1.md
- Synthèse : 6 divergences identifiées, rework nécessaire
6. Recommandation pré-verdict
Justification
5 écarts bloquants identifiés affectant : - La testabilité (ECT-01, ECT-02, ECT-05) - La sécurité (ECT-04) - La robustesse (ECT-03)
Corrections requises sur la spécification et/ou les tests avant de poursuivre vers l'étape 4.