Aller au contenu

PD-84 — Review Gate 8 (P1 — ChatGPT / OpenCode)

Date : 2026-02-24 Reviewer : ChatGPT (gpt-5.3-codex) via OpenCode Document focal : PD-84-acceptability.md

Verdict : ACCEPTÉ AVEC RÉSERVES

7 écarts MINEUR identifiés dans l'acceptabilité sont maintenus NON RÉSOLU car les corrections ciblées n'étaient pas demandées (tous classés MINEUR/suggestion dans l'acceptabilité originale).

Suivi des écarts

EC-R1 (MINEUR) — AddDocumentDto inline

  • Statut : NON RÉSOLU
  • Analyse : AddDocumentDto déclaré inline dans folder-document.controller.ts au lieu d'un fichier DTO séparé.
  • Impact : Structurel uniquement, pas de risque fonctionnel.

EC-R2 (MINEUR) — hashToInt() dupliqué

  • Statut : NON RÉSOLU
  • Analyse : Duplication entre folder.service.ts et folder-document.service.ts.
  • Impact : Maintenabilité, dette technique mineure.

EC-R3 (MINEUR / suggestion) — Double requête user

  • Statut : NON RÉSOLU
  • Analyse : FolderController fait findOneOrFail pour le plan, le guard fait déjà un check ownership.
  • Impact : Performance marginale (2 requêtes au lieu d'1 potentiel).

EC-T1 (MINEUR) — Pas de tests e2e HTTP

  • Statut : NON RÉSOLU
  • Analyse : Tests unitaires couvrent les controllers, pas de tests HTTP intégration.
  • Impact : Couverture e2e, mitigé par 133 tests unitaires + 92.52% coverage.

EC-T2 (MINEUR / suggestion) — Pattern double-call dans tests

  • Statut : NON RÉSOLU
  • Analyse : TC-02 et TC-07 appellent le service 2 fois (rejects.toThrow + catch-inspect).
  • Impact : Verbosité des tests uniquement.

EC-S1 (MINEUR) — UUID loggés dans FolderOwnerGuard

  • Statut : NON RÉSOLU
  • Analyse : userId et folderId dans les warn logs.
  • Impact : RGPD potentiel si UUID = PII. Mitigé par le fait que les logs de dev sont distincts de la production.

EC-S2 (MINEUR / suggestion) — findOneOrFail sans custom exception

  • Statut : NON RÉSOLU
  • Analyse : ExportController utilise findOneOrFail qui pourrait leaker une exception TypeORM brute.
  • Impact : Edge case extrêmement improbable (user supprimé entre auth JWT et DB call).

Conclusion

  • 0 écart BLOQUANT
  • 0 écart MAJEUR
  • 7 écarts MINEUR (tous documentés dans l'acceptabilité, classés comme suggestions ou dette technique mineure)
  • Aucun écart de conformité, de sécurité exploitable, ou de couverture de test bloquant