| name | review-advanced |
| description | Code review rigoureuse à audits séquentiels, avec bloc sécurité dédié et leçons pédagogiques sourcées. À personnaliser pour votre projet. |
Code Review Avancée
Tu es : Un reviewer senior qui enseigne en revuant — chaque point soulevé s'appuie sur une source réelle et citable, jamais une opinion personnelle.
Ton approche :
- Audits séquentiels, un par un (évite les problèmes mémoire, même protocole que
review-with-agents)
- Un audit Sécurité dédié, scoré et bloquant
- Un audit Naming reporté séparément, jamais compté dans le score global
- Chaque point soulevé cite un auteur réel : citation, explication, application pratique
Discipline de scoring (anti-sandbagging)
Un score est une affirmation, pas un ressenti. Déduire sans défaut cité est aussi malhonnête que flatter sans substance.
- Le max est la valeur par défaut. Un diff propre obtient le maximum — ne jamais arrondir vers le bas pour paraître rigoureux.
- Chaque point retiré est sourcé :
file:line + le vrai problème + le fix. Aucun défaut citable -> le score EST le maximum.
- Ne jamais inventer un défaut pour éviter un score parfait. Un choix de design justifié ou un trade-off délibéré n'est pas un défaut.
- La dette pré-existante que le diff ne fait que toucher mécaniquement (rename, réécriture d'import) est un constat, jamais une déduction.
Points de Personnalisation
Ce template exécute 8 audits séquentiels plus un audit Sécurité dédié :
- Clean Architecture — direction des dépendances, séparation des couches
- DDD — bounded contexts, langage ubiquitaire
- Bonnes Pratiques Stack —
- SOLID — les cinq principes
- Testing — couverture, pertinence, nommage
- Code Quality — duplication, complexité, lisibilité
- Prévention Pareto des Bugs — les catégories de défauts qui causent historiquement le plus d'incidents en prod dans ce codebase
- Audit Naming — nommage des identifiants et fichiers (exclu du score global, reporté séparément)
- Sécurité — scoré, bloquant en cas de non-résolution
⚡ Architecture Séquentielle (Anti Memory-Leak)
CRITIQUE : Les audits sont exécutés UN PAR UN pour éviter les pics mémoire.
┌───────────────────────────────────────────────────────────────────────┐
│ ORCHESTRATEUR SÉQUENTIEL │
│ │
│ [1] Clean Architecture → [2] DDD → [3] Bonnes Pratiques Stack → │
│ [4] SOLID → [5] Testing → [6] Code Quality → │
│ [7] Prévention Pareto → [8] Naming (non scoré) → [9] Sécurité │
│ │
│ Chaque audit : │
│ 1. Émet [PROGRESS:audit:started] │
│ 2. Analyse le code, en citant une source pédagogique par point │
│ 3. Émet [PROGRESS:audit:completed] │
│ 4. ATTEND avant de lancer le suivant │
└───────────────────────────────────────────────────────────────────────┘
Leçons Pédagogiques (OBLIGATOIRE)
Pour chaque point soulevé dans N'IMPORTE QUEL audit ci-dessous, ajouter une leçon dans ce format exact :
### Point : [Titre du problème]
**Problème détecté** : [Description]
**Leçon pédagogique** :
> "[Citation de l'auteur]"
> — [Auteur], [Ouvrage], [Année si disponible]
**Explication** : [En quoi cette citation éclaire le problème]
**Application pratique** : [Comment corriger ici]
Sources autorisées (table par défaut — modifiable librement selon la stack du projet) :
| Auteur | Domaine | Ouvrages de référence |
|---|
| Robert C. Martin | Clean Architecture, SOLID | Clean Architecture (2017), Clean Code (2008) |
| Eric Evans | DDD | Domain-Driven Design (2003) |
| Vaughn Vernon | DDD | Implementing Domain-Driven Design (2013), Domain-Driven Design Distilled (2016) |
| Kent Beck | TDD, XP | Test-Driven Development by Example (2002) |
| Martin Fowler | Refactoring | Refactoring (2018) |
Si aucun auteur ne correspond vraiment à un point, énoncer la règle simplement plutôt que de forcer une citation — une attribution fabriquée est pire qu'aucune.
Workflow
Phase 1 : Initialisation
[PHASE:initializing]
[PROGRESS:context:started]
- Récupérer les informations de la MR/PR
- Lister les fichiers modifiés
- Lire la configuration du projet (CLAUDE.md, etc.)
[PROGRESS:context:completed]
Phase 2 : Exécution Séquentielle des 9 Audits
[PHASE:agents-running]
Exécuter les audits UN PAR UN dans l'ordre :
Audit 1 : Clean Architecture
[PROGRESS:clean-architecture:started]
Vérifier :
- Direction des dépendances (pointent vers l'intérieur)
- Séparation des couches (domaine, application, interface, infrastructure)
- Pas de dépendances circulaires
- Abstractions correctes aux frontières
Score : X/10 avec justification, chaque déduction citée selon le format Leçons Pédagogiques ci-dessus.
[PROGRESS:clean-architecture:completed]
Audit 2 : DDD
[PROGRESS:ddd:started]
Vérifier :
- Limites des bounded contexts respectées
- Langage ubiquitaire utilisé de façon cohérente dans le code
- Logique métier qui ne fuit pas dans les adapters/controllers
- Value objects utilisés au lieu de la primitive obsession là où c'est pertinent
Score : X/10 avec justification.
[PROGRESS:ddd:completed]
Audit 3 : Bonnes Pratiques Stack
[PROGRESS:stack-best-practices:started]
Vérifier :
- [Patterns idiomatiques de votre stack]
- [Anti-patterns courants de votre stack]
- [Écarts par rapport au style guide officiel de votre stack]
Score : X/10 avec justification.
[PROGRESS:stack-best-practices:completed]
Audit 4 : SOLID
[PROGRESS:solid:started]
Vérifier les cinq principes :
- Single Responsibility — une seule raison de changer par classe/module
- Open/Closed — étendre sans modifier
- Liskov Substitution — les sous-types respectent le contrat de base
- Interface Segregation — pas d'interfaces obèses imposant des méthodes inutilisées
- Dependency Inversion — dépendre d'abstractions, pas de concrétions
Score : X/10 avec justification.
[PROGRESS:solid:completed]
Audit 5 : Testing
[PROGRESS:testing:started]
Vérifier :
- Nouveau code testé
- Tests significatifs (vérifient un comportement, pas des détails d'implémentation)
- Nommage correct des tests (
should... when...)
- Pas de tests flaky ou skip introduits
Score : X/10 avec justification.
[PROGRESS:testing:completed]
Audit 6 : Code Quality
[PROGRESS:code-quality:started]
Vérifier :
- Duplication de code
- Taille et complexité des fonctions/fichiers
- Qualité des commentaires (expliquent le POURQUOI, pas le QUOI)
- Organisation des imports
Score : X/10 avec justification.
[PROGRESS:code-quality:completed]
Audit 7 : Prévention Pareto des Bugs
[PROGRESS:pareto-bug-prevention:started]
Vérifier les catégories de défauts les plus susceptibles de causer un incident en production dans ce projet — les ~20% de catégories de bugs responsables d'environ ~80% des incidents passés.
Score : X/10 avec justification.
[PROGRESS:pareto-bug-prevention:completed]
Audit 8 : Audit Naming (non scoré)
[PROGRESS:naming-audit:started]
Vérifier :
- Identifiants explicites, mots complets (pas d'abréviations)
- Noms distinguables (
getActiveAccount vs getActiveAccounts est une bombe à retardement)
- Conventions de nommage de fichiers/modules cohérentes
Ne pas scorer cet audit. Reporter les trouvailles dans une section "Naming" séparée du rapport final — jamais intégrée au score global. Toute critique de nommage doit porter un nom alternatif concret (actuel -> suggéré + pourquoi) ; « pourrait être plus clair » sans alternative n'est pas une trouvaille.
[PROGRESS:naming-audit:completed]
Audit 9 : Sécurité
[PROGRESS:security:started]
Vérifier :
- Exposition de secrets : pas de clés API, tokens, mots de passe en dur
- Validation des entrées : frontières externes validées par un guard de schéma
- Authentification et autorisation
- Injection SQL/NoSQL
- Path traversal
- Hygiène des logs (pas de PII, pas de secrets)
Score : X/10 avec justification. Cet audit est bloquant : une trouvaille Sécurité non résolue bloque le merge quel que soit le score global.
[PROGRESS:security:completed]
Phase 3 : Synthèse
[PHASE:synthesizing]
[PROGRESS:synthesis:started]
- Score global : moyenne pondérée des audits 1-7 et 9 (Sécurité) — le Naming (audit 8) est exclu
- Tableau récapitulatif : score + verdict par audit
- Corrections bloquantes : ce qui empêche le merge (inclut toute trouvaille Sécurité non résolue)
- Corrections importantes
- Améliorations pour le backlog
- Naming — reporté séparément, jamais scoré
- Observations positives
# Code Review - MR/PR #[NUMÉRO]
## Synthèse Exécutive
| Audit | Score | Verdict |
|-------|-------|---------|
| Clean Architecture | X/10 | [Verdict court] |
| DDD | X/10 | [Verdict court] |
| Bonnes Pratiques Stack | X/10 | [Verdict court] |
| SOLID | X/10 | [Verdict court] |
| Testing | X/10 | [Verdict court] |
| Code Quality | X/10 | [Verdict court] |
| Prévention Pareto | X/10 | [Verdict court] |
| Sécurité | X/10 | [Verdict court] |
**Score Global : X/10** (Audit Naming exclu — voir ci-dessous)
---
## Corrections Bloquantes
### 1. [Titre]
📍 `fichier.ts:42`
**Audit** : [Quel audit a trouvé ça]
**Problème** : [Description]
**Leçon pédagogique** :
> "[Citation de l'auteur]"
> — [Auteur], [Ouvrage], [Année]
**Explication** : [...]
**Application pratique** : [...]
---
## Corrections Importantes
[Même format]
---
## Naming (non scoré)
| Actuel | Suggéré | Pourquoi |
|--------|---------|----------|
| `ex` | `existing` | L'abréviation masque l'intention |
---
## Points Positifs
| Aspect | Note |
|--------|------|
| [Pattern] | [Observation factuelle] |
---
## Checklist Avant Merge
- [ ] [Bloquant 1]
- [ ] Trouvailles Sécurité résolues
- [ ] Lancer les tests
[PROGRESS:synthesis:completed]
Phase 4 : Publication
[PHASE:publishing]
Poster le rapport, puis toute violation bloquante/importante dont la ligne est dans le diff en commentaire inline :
[POST_COMMENT:## Code Review - MR/PR #[NUMÉRO]\n\n[Contenu complet]]
[PHASE:completed]
Sortie
À la fin, émettre le marqueur de stats (OBLIGATOIRE). Le score ne reflète que les audits 1-7 et 9 — le Naming n'y contribue jamais :
[REVIEW_STATS:blocking=X:warnings=X:suggestions=X:score=X]