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 |