dev:review

Review qualité complète - PHPStan + Elegant Objects + code review (Phase 6)

8 stars

Best use case

dev:review is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Review qualité complète - PHPStan + Elegant Objects + code review (Phase 6)

Teams using dev:review should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/review/SKILL.md --create-dirs "https://raw.githubusercontent.com/atournayre/claude-marketplace/main/dev/skills/review/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/review/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How dev:review Compares

Feature / Agentdev:reviewStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Review qualité complète - PHPStan + Elegant Objects + code review (Phase 6)

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Objectif

Phase 6 du workflow de développement : review qualité complète du code implémenté.

# Prérequis

⚠️ **Plugin feature-dev requis** pour l'agent `code-reviewer`.

Si non installé :
```
/plugin install feature-dev@claude-code-plugins
```

## Instructions à Exécuter

**IMPORTANT : Exécute ce workflow étape par étape :**

### 1. Vérifier le contexte

- Lis `.claude/data/.dev-workflow-state.json` avec Read
- Extrais les fichiers modifiés et l'état de la phase 5 (code)
- Si phase 5 non complétée, affiche :
  ```
  ❌ La phase d'implémentation (code) n'est pas terminée

  Lance d'abord : /dev:code
  ```
  - Arrête le workflow

### 2. Créer les tâches de review

- Utilise TaskCreate pour chaque tâche de review :

```
TaskCreate #1: Code Review - Simplicité/bugs/conventions (feature-dev)
TaskCreate #2: PHPStan - Résoudre erreurs niveau 9
TaskCreate #3: Elegant Objects - Conformité principes
TaskCreate #4: Consolider - Agréger résultats et décider
TaskCreate #5: Examine - Adversarial review (challenge decisions, edge cases)
```

**Important :**
- Utiliser `activeForm` (ex: "Reviewing code quality", "Résolvant erreurs PHPStan")
- Les 3 premières tâches peuvent se lancer en parallèle
- La tâche #4 dépend des 3 premières (utiliser `addBlockedBy`)

## 3. Lancer les reviews en parallèle

**⚠️ Avant de lancer les agents :** Marquer les 3 tâches en `in_progress` :
- `TaskUpdate` → tâche #1 en `in_progress`
- `TaskUpdate` → tâche #2 en `in_progress`
- `TaskUpdate` → tâche #3 en `in_progress`

### Review 1 : Code Review (feature-dev)

Lancer l'agent `code-reviewer` avec le focus sur :
- Simplicité / DRY / Élégance
- Bugs / Correction fonctionnelle
- Conventions du projet

**Quand terminé :** `TaskUpdate` → tâche #1 en `completed`

### Review 2 : PHPStan

Lancer l'agent `phpstan-error-resolver` (local)

**Quand terminé :** `TaskUpdate` → tâche #2 en `completed`

### Review 3 : Elegant Objects

Lancer l'agent `elegant-objects-reviewer` (local)

**Quand terminé :** `TaskUpdate` → tâche #3 en `completed`

## 4. Consolider les résultats

**🔄 Progression :** `TaskUpdate` → tâche #4 en `in_progress`

Agréger les résultats des 3 reviews.

**Quand terminé :** `TaskUpdate` → tâche #4 en `completed`

## 4.5. Examine (Adversarial Review) ⭐ NOUVEAU

**🔄 Progression :** `TaskUpdate` → tâche #5 en `in_progress`

Challenge l'implémentation avec perspective adversariale :

**Questions à poser :**
- **Edge cases** : Qu'arrive-t-il si input null/vide/invalide ?
- **Limites** : Quelle est la taille maximale acceptable ? Le timeout ?
- **Sécurité** : Injection possible ? Exposition de données sensibles ?
- **Performance** : N+1 queries ? Boucles infinies possibles ?
- **Concurrence** : Race conditions ? Deadlocks ?
- **Rollback** : Comment annuler si ça échoue en prod ?
- **Décisions d'architecture** : Pourquoi ce pattern ? Alternative meilleure ?

**Focus prioritaire :**
1. Chercher ce qui **pourrait casser** en production
2. Identifier **hypothèses non validées** dans le code
3. Tester mentalement **scénarios extrêmes**
4. Challenger **décisions d'implémentation** (pourquoi X au lieu de Y ?)

**Output :**
```
🔍 Examine Results:

Edge cases trouvés:
- [cas] : [risque] → [suggestion]

Limites détectées:
- [limite] : [impact] → [mitigation]

Décisions challengées:
- [décision] : [alternative] → [trade-off]
```

**Quand terminé :** `TaskUpdate` → tâche #5 en `completed`

## 5. Demander l'action utilisateur

```
Que souhaites-tu faire ?

1. 🔧 Fix now - Corriger toutes les issues maintenant
2. 📋 Fix later - Noter pour plus tard et continuer
3. ✅ Proceed - Continuer sans corrections (non recommandé)
```

⚠️ **Attendre la décision avant de continuer.**

## 6. Si "Fix now" choisi

- Appliquer les corrections PHPStan en priorité (bloquent la CI)
- Appliquer les corrections Elegant Objects
- Relancer une review pour vérifier

## 7. Finaliser

Mettre à jour le workflow state

# Prochaine étape

```
✅ Review complétée

Prochaine étape : /dev:summary pour le résumé final
```

# Règles

- **Task Management** :
  - Créer 5 tâches au démarrage (3 reviews + 1 consolidation + 1 examine)
  - Marquer les 3 reviews en `in_progress` avant lancement parallèle
  - La tâche de consolidation est bloquée par les 3 reviews (`addBlockedBy`)
  - La tâche examine est bloquée par la consolidation (`addBlockedBy`)
  - Utiliser `TaskList` pour afficher la progression
- **PHPStan erreurs = BLOQUANT** (font échouer la CI)
- Confiance minimum 80% pour les issues code review
- Respecter le choix utilisateur (ne pas forcer les corrections)

Related Skills

dev:auto:review

8
from atournayre/claude-marketplace

Review avec auto-fix automatique - Mode AUTO (Phase 7)

fix-grammar

8
from atournayre/claude-marketplace

Fix grammar and spelling errors in one or multiple files while preserving formatting

symfony-framework

8
from atournayre/claude-marketplace

Comprehensive Symfony 6.4 development skill for web applications, APIs, and microservices.

symfony:make

8
from atournayre/claude-marketplace

Cherche si il existe un maker Symfony pour faire la tache demandée et l'utilise si il existe. Si aucun maker n'existe alors utilise la slash command "/prepare"

phpstan-resolver

8
from atournayre/claude-marketplace

Résout automatiquement les erreurs PHPStan en analysant et corrigeant les problèmes de types. Boucle jusqu'à zéro erreur ou stagnation.

elegant-objects

8
from atournayre/claude-marketplace

Vérifie la conformité du code PHP aux principes Elegant Objects de Yegor Bugayenko. Analyse un fichier spécifique ou tous les fichiers modifiés dans la branche.

prompt:validate

8
from atournayre/claude-marketplace

Vérifie la checklist avant exécution et liste les oublis

prompt:transform

8
from atournayre/claude-marketplace

Transforme un prompt en prompt exécutable compatible avec le Task Management System (TaskCreate/TaskUpdate/TaskList)

prompt:team

8
from atournayre/claude-marketplace

Orchestre une équipe d'agents spécialisés pour les tâches complexes. Auto-détecte le type, compose l'équipe, coordonne les phases analyse → challenge → implémentation → QA.

prompt:start

8
from atournayre/claude-marketplace

Démarre un développement avec un starter léger puis active le mode plan

apex

8
from atournayre/claude-marketplace

Systematic implementation using APEX methodology (Analyze-Plan-Execute-eXamine) with parallel agents, self-validation, and optional adversarial review. Use when implementing features, fixing bugs, or making code changes that benefit from structured workflow.

fix-errors

8
from atournayre/claude-marketplace

Fix all ESLint and TypeScript errors with parallel processing using snipper agents