PD-238 — Confrontation Gate 8 (CLOSURE)¶
Date : 2026-02-06 Gate : CLOSURE Version : v1
1. Convergences¶
| Point | Documents concordants | Observation |
|---|---|---|
| Verdict global GO AVEC RÉSERVES | Spécification, Acceptabilité, Review | Les trois documents convergent vers un verdict GO AVEC RÉSERVES. Aucun ne recommande un GO franc ni un NO-GO. |
| ECT-01 (rate limiter fail-open) classifié MAJEUR | Acceptabilité, Review | Les deux documents s'accordent sur la classification MAJEUR et sur le fait que cet écart touche directement INV-238-11. |
| ECT-02 (ClassSerializerInterceptor absent) classifié MAJEUR | Acceptabilité, Review | Les deux documents s'accordent sur la classification MAJEUR et identifient un risque de fuite de données DTOs. |
| ECT-03 (tests PD-27 en échec) classifié MAJEUR | Acceptabilité, Review | Les deux documents s'accordent sur la classification MAJEUR, bien que la review nuance : "acceptable si requalification tracée". |
| INV-238-09, INV-238-10, INV-238-02 conformes | Acceptabilité, Review | Accord explicite sur la conformité de ces trois invariants (secrets non loggés, pas de stockage local, pas d'accès croisé). |
| Aucun écart BLOQUANT | Acceptabilité, Review | Les deux documents constatent l'absence d'écart bloquant. |
| INV-238-14 hors périmètre PD-238 | Spécification, Acceptabilité | La preuve RGPD/audit Keycloak admin est explicitement renvoyée à un artefact externe. |
| 245/247 tests PASS | Acceptabilité, Review | Le décompte de tests est identique dans les deux documents. |
| ECT-04, ECT-06 classifiés MINEUR | Acceptabilité, Review | Convergence sur la classification et la priorité basse de ces deux écarts. |
2. Divergences¶
| ID | Point de divergence | Document A | Document B | Impact |
|---|---|---|---|---|
| DIV-01 | Classification de ECT-05 (rate limit absent sur /auth/reauth) | Acceptabilité : classifié MINEUR (OBS-02, §4.3) | Review : "MINEUR→MAJEUR si la politique globale exige rate limit sur /auth/reauth. À clarifier." (§2, ECT-05) | La classification finale de cet écart est indéterminée. Si ECT-05 est MAJEUR, cela ajoute un 4e écart majeur et renforce les réserves du verdict. La spécification (INV-238-11) mentionne "les endpoints MFA" mais ne cite pas explicitement /auth/reauth, laissant la question ouverte. |
| DIV-02 | Impact de ECT-02 sur les invariants | Acceptabilité : "risque indirect sur INV-238-09" sans qualification d'impact sur les endpoints de retour de données | Review : "Les endpoints MFA retournent des DTOs sensibles (secret/recoveryCodes)" — rattache explicitement le risque aux données sensibles et à INV-238-09 | La review aggrave l'analyse d'impact en liant ECT-02 directement aux DTOs contenant les secrets TOTP et recovery codes. L'acceptabilité reste plus vague sur la nature du risque. |
| DIV-03 | Preuve d'absence du ClassSerializerInterceptor | Acceptabilité : affirme l'absence comme un fait (VUL-02, §2.2) | Review : "le rapport ne prouve pas l'absence effective d'intercepteur (pas de preuve)" (§1, ECT-02) | La review conteste la certitude de l'acceptabilité. L'absence réelle n'est ni prouvée ni réfutée par un artefact vérifiable. |
| DIV-04 | Conditions de passage à la gate CLOSURE | Acceptabilité : liste 3 conditions (§5) dont "Correction des écarts majeurs ECT-01 et ECT-02 recommandée" (pas exigée) | Review : "les corrections sont identifiées mais non prouvées ; l'acceptation complète est prématurée" (§4) | L'acceptabilité utilise "recommandée", la review utilise "prématurée" : nuance entre recommandation optionnelle et blocage effectif. Le niveau d'exigence pour lever les réserves diverge. |
| DIV-05 | Traitement de ECT-03 | Acceptabilité : "Mettre à jour mfa-invariants.spec.ts pour PD-238" — action technique simple (§4.2) | Review : "la mise à jour des tests PD-27 doit être tracée contractuellement (changement de périmètre ou exception documentée)" (§1, ECT-03) | L'acceptabilité traite ECT-03 comme une correction technique. La review exige une décision de gouvernance formelle. Le niveau de formalisme requis diverge. |
| DIV-06 | Invariants vérifiés explicitement | Spécification : 15 invariants définis (INV-238-01 à INV-238-15) | Acceptabilité : seuls 3 invariants vérifiés explicitement (INV-238-09, INV-238-10, INV-238-02, §2.1) | 12 invariants ne sont pas explicitement confirmés dans la matrice de conformité de l'acceptabilité. Certains sont couverts indirectement (par les tests 245/247), mais aucune traçabilité invariant↔test n'est fournie. |
3. Zones d'ombre¶
| ID | Question non résolue | Documents concernés | Impact potentiel |
|---|---|---|---|
| ZO-01 | Traçabilité invariants ↔ tests : aucun document ne fournit la matrice de correspondance entre les 15 invariants (INV-238-01 à INV-238-15) et les 245 tests passants. | Spécification, Acceptabilité | Impossible de prouver que chaque invariant est couvert par au moins un test. La conformité repose sur une confiance implicite. |
| ZO-02 | Coverage réel sur périmètre PD-238 : l'acceptabilité mentionne "estimation >80%" sans mesure vérifiable. | Acceptabilité | Le seuil de coverage n'est ni prouvé ni réfuté. Le 8% global masque le coverage réel du périmètre. |
| ZO-03 | Statut des reviews ChatGPT (code et tests) : marquées "À exécuter" dans l'acceptabilité (§3.1, §3.2). | Acceptabilité | Les reviews croisées LLM code/tests ne sont pas complétées. La gate CLOSURE est atteinte sans ces livrables prévus au workflow. |
| ZO-04 | Politique de rate limiting sur /auth/reauth : la spécification (INV-238-11) mentionne "les endpoints MFA" mais /auth/reauth est sous /auth/, pas sous /user/mfa/*. | Spécification, Acceptabilité, Review | Le périmètre exact du rate limiting est ambigu. ECT-05 pourrait être non-pertinent (hors scope) ou critique (endpoint sensible non protégé). |
| ZO-05 | Comportement attendu du fallback rate limiter (ECT-01) : aucun document ne spécifie le quota, la durée TTL, ni le comportement exact du fallback in-memory proposé. | Acceptabilité, Review | L'action corrective est identifiée mais non spécifiée. Le risque de correction insuffisante existe. |
| ZO-06 | Preuves de correction des écarts majeurs : aucun document ne spécifie quels artefacts (tests, captures, configuration) sont requis pour lever les réserves ECT-01, ECT-02, ECT-03. | Acceptabilité, Review | Les critères de levée des réserves ne sont pas définis. Le passage de GO AVEC RÉSERVES à GO reste subjectif. |
| ZO-07 | Conformité des critères d'acceptation CA-238-01 à CA-238-16 : l'acceptabilité ne fournit pas de matrice CA ↔ résultat individuel. | Spécification, Acceptabilité | Impossible de vérifier quels CA sont PASS/FAIL individuellement. |
| ZO-08 | Points à clarifier de la spécification (§10) non résolus : format erreurs Keycloak, délai expiresAt, format configuredAt, politique rotation recovery codes. | Spécification | Ces 4 points restent ouverts. Aucun document de suivi ne les résout. |
| ZO-09 | Statut de OBS-01 (ReauthRequestDto.password sans @Exclude) : identifié dans l'acceptabilité (§2.2) mais absent de la synthèse des écarts (§4). | Acceptabilité | Cet écart semble avoir été omis de la synthèse. Il est lié au risque de fuite du mot de passe dans les réponses/logs. |
| ZO-10 | Impact réel de ECT-06 (logs distinguant USER_NOT_FOUND vs INVALID_PASSWORD) sur la conformité INV-238-13. | Acceptabilité, Review | Les logs permettant l'énumération d'utilisateurs pourraient constituer une violation de INV-238-13 (erreur explicite sans effet partiel silencieux) selon l'interprétation. |
4. Synthèse¶
Les trois documents convergent sur un verdict GO AVEC RÉSERVES et s'accordent sur l'identification de trois écarts majeurs (ECT-01, ECT-02, ECT-03) et trois écarts mineurs (ECT-04, ECT-05, ECT-06).
Six divergences sont identifiées. La plus significative concerne ECT-05 (rate limit sur /auth/reauth) : l'acceptabilité le classe MINEUR tandis que la review suggère une requalification en MAJEUR, sans que la spécification ne tranche la question (le périmètre exact de INV-238-11 étant ambigu sur /auth/reauth). Les autres divergences portent sur le niveau de formalisme requis pour lever les réserves (recommandation vs exigence) et sur la traçabilité des preuves.
Dix zones d'ombre sont constatées. Les plus structurantes pour la gate CLOSURE sont : (1) l'absence de matrice de traçabilité invariants↔tests rendant la conformité invérifiable ; (2) les reviews ChatGPT code/tests non complétées alors qu'elles sont prévues au workflow ; (3) l'absence de critères explicites de levée des réserves ; (4) l'omission de OBS-01 dans la synthèse des écarts.
Le dossier est factuellement incomplet pour une clôture sans réserve, mais les écarts identifiés sont documentés et les actions correctives sont formulées. L'acceptation complète dépendra de la résolution des divergences et des zones d'ombre ci-dessus.