AgentSkillsCN

elegant-objects

使用 Yegor Bugayenko 的 Elegant Objects 原则,检查 PHP 代码是否符合规范。可针对特定文件,或对分支中所有修改过的文件进行分析。

SKILL.md
--- frontmatter
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

code
/qa:elegant-objects [fichier.php]

Sans argument : analyse les fichiers PHP modifiés dans la branche.

Workflow

  1. Déterminer fichiers à analyser (argument ou git diff)
  2. Vérifier les règles Elegant Objects
  3. 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

Notes

  • Ignorer vendor/, var/, cache/
  • Controllers Symfony tolérés
  • Prioriser par criticité