Aller au contenu

PD-240 — Manifest de décomposition

Ce document est produit par l'orchestrateur Claude à l'étape 6a. Il découpe le plan d'implémentation en tâches assignées à des agents spécialisés.

Résumé

  • Story : PD-240
  • Nombre de tâches : 7
  • Agents mobilisés : agent-developer (6 tâches), agent-qa-unit-integration (1 tâche)

Tâche 1 : agent-developer — session-invalidation

  • Agent : agent-developer
  • LLM : claude
  • Code contract : session-invalidation
  • Périmètre fichiers : src/modules/user/services/session-invalidation.service.ts
  • Livrable attendu : Service d'invalidation des sessions Redis (pattern session:{userId}:*)
  • Dépendances : aucune

Tâche 2 : agent-developer — user-data-purge

  • Agent : agent-developer
  • LLM : claude
  • Code contract : user-data-purge
  • Périmètre fichiers : src/modules/user/services/user-data-purge.service.ts
  • Livrable attendu : Service d'anonymisation/purge RGPD (email, name) + création entrée audit
  • Dépendances : aucune

Tâche 3 : agent-developer — keycloak-user

  • Agent : agent-developer
  • LLM : claude
  • Code contract : keycloak-user
  • Périmètre fichiers : src/modules/auth/services/keycloak-user.service.ts
  • Livrable attendu : Service de suppression définitive via Keycloak Admin API
  • Dépendances : aucune

Tâche 4 : agent-developer — audit-controller

  • Agent : agent-developer
  • LLM : claude
  • Code contract : audit-controller
  • Périmètre fichiers : src/modules/admin/controllers/audit.controller.ts
  • Livrable attendu : Endpoint GET /admin/audit/user/{userId} avec réponse { status, purgedAt }
  • Dépendances : aucune

Tâche 5 : agent-developer — delete-account-service

  • Agent : agent-developer
  • LLM : claude
  • Code contract : delete-account-service
  • Périmètre fichiers : src/modules/user/services/delete-account.service.ts
  • Livrable attendu : Service d'orchestration du flux de suppression (sessions → purge → Keycloak)
  • Dépendances : Tâche 1, 2, 3 (services utilisés)

Tâche 6 : agent-developer — delete-account-controller

  • Agent : agent-developer
  • LLM : claude
  • Code contract : delete-account-controller
  • Périmètre fichiers :
  • src/modules/user/controllers/delete-account.controller.ts
  • src/modules/user/dto/delete-account.dto.ts
  • Livrable attendu : Endpoint DELETE /user/account avec guards et validation
  • Dépendances : Tâche 5 (service appelé)

Tâche 7 : agent-qa-unit-integration — delete-account-tests

  • Agent : agent-qa-unit-integration
  • LLM : claude
  • Code contract : delete-account-tests
  • Périmètre fichiers :
  • test/e2e/delete-account.e2e-spec.ts
  • test/unit/delete-account.service.spec.ts
  • Livrable attendu : Tests E2E et unitaires couvrant T-240-*
  • Dépendances : Tâches 1-6 (code à tester)

Ordre d'exécution

Vague 1 (parallélisable)

  • Tâche 1 : session-invalidation
  • Tâche 2 : user-data-purge
  • Tâche 3 : keycloak-user
  • Tâche 4 : audit-controller

Vague 2 (après vague 1)

  • Tâche 5 : delete-account-service

Vague 3 (après vague 2)

  • Tâche 6 : delete-account-controller

Vague 4 (après vague 3)

  • Tâche 7 : delete-account-tests

Diagramme de dépendances

       ┌─────────────────┐
       │   Tâche 1-4     │  ← Vague 1 (parallèle)
       │ Services de base│
       └────────┬────────┘
       ┌─────────────────┐
       │    Tâche 5      │  ← Vague 2
       │ Orchestrateur   │
       └────────┬────────┘
       ┌─────────────────┐
       │    Tâche 6      │  ← Vague 3
       │   Controller    │
       └────────┬────────┘
       ┌─────────────────┐
       │    Tâche 7      │  ← Vague 4
       │     Tests       │
       └─────────────────┘

Notes de l'orchestrateur

  1. Parallélisme maximal : Les tâches 1-4 sont indépendantes et peuvent être exécutées simultanément via 4 instances claude -p parallèles.

  2. Point de synchronisation : La tâche 5 (service d'orchestration) ne peut démarrer qu'après la complétion des tâches 1-4, car elle importe et utilise ces services.

  3. Dépendances existantes : Le plan référence des composants existants (ReauthMiddleware PD-238, JwtAuthGuard PD-205) qui ne nécessitent pas de modification.

  4. Risque identifié : L'intégration Keycloak (tâche 3) dépend de la disponibilité de l'API admin en environnement de dev. Prévoir un mock pour les tests.

  5. Synthèse 6c : Après toutes les tâches, je validerai l'intégration des modules et la cohérence des imports/exports.