Aller au contenu

PD-30 — Décomposition multi-agents

Vue d'ensemble

Métrique Valeur
Total tâches 8
Agents impliqués 2 (agent-developer, agent-qa-unit-integration)
Fichiers estimés 15
Complexité MEDIUM

Graphe de dépendances

graph TD
    T1[TASK-1: Entity & Service] --> T3[TASK-3: Stores]
    T2[TASK-2: Config TTL] --> T3
    T3 --> T4[TASK-4: Controller]
    T3 --> T5[TASK-5: Invalidation]
    T3 --> T6[TASK-6: Rate Limiting]
    T1 --> T7[TASK-7: Audit]
    T3 --> T7
    T5 --> T7
    T4 --> T8[TASK-8: Tests]
    T5 --> T8
    T6 --> T8
    T7 --> T8

Séquencement d'exécution

Batch Tâches Parallélisables
1 TASK-1, TASK-2 OUI
2 TASK-3 NON (dépend de T1)
3 TASK-4, TASK-5, TASK-6 OUI
4 TASK-7 NON (dépend de T3, T5)
5 TASK-8 NON (dépend de T1-T7)

Tâches détaillées

TASK-1 — Session Entity & Service Core

Attribut Valeur
ID TASK-1
Agent agent-developer
Contract CC-30-01
Dépendances Aucune
Fichiers 6

Fichiers à créer : 1. src/session/entities/session.entity.ts — Interface Session (10 champs) 2. src/session/enums/session-audit-event.enum.ts — Enum partagé (8 événements) 3. src/session/session.service.ts — Service principal (createSession, validateSession) 4. src/session/dto/create-session.dto.ts — DTO création 5. src/session/dto/session-response.dto.ts — DTO réponse 6. src/session/dto/revoke.dto.ts — DTO révocation

Invariants couverts : INV-30-01, INV-30-02, INV-30-03, INV-30-14, INV-30-17


TASK-2 — Configuration TTL par contexte

Attribut Valeur
ID TASK-2
Agent agent-developer
Contract CC-30-02
Dépendances Aucune
Fichiers 2

Fichiers à créer : 1. src/config/session.config.ts — Configuration TTL injectable (4 contextes) 2. src/session/session.module.ts — Module NestJS

Invariants couverts : INV-30-04, INV-30-07


TASK-3 — Session Stores (Redis + Fallback Memory)

Attribut Valeur
ID TASK-3
Agent agent-developer
Contract CC-30-03
Dépendances TASK-1
Fichiers 3

Fichiers à créer : 1. src/session/providers/session-store.interface.ts — Interface commune 2. src/session/providers/redis-session.store.ts — Redis store (TTL natif, pub/sub) 3. src/session/providers/memory-session.store.ts — Fallback in-memory (cleanup batch)

Invariants couverts : INV-30-05, INV-30-06, INV-30-18, INV-30-19

Points d'attention : - Protocole de réconciliation LWW avec timestamps - Protection anti-flapping (cooldown 5s) - Cleanup batch setInterval 30s


TASK-4 — Session Controller & Device Listing

Attribut Valeur
ID TASK-4
Agent agent-developer
Contract CC-30-04
Dépendances TASK-1, TASK-3
Fichiers 2

Fichiers à créer : 1. src/session/session.controller.ts — Controller REST 2. src/session/dto/device-list.dto.ts — DTO liste appareils

Invariants couverts : INV-30-08, INV-30-12


TASK-5 — Invalidation & Event Handlers

Attribut Valeur
ID TASK-5
Agent agent-developer
Contract CC-30-05
Dépendances TASK-3
Fichiers 2

Fichiers à créer/modifier : 1. src/session/session.service.ts (extension) — Méthodes revokeSession, revokeDevice, revokeAll 2. src/session/handlers/session-event.handler.ts — Handlers événements

Invariants couverts : INV-30-09, INV-30-10, INV-30-11, INV-30-13


TASK-6 — Rate Limiting Guard

Attribut Valeur
ID TASK-6
Agent agent-developer
Contract CC-30-06
Dépendances TASK-3
Fichiers 1

Fichiers à créer : 1. src/session/guards/session-rate-limit.guard.ts — Guard dual scope

Invariants couverts : INV-30-15

Points d'attention : - Sliding window Redis sorted sets - Mode dégradé fail-closed avec quotas conservateurs


TASK-7 — Audit Interceptor

Attribut Valeur
ID TASK-7
Agent agent-developer
Contract CC-30-07
Dépendances TASK-1, TASK-3, TASK-5
Fichiers 1

Fichiers à créer : 1. src/session/interceptors/session-audit.interceptor.ts — Interceptor journalisation

Invariants couverts : INV-30-16, INV-30-17


TASK-8 — Tests unitaires et d'intégration

Attribut Valeur
ID TASK-8
Agent agent-qa-unit-integration
Contract CC-30-08
Dépendances TASK-1 à TASK-7
Fichiers 6

Fichiers à créer : 1. src/__tests__/session/session.service.spec.ts 2. src/__tests__/session/session.controller.spec.ts 3. src/__tests__/session/redis-session.store.spec.ts 4. src/__tests__/session/memory-session.store.spec.ts 5. src/__tests__/session/session-rate-limit.guard.spec.ts 6. src/__tests__/session/session-audit.interceptor.spec.ts

Tests couverts : TC-30-001 à TC-30-019

Points d'attention : - Testcontainers pour Redis - Protocole SLA (1000 ops, seuils CI x2)


Résumé fichiers

Catégorie Fichiers
Entities/DTOs 6
Config 2
Providers (Stores) 3
Controller 1
Handlers 1
Guards 1
Interceptors 1
Tests 6
Total 21

Ordre d'exécution final

  1. TASK-1 + TASK-2 (parallèle) → Fondations
  2. TASK-3 → Stores
  3. TASK-4 + TASK-5 + TASK-6 (parallèle) → Features
  4. TASK-7 → Audit
  5. TASK-8 → Tests