PD-239 — 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¶
| Document | Étape | Auteur |
|---|---|---|
| PD-239-specification.md | 1 | ChatGPT |
| PD-239-tests.md | 2 | ChatGPT |
| PD-239-specification-review.md | 3 (Phase 1) | ChatGPT |
2. Convergences¶
CONV-01 — Alignement INV ↔ CA ↔ Tests¶
- Les 9 invariants (INV-239-01 à INV-239-09) sont tous référencés dans la matrice de couverture des tests.
- Les 8 critères d'acceptation (CA-239-01 à CA-239-08) ont chacun au moins un test associé.
- La review confirme cet alignement structurel.
CONV-02 — Cas d'erreur contractuels¶
- Les 6 codes d'erreur définis dans la spec (ERR-239-*) sont couverts par des tests dédiés :
- ERR-239-UNAUTHENTICATED → T-239-ERR-01
- ERR-239-UNAUTHORIZED-REAUTH → T-239-ERR-02
- ERR-239-PWD-INVALID → T-239-ERR-03
- ERR-239-PWD-POLICY → T-239-ERR-04
- ERR-239-SESSION-INVALIDATION-FAILED → T-239-ERR-06
- ERR-239-INTERNAL → (non couvert — voir DIV-01)
CONV-03 — Hors périmètre RGPD¶
- La spec (INV-239-09, CA-239-08) et les tests (T-239-INV-02) s'accordent sur le caractère NON TESTABLE de la conformité RGPD dans le périmètre PD-239.
CONV-04 — Format d'erreur¶
- La spec (INV-239-06) et les tests (T-239-ERR-05) convergent sur le format
{error: "ERR-239-*", message: "..."}.
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
DIV-01 — ERR-239-INTERNAL non testé¶
- Source A (PD-239-specification.md §6) : Définit ERR-239-INTERNAL comme cas d'erreur contractuel.
- Source B (PD-239-tests.md §2) : Aucun test ne couvre ERR-239-INTERNAL dans la matrice.
- Impact : Couverture incomplète. Un cas d'erreur contractuel peut passer en production sans preuve de conformité.
- Gravité : Mineur (le comportement en erreur interne est standard, mais le contrat n'est pas prouvé)
DIV-02 — Payload non spécifié¶
- Source A (PD-239-specification.md §5 F-239-01) : Mentionne "ancien mot de passe et nouveau mot de passe" sans nommer les champs.
- Source B (PD-239-tests.md) : Les tests supposent implicitement des champs mais ne les nomment pas.
- Source C (PD-239-specification-review.md ECT-01) : Signale l'absence de contrat payload (noms des champs, présence/absence de
confirmation). - Impact : Implémentations peuvent diverger. Risque de rejet lors des tests d'intégration PD-106.
- Gravité : Majeur
DIV-03 — Observable délégation Keycloak non défini¶
- Source A (PD-239-specification.md INV-239-08) : "L'endpoint DOIT déléguer le changement effectif à Keycloak Admin API."
- Source B (PD-239-tests.md T-239-INV-01) : "Une trace d'appel sortant vers Keycloak Admin API est observable."
- Source C (PD-239-specification-review.md ECT-03) : Signale que la "surface d'observabilité" n'est pas définie.
- Impact : Le test T-239-INV-01 n'est pas déterministe sans définir ce qu'est une "trace observable" (logs ? métriques ? audit ?).
- Gravité : Majeur
4. Zones d'ombre¶
ZO-01 — Latence d'invalidation des sessions¶
- Constat : INV-239-05 exige l'invalidation de "toutes les sessions" mais aucun délai de propagation n'est contractualisé.
- Risque : Un token émis juste avant le changement peut rester valide pendant une fenêtre non bornée.
- Référence : ECT-05 de la review.
ZO-02 — Contenu du message d'erreur¶
- Constat : INV-239-07 exige un "motif exploitable" mais ne borne pas le contenu admissible.
- Risque : Fuite d'information (distinction trop précise entre types d'erreur).
- Référence : ECT-06 de la review.
ZO-03 — Comportement en cas d'échec partiel¶
- Constat : ERR-239-SESSION-INVALIDATION-FAILED indique que "le changement n'est pas annulé" mais ne précise pas le statut HTTP ni l'état final attendu côté client.
- Référence : ECT-02 de la review.
5. Synthèse des écarts¶
| ID | Type | Source | Gravité |
|---|---|---|---|
| DIV-01 | Divergence Spec↔Tests | Review ECT-04 | Mineur |
| DIV-02 | Ambiguïté payload | Review ECT-01 | Majeur |
| DIV-03 | Non testable | Review ECT-03 | Majeur |
| ZO-01 | Zone d'ombre | Review ECT-05 | Majeur |
| ZO-02 | Zone d'ombre | Review ECT-06 | Mineur |
| ZO-03 | Zone d'ombre | Review ECT-02 | Mineur |
Écarts Majeurs : 3 Écarts Mineurs : 3
6. 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 : 3 écarts de gravité Majeure identifiés (DIV-02, DIV-03, ZO-01). Ces écarts concernent la testabilité et la précision du contrat. Ils doivent être résolus avant implémentation pour garantir la conformité.