Aller au contenu

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