name: elegant-objects description: > 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. allowed-tools: [Bash, Read, Grep, Glob] model: sonnet
Elegant Objects Reviewer Skill
Instructions à Exécuter
IMPORTANT : Exécute ce workflow étape par étape :
Usage
/qa:elegant-objects [fichier.php]
Sans argument : analyse les fichiers PHP modifiés dans la branche.
Workflow
- Déterminer fichiers à analyser (argument ou git diff)
- Vérifier les règles Elegant Objects
- Générer rapport avec score
Règles vérifiées
Classes
- Classes
final(sauf abstraites) - Max 4 attributs
- Pas de getters/setters
- Pas de méthodes statiques
- Noms sans -er (Manager, Handler, Helper...)
- Constructeur unique et simple
Méthodes
- Pas de retour
null - Pas d'argument
null - Corps sans lignes vides ni commentaires
- CQRS : séparation commandes/queries
Tests
- Une assertion par test (dernière instruction)
- Noms en français décrivant le comportement
- Pas de setUp/tearDown
Score
- Violation critique: -10 points
- Violation majeure: -5 points
- Recommandation: -2 points
- Base: 100
References
- Patterns de détection - Regex et règles détaillées
Notes
- Ignorer vendor/, var/, cache/
- Controllers Symfony tolérés
- Prioriser par criticité