Aller au contenu

PD-240 — Dossier de conformité (Étape 5 v2)

Itération 2 — Écarts v1 corrigés

Type de gate : AMBIGUITY

1. Documents de référence

Document Étape Statut
PD-240-besoin.md 0 ✓ Présent
PD-240-specification.md 1 ✓ Présent (v4 — corrigé)
PD-240-tests.md 2 ✓ Présent (v3)
PD-240-plan.md 4 ✓ Présent
PD-240-code-contracts.yaml 4 ✓ Présent (v2 — corrigé)
PD-240-plan-review-v2.md 5 ✓ Présent
PD-240-confrontation-step5-v2.md 5 ✓ Présent

2. Historique des corrections

Itération Écarts bloquants Corrigés Persistants
v1 1 (DIV-01) 0 1
v2 1 1 0

Détail des corrections v2

Écart Correction appliquée
DIV-01 Spec §4 : DELETEGET /admin/audit/user/{userId}
DIV-02 Code contract : purgedAt obligatoire si status=purged
DIV-03 Spec §8 : état dégradé contractualisé explicitement

3. Preuves de conformité

3.1 Invariants ↔ Mécanismes Plan

Invariant Mécanisme Plan Couvert ?
INV-240-01 JwtAuthGuard sur route
INV-240-02 ReauthMiddleware (PD-238)
INV-240-03 Validation body confirm === "DELETE_MY_ACCOUNT"
INV-240-04 Keycloak Admin API DELETE
INV-240-05 PostgreSQL + audit entry { status, purgedAt } + endpoint admin
INV-240-06 Redis DEL avant suppression Keycloak
INV-240-07 Combinaison INV-240-04 + INV-240-06
INV-240-08 ExceptionFilter avec format {error, message}
INV-240-09 Messages d'erreur explicites
INV-240-10 Hors périmètre N/A

3.2 Tests réalisables

Test Réalisable ? Observable
T-240-NOM-01 Réponse succès + sessions invalidées
T-240-POST-01 Échec auth ultérieure
T-240-POST-02 Endpoint admin retourne { status, purgedAt }
T-240-ERR-01 à 06 Codes erreur conformes
T-240-INV-01 N/A Hors périmètre

3.3 Code Contracts ↔ Plan

Module Complétude Cohérence Écarts
delete-account-controller
delete-account-service
session-invalidation
user-data-purge
keycloak-user
audit-controller
delete-account-tests

4. Points mineurs acceptés

Point Justification
Hypothèse "point de non-retour" non formalisée Comportement contractualisé dans spec v4 §8, formalisation optionnelle

5. Rapport de confrontation

  • Voir : PD-240-confrontation-step5-v2.md
  • Synthèse : 3 faux positifs identifiés, 1 point mineur résiduel accepté

Les écarts MAJEUR signalés par ChatGPT v2 sont des faux positifs : - L'état dégradé EST contractualisé (spec v4 §8) - purgedAt EST mentionné (plan §3.2) - L'endpoint DELETE n'est PAS requis (spec v4 = GET)

6. Recommandation pré-verdict

  • GO — conformité vérifiée, aucun point bloquant
  • RESERVE
  • NON_CONFORME
  • ESCALADE

Justification

Tous les écarts bloquants de v1 ont été corrigés : - Spec v4 : cohérence §4/INV-240-05 (GET) - Spec v4 : état dégradé contractualisé (§8) - Code contract v2 : purgedAt obligatoire

Le plan d'implémentation est conforme à la spécification v4 et permet la réalisation de tous les tests définis.

Le workflow peut passer à l'étape 6 (Implémentation).