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 avant implémentation.
1. Documents de référence
| Document | Étape | Statut |
| PD-241-besoin.md | 0 | ✓ Présent |
| PD-241-specification.md | 1 | ✓ Présent |
| PD-241-tests.md | 2 | ✓ Présent |
| PD-241-specification-review.md | 3.1 | ✓ Présent |
| PD-241-confrontation-step3-v1.md | 3.2 | ✓ Présent |
2. Hypothèses déclarées
Extraites de PD-241-specification.md §9 :
| ID | Hypothèse | Impact si faux |
| H-241-01 | Keycloak Admin API permet l'invalidation des sessions | CA-241-02 non atteignable |
| H-241-02 | Le backend reçoit le refresh token lorsque présent | CA-241-03 non atteignable |
| H-241-03 | L'artefact PD-106 prouve l'effacement local | CA-241-06 non démontrable côté backend |
3.1 Invariants ↔ Tests
| Invariant | Test(s) couvrant | Couvert ? |
| INV-241-01 : JWT requis | TC-ERR-01 | ✓ |
| INV-241-02 : Invalidation session Keycloak | TC-NOM-01 | ✓ |
| INV-241-03 : Invalidation refresh token | TC-NOM-02 | ⚠️ Partiel (DIV-01) |
| INV-241-04 : Format erreur | TC-ERR-03 | ✓ |
| INV-241-05 : Erreur explicite échec Keycloak | TC-ERR-02 | ⚠️ Partiel (DIV-03) |
| INV-241-06 : Effacement local (hors périmètre) | N/A | N/A |
3.2 Critères d'acceptation ↔ Observables
| Critère | Observable | Vérifié ? |
| CA-241-01 : Refus sans JWT | Réponse erreur auth | ✓ |
| CA-241-02 : Session Keycloak invalidée | Réutilisation refusée | ✓ |
| CA-241-03 : Refresh token invalidé | Réutilisation refusée | ⚠️ Mécanisme non défini |
| CA-241-04 : Erreur explicite échec Keycloak | Code ERR-241-LOGOUT-FAILED | ⚠️ Statut HTTP non défini |
| CA-241-05 : Format erreur respecté | Inspection JSON | ✓ |
| CA-241-06 : Effacement local (hors périmètre) | Preuve PD-106 | N/A |
4. Points ouverts (nécessitant clarification)
Écarts identifiés par la review ChatGPT (Majeurs)
| ID | Type | Description | Gravité |
| ECT-01 | Ambiguïté | Mécanisme de transmission du refresh token (header/body) non défini | Majeur |
| ECT-02 | Ambiguïté | Alignement codes erreur ERR-106 ↔ ERR-241 non clarifié | Majeur |
| ECT-03 | Incohérence | Statut HTTP pour ERR-241-LOGOUT-FAILED non défini | Majeur |
| ECT-04 | Incohérence Spec↔Tests | TC-NEG-03 suppose idempotence non spécifiée | Mineur |
| ECT-05 | Incohérence Spec↔Tests | TC-NEG-02 suppose code auth/invalid_token non défini | Mineur |
Points à clarifier (spec §10)
- Mécanisme exact de transmission du refresh token
- Alignement ERR-106-LOGOUT-FAILED ↔ ERR-241-LOGOUT-FAILED
- Statut HTTP attendu pour ERR-241-LOGOUT-FAILED
5. Rapport de confrontation
- Voir : PD-241-confrontation-step3-v1.md
- 5 divergences identifiées (DIV-01 à DIV-05)
- 4 zones d'ombre (ZO-01 à ZO-04)
- Recommandation confrontation : Rework nécessaire
6. Synthèse des écarts bloquants
| ID | Source | Description | Résolution requise |
| ECT-01 / DIV-01 | Spec §10 + Review | Transmission refresh token non définie | Clarifier dans spec |
| ECT-02 / DIV-02 | Spec §10 + Review | Alignement ERR-106 ↔ ERR-241 | Décision explicite |
| ECT-03 / DIV-03 | Spec §10 + Review | Statut HTTP non défini | Ajouter dans spec |
7. Recommandation pré-verdict
Dossier assemblé par Claude Orchestrateur — 2026-02-07