Aller au contenu principal

Règles pour agents IA

Ces règles s'appliquent à tous les agents IA travaillant sur le projet : Claude Code, Codex, Cursor, Windsurf, GitHub Copilot.


Objectif principal

Générer du code Laravel maintenable, sécurisé, modulaire et production-grade, pleinement aligné avec l'architecture et les conventions du projet.


Workflow obligatoire

Avant de coder

  1. Lire .ai/architecture-summary.md
  2. Lire la documentation du module concerné
  3. Inspecter le code existant similaire dans le projet
  4. Réutiliser l'architecture existante autant que possible

Après avoir codé

  1. Mettre à jour la documentation impactée
  2. Vérifier la cohérence d'architecture
  3. Vérifier la cohérence de nommage
  4. Vérifier l'autorisation
  5. Vérifier la validation
  6. Vérifier les logs et la gestion d'erreurs

Règles obligatoires

CoucheRègle
ArchitecturePréserver les frontières de module, respecter les conventions Laravel et projet
ControllersMinces — autoriser, orchestrer, appeler services, retourner réponses
ValidationToutes les entrées externes via Form Requests
AutorisationPolicies, Gates, middleware — jamais contourner
ServicesToute la logique métier dans les services
ModèlesRelations, casts, scopes — pas de workflow
VuesPrésentation uniquement — jamais de requêtes DB
Base de donnéesFK en id_* — soft deletes quand nécessaire
TransactionsDB::transaction() pour les opérations multi-write
LoggingLogs sur les workflows sensibles — jamais de secrets

À faire

  • Réutiliser les services existants
  • Réutiliser les patterns existants
  • Inspecter les modules similaires d'abord
  • Préférer la composition à la duplication
  • Garder les méthodes focalisées
  • Ajouter le typage explicite
  • Utiliser des noms clairs

À ne pas faire

  • Inventer des patterns architecturaux
  • Dupliquer la logique métier
  • Contourner l'autorisation
  • Mettre de la logique dans les vues Blade
  • Créer des contrôleurs géants
  • Créer des services géants
  • Hardcoder les permissions
  • Faire confiance à la sécurité frontend
  • Créer des repositories pour du CRUD trivial
  • Supprimer définitivement des données historiques sans approbation explicite