Aller au contenu

PD-84 — Décomposition en tâches agents

Story : PD-84 — Encadrement contractuel de l'offre gratuite B2C mineurs Version : 1.0.0 Date : 2026-02-24 Source : PD-84-plan.md v1.1.0 + PD-84-code-contracts.yaml v1.1.0


Manifest des tâches

Tâche Agent Module (code contract) Description Fichiers produits Dépend de
T1 agent-developer freemium-entities Entités TypeORM, enums (PlanType, FolderStatus, FolderCategory, AccountRole), migration PostgreSQL src/modules/freemium/entities/**, src/modules/freemium/enums/**, src/database/migrations/*PD84*, scripts/check-env-production.sh []
T2 agent-developer freemium-dto DTOs de validation (CreateFolderDto, AddDocumentDto, ChangePlanDto) et sérialisation (FolderResponseDto, CapabilityResponseDto, FreemiumErrorResponse) src/modules/freemium/dto/** [T1]
T3 agent-developer freemium-exceptions Classe FreemiumException, type FreemiumErrorCode, mapping HTTP src/modules/freemium/exceptions/** []
T4 agent-developer audit-extension Extension AuditActionType avec 5 nouveaux types PD-84 src/modules/audit/types/audit-action.types.ts []
T5 agent-developer freemium-guards QuotaGuard, FolderOwnerGuard, PlanStubGuard src/modules/freemium/guards/** [T1, T3]
T6 agent-developer freemium-services FolderService, FolderDocumentService, CapabilityService, PlanService src/modules/freemium/services/** [T1, T2, T3, T4, T5]
T7 agent-developer freemium-controllers FolderController, FolderDocumentController, ExportController, CapabilityController, PlanController src/modules/freemium/controllers/** [T2, T5, T6]
T8 agent-developer freemium-module FreemiumModule NestJS + config schema + freemium.config.ts src/modules/freemium/freemium.module.ts, src/config/config.schema.ts, src/config/freemium.config.ts [T1, T4, T5, T6, T7]
T9 agent-developer freemium-tests Tests unitaires et d'intégration (TC-01 à TC-19, TC-LIM-01/02/03/04, TC-SLA-01, TC-SEC-01 à 05) test/unit/modules/freemium/**, test/integration/modules/freemium/** [T1, T2, T3, T4, T5, T6, T7, T8]

Matrice des dépendances

Tâche Produit Consomme Dépend de
T1 ProbatoryFolder entity, PlanType, FolderStatus, FolderCategory, AccountRole enums, migration - []
T2 CreateFolderDto, AddDocumentDto, ChangePlanDto, FolderResponseDto, CapabilityResponseDto, FreemiumErrorResponse PlanType, FolderStatus, FolderCategory (enums T1) [T1]
T3 FreemiumException, FreemiumErrorCode - []
T4 AuditActionType (extension 5 types) - []
T5 QuotaGuard, FolderOwnerGuard, PlanStubGuard ProbatoryFolder entity (T1), FreemiumException (T3) [T1, T3]
T6 FolderService, FolderDocumentService, CapabilityService, PlanService Entity (T1), DTOs (T2), Exceptions (T3), AuditActionType (T4), Guards (T5) [T1, T2, T3, T4, T5]
T7 Controllers (5) DTOs (T2), Guards (T5), Services (T6) [T2, T5, T6]
T8 FreemiumModule, config Entity (T1), AuditActionType (T4), Guards (T5), Services (T6), Controllers (T7) [T1, T4, T5, T6, T7]
T9 Tests (unit + integration) Tout (T1-T8) [T1, T2, T3, T4, T5, T6, T7, T8]

Calcul des niveaux de parallélisation

Niveau 0 : [T1, T3, T4]           ← Exécution parallèle (aucune dépendance)
Niveau 1 : [T2, T5]               ← Attend niveau 0 (T1 pour T2, T1+T3 pour T5)
Niveau 2 : [T6]                   ← Attend niveau 1 (T1+T2+T3+T4+T5)
Niveau 3 : [T7]                   ← Attend niveau 2 (T2+T5+T6)
Niveau 4 : [T8]                   ← Attend niveau 3 (T1+T4+T5+T6+T7)
Niveau 5 : [T9]                   ← Attend niveau 4 (tout)

Stratégie d'exécution

parallelization:
  strategy: sequential
  reason: >
    Single agent (agent-developer) pour tous les modules. La parallélisation par niveaux
    apporterait de la complexité git sans bénéfice (un seul type d'agent, pas de cross-validation
    inter-agents à ce stade). Exécution séquentielle T1→T2→T3→T4→T5→T6→T7→T8→T9.
  optimized_order:
    - T1   # Entités + enums + migration (fondation)
    - T3   # Exceptions (indépendant, petit)
    - T4   # Audit extension (indépendant, petit)
    - T2   # DTOs (dépend T1)
    - T5   # Guards (dépend T1, T3)
    - T6   # Services (dépend T1-T5)
    - T7   # Controllers (dépend T2, T5, T6)
    - T8   # Module NestJS + config (dépend T1-T7)
    - T9   # Tests (dépend T1-T8)
  estimated_total: "4-6h"

Checklist couverture

Code Contract Tâche Couvert
freemium-entities T1
freemium-dto T2
freemium-exceptions T3
freemium-services T6
freemium-controllers T7
freemium-guards T5
freemium-module T8
audit-extension T4
freemium-tests T9

9/9 modules couverts. Aucun code contract orphelin.


Decision trace

Décision Justification
Sequential vs by_level Un seul agent-developer — paralléliser ajouterait de la complexité git sans bénéfice de temps
T1 en premier Entités = fondation (types, enums), tout en dépend
T3/T4 avant T2 Indépendants, petits modules, permettent d'avancer vite
T9 en dernier Tests nécessitent tout le code pour les imports
Pas d'agent-adversarial Review sécurité couverte en étape 7 (acceptabilité), pas en étape 6