- global CLAUDE.md (time tracking via MCP lesstime) - workspace CLAUDE.md (dev_malio inventory) - commands : ticket-writer, push-tickets-lesstime, full-project-review, bump-version - MCP install guide (Code + Desktop) + .mcp.json.example - scripts/install.sh + sync.sh
14 KiB
name, description
| name | description |
|---|---|
| full-project-review | Use when the user asks for a complete project review, code audit, educational review, codebase health check, or intern/junior review. Triggers on words like "review", "audit", "revue", "review de projet", "code quality check". Produces a structured REVIEW.md with prioritized findings and a TICKETS.md with actionable fix tickets. |
Full Project Review
Overview
Audit complet et educatif d'un projet. Produit un REVIEW.md structure couvrant securite, bugs, dead code, incoherences, documentation, frontend, CSS, CI/CD -- avec explications pedagogiques et tableau de priorites. Genere ensuite un TICKETS.md avec des tickets actionnables pour corriger les findings.
Principe : Chaque finding explique le probleme, pourquoi c'est un probleme, et comment le corriger. Pas juste une liste de bugs -- un outil d'apprentissage.
When to Use
- L'utilisateur demande une "review", "audit", "revue de code", "code quality check"
- Review educative pour un junior/stagiaire
- Health check avant mise en production
- Onboarding sur un nouveau projet
Process
digraph review_flow {
rankdir=TB;
"1. Lire CLAUDE.md, AGENTS.md, README" -> "2. Lancer 2 agents en parallele";
"2. Lancer 2 agents en parallele" -> "3. Lire les fichiers critiques identifies";
"3. Lire les fichiers critiques identifies" -> "4. Rediger REVIEW.md structure";
"4. Rediger REVIEW.md structure" -> "5. Generer TICKETS.md";
"5. Generer TICKETS.md" -> "6. Resume au user";
}
Phase 1 -- Comprendre le contexte
REQUIRED: Invoke superpowers:brainstorming if user requirements are unclear (scope of review, educational vs production audit, specific concerns).
Lire dans cet ordre :
CLAUDE.md/AGENTS.md/GEMINI.md-- les regles du projetREADME.md-- ce que le projet pretend etrepackage.json/nuxt.config.ts/pyproject.toml-- stack technique.env.example-- variables d'environnement.gitignore, CI workflows
Phase 2 -- Lancer 2 agents specialises en parallele
REQUIRED: Use superpowers:dispatching-parallel-agents pattern for this phase.
Agent 1 : Exploration profonde (feature-dev:code-explorer)
Prompt :
I need a comprehensive deep-dive review of this entire project.
Explore EVERYTHING and report back with detailed findings. Focus on:
1. **Project structure** -- all directories, file organization
2. **Documentation quality** -- README.md, CLAUDE.md, AGENTS.md, any .md files, comments quality
3. **Configuration files** -- package.json, framework config, tsconfig, .env.example, docker files, CI/CD
4. **Server-side code** -- all backend files (API routes, middleware, plugins, utils, config)
5. **Frontend code** -- pages, components, composables, layouts, entry point
6. **Security practices** -- auth, input validation, env vars handling, shell command safety (execFile vs shell execution)
7. **Code quality** -- dead code, unused imports, inconsistent patterns, error handling
8. **Dependencies** -- deps list, unnecessary deps, version alignment
9. **Git hygiene** -- .gitignore, what is tracked that should not be
Read ALL files you can find. Be thorough. Report raw findings with file paths and line numbers. Do not filter -- I want everything, good and bad.
Agent 2 : Security and code quality (feature-dev:code-reviewer)
Prompt :
Do a thorough security and code quality review of this project.
Focus specifically on:
1. **Security vulnerabilities** -- injection risks (shell, SQL, XSS), auth bypass, hardcoded secrets, SSRF, path traversal
2. **Error handling** -- uncaught exceptions, missing try/catch, error info leaks
3. **API design** -- inconsistent responses, missing validation, HTTP status codes
4. **Authentication** -- middleware bypass possibilities, token handling, cookie security
5. **Input validation** -- all user inputs, query params, body params
6. **Performance issues** -- memory leaks, blocking operations, missing timeouts
7. **TypeScript usage** -- any types, missing types, type safety issues
8. **Frontend issues** -- XSS risks, reactive state issues, missing loading/error states
Read all server files, all components, all pages. Be thorough and report with file paths and line numbers. Report confidence levels for each finding.
Phase 3 -- Lire les fichiers critiques identifies
After agents return, manually read each flagged file to:
- Verify findings (no false positives)
- Understand full context (agents can miss nuances)
- Identify cross-cutting patterns
Phase 4 -- Rediger REVIEW.md
REQUIRED: Use superpowers:verification-before-completion before declaring the review complete -- verify key findings by re-reading the actual code.
Phase 5 -- Generer TICKETS.md
Apres le REVIEW.md, generer un fichier TICKETS.md contenant des tickets actionnables pour corriger les findings. Ce document est destine a un developpeur (junior, stagiaire, ou l'auteur du code) qui va implementer les corrections.
Chaque ticket doit contenir :
- Un identifiant unique (T-001, T-002, ...)
- Un titre court et clair
- Pourquoi -- une phrase expliquant le probleme (sans jargon inutile)
- A faire -- les etapes concretes, avec le code exact avant/apres quand c'est pertinent
- Fichiers -- la liste des fichiers concernes
Regles de redaction des tickets :
- Grouper par priorite (P0, P1, P2, P3) dans le meme ordre que le REVIEW.md
- Un ticket = un changement atomique commitable independamment
- Si un finding du REVIEW.md genere plusieurs changements dans des fichiers differents mais lies (ex: renommer une variable partout), c'est UN seul ticket
- Si un finding est purement informatif et n'a pas d'action concrete, ne pas creer de ticket
- Inclure le code exact a modifier (avant/apres) pour les tickets P0 et P1 -- le developpeur ne doit pas avoir a deviner
- Pour les tickets P2/P3, une description claire suffit si le changement est evident
- Terminer par un tableau recapitulatif avec estimation de temps par priorite
- Suggerer une convention de commit :
fix(T-XXX): description courte
Niveau de langage :
- Ecrire pour un stagiaire BTS SIO 2eme annee (niveau debutant-intermediaire)
- Pas de jargon sans explication : si on dit "injection SQL", expliquer en une phrase ce que ca veut dire
- Les etapes "A faire" doivent etre des instructions pas-a-pas qu'on peut suivre sans deviner
- Montrer le code exact avant/apres (copier-coller ready) pour les P0 et P1
- Si une commande git est necessaire, donner la commande complete
- Privilegier les explications concretes ("si quelqu'un trouve ce lien, il peut poster des messages dans ton Discord") plutot qu'abstraites ("vecteur d'attaque via endpoint non authentifie")
Structure du TICKETS.md :
# Tickets correctifs -- Projet {NOM}
> Liste de taches issues de la review du {DATE}.
> Chaque ticket est autonome : contexte, ce qu'il faut faire, fichiers concernes.
> Commence par les P0, puis P1, etc.
---
## P0 -- Urgents (securite)
### T-001 -- {Titre}
**Pourquoi :** {explication courte}
**A faire :**
1. {etape avec code avant/apres}
2. {etape}
**Fichiers :** `chemin/fichier.sh`
---
## P1 -- Importants
...
## P2 -- Documentation
...
## P3 -- Nice to have
...
## Resume
| Priorite | Tickets | Estimation |
|----------|---------|------------|
| **P0** | T-001 a T-00X | ~Xh |
| **P1** | T-00X a T-00X | ~Xh |
| **P2** | T-00X a T-00X | ~Xh |
| **P3** | T-00X a T-00X | ~Xmin |
| **Total** | XX tickets | ~Xh |
> Commence par T-001 -- c'est le plus urgent.
> Pour chaque ticket, fais un commit dedie avec le numero du ticket dans le message (ex: `fix(T-001): description`).
Structure du REVIEW.md
# Review complete -- Projet {NOM}
> Audit educatif du projet. Chaque point explique le probleme, pourquoi c'est un probleme, et comment le corriger.
> Document genere le {DATE}.
---
## Table des matieres
1. Securite
2. Bugs fonctionnels
3. Code mort et violations des regles projet
4. Incoherences de patterns
5. Documentation et configuration
6. Frontend et UX
7. CSS et design system
8. CI/CD et dependances
9. Bonnes pratiques a retenir
---
## 1. Securite
### 1.1 {GRAVITE} -- {Titre court}
**Fichier :** `chemin/fichier.ts` ligne XX
{Explication du probleme}
{Pourquoi c'est grave}
{Code exemple avant/apres si pertinent}
**Correction :** {Solution concrete}
...
## 9. Bonnes pratiques a retenir
### Ce qui est bien fait dans le projet
{Liste des points positifs -- toujours inclure, la review doit etre equilibree}
### Les regles a graver
{10 regles tirees des findings, numerotees}
---
## Resume par priorite
| Priorite | # | Probleme | Fichier |
|----------|---|----------|---------|
| **P0** | x.x | ... | `fichier:ligne` |
| **P1** | x.x | ... | `fichier:ligne` |
| **P2** | x.x | ... | `fichier:ligne` |
| **P3** | x.x | ... | `fichier:ligne` |
Niveaux de gravite
| Label | Signification | Exemples |
|---|---|---|
| CRITIQUE | Faille de securite exploitable ou bug bloquant | Injection shell, auth bypass, crash en prod |
| IMPORTANT | Bug silencieux ou risque serieux | NaN dans une commande, undefined non garde, dead code trompeur |
| MOYEN | Probleme reel mais impact limite | Fuite de processus, timeout manquant, validation incomplete |
| MINEUR | Polish, coherence, dette technique | Typo CSS, import inconsistant, nom trompeur |
Priorites de resume
| Priorite | Critere |
|---|---|
| P0 | Securite exploitable + bugs qui cassent des fonctionnalites |
| P1 | Bugs silencieux + violations des regles projet + risques operationnels |
| P2 | Incoherences de patterns + documentation cassee + config incorrecte + CI manquante |
| P3 | Dead code mineur + polish frontend + typos CSS |
Checklist des categories a couvrir
Ne pas oublier de verifier chacun de ces points :
Securite
- Execution de commandes :
execFile(safe) vs execution shell (injectable) - Input validation sur tous les parametres utilisateur (query, body, headers)
- Auth : bypass possible ? Token/cookie securise ? Login requis ?
- Secrets dans le code source ou dans la config publique du framework
robots.txt-- ouvert ou ferme pour un outil interne ?- Limite de taille sur les uploads
- Timeout sur les fetch/requetes sortantes
- Informations d'infrastructure dans les fichiers versionnes (hostnames, usernames, chemins absolus)
- Processus enfants nettoyes en cas de deconnexion client
- Chemins hardcodes (
/home/username/...) au lieu de$HOMEou variables d'env
Bugs fonctionnels
- Variables d'environnement non definies ->
undefined,NaN, comportement silencieux - Code qui s'ecrase lui-meme (double assignation)
- Incoherences de nommage entre fichiers (tiret vs underscore, etc.)
- Fonctions dupliquees entre fichiers
- Types manquants ou
anyimplicite
Code mort
- Fonctions declarees mais jamais appelees
- Variables assignees mais jamais lues dans le template/output
- Wrappers d'une ligne qui n'ajoutent rien
- Fallbacks legacy pour des configs obsoletes
- CSS pour des classes qui n'existent plus
computed()sur des constantes
Incoherences
- Imports : melange de patterns pour le meme module
- Auto-imports vs imports explicites dans le meme fichier
- Indentation (2 vs 4 espaces) entre fichiers
- Acces aux env vars : runtimeConfig vs process.env direct vs shims
Documentation
- README : formatage casse, sections manquantes, commandes incoherentes
.env.example: commentaires explicatifs presents ?package.json: nom correct ? champengines?.envcentralise et reference par chemin relatif dans les scripts- Doc SSH : meme cle/user/host dans toutes les commandes d'un bloc
Frontend
- Etat actif sur la navigation (highlight de la page courante)
- HTML duplique au lieu de composants partages
- Texte statique trompeur (ex: "Production" hardcode)
- Imports depuis
server/dans du code client - Null guards sur les donnees dynamiques
CI/CD
- Build et lint AVANT la release
- Version Node alignee entre README, CI, et
package.json - Dependances installees mais non utilisees
Regles de redaction
- Toujours inclure les points positifs -- une review 100% negative est demotivante et inexacte
- Chaque finding = probleme + pourquoi + correction -- educatif, pas juste une liste
- Code exemple quand c'est utile -- avant/apres, pas juste le mauvais code
- Fichier et ligne pour chaque point -- le lecteur doit pouvoir naviguer directement
- Langue du projet -- si le projet est en francais, la review est en francais
- Pas de faux positifs -- lire le fichier avant de signaler, comprendre le contexte
- Tableau de priorites en fin de document -- vue d'ensemble rapide pour le decideur
Skills superpowers a invoquer
| Phase | Skill | Pourquoi |
|---|---|---|
| Phase 1 | superpowers:brainstorming |
Si le scope de la review n'est pas clair |
| Phase 2 | superpowers:dispatching-parallel-agents |
Pour lancer les 2 agents en parallele |
| Phase 4 | superpowers:verification-before-completion |
Verifier les findings avant de livrer |
| Phase 5 | (pas de skill) | Generer TICKETS.md a partir du REVIEW.md |
| Apres | superpowers:requesting-code-review |
Si l'utilisateur demande ensuite de corriger les findings |
Common Mistakes
- Signaler un probleme sans lire le fichier -- les agents peuvent se tromper, toujours verifier
- Oublier les positifs -- demotive l'equipe, semble partial
- Review trop longue sans structure -- le tableau de priorites est essentiel
- Suggestions non-actionables -- "ameliorez la securite" n'aide personne, "remplacez X par Y dans
fichier:ligne" aide - Ignorer AGENTS.md/CLAUDE.md -- le projet a ses propres regles, les findings doivent les referencer