veilletech.fr
1 sept. Feed du jour
#05 LARAVEL Article

Boost déduit les conventions du projet

Une règle utile est celle qu'un autre agent n'aurait pas devinée.

Laravel raconte comment Boost extrait les conventions d'une base de code existante : la voie des détecteurs PHP déterministes a été abandonnée au profit d'une skill d'agent qui collecte des preuves et fait valider chaque règle. Le cœur du sujet est le tri — ce qui mérite d'être écrit dans les règles projet, et ce que les outils déterministes couvrent déjà.

3 min de lectureintermédiairevidéo 1:15
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Pourquoi elle a été écartée
  3. Ce que la skill refuse d'écrire
  4. À retenir

Ce qui se passe

Une application Laravel neuve peut consigner ses règles au fil des décisions. Une application établie, non : ses conventions vivent dans ses contrôleurs, ses modèles, ses tests, son arborescence — et dans ses absences délibérées. Quand une équipe installe Laravel Boost, ce contexte doit venir de quelque part.

Deux méthodes ont été essayées. La première, une commande Artisan boost:infer-conventions : résolveur de racine, échantillonneur de fichiers, inspecteur et cinq détecteurs écrits à la main (casse des clés d'enum, guarded contre fillable, style des query scopes, syntaxe des règles de validation), chacun rendant un score de confiance présenté dans un multiselect Laravel Prompts. Rapide, déterministe, zéro token consommé — et la branche n'a jamais été fusionnée.

Pourquoi elle a été écartée

Deux raisons, et la seconde est la vraie leçon.

Le coût d'extension d'abord : chaque nouvelle convention exigeait une classe PHP supplémentaire pour la détection, les preuves, la confiance et la sortie. La skill qui l'a remplacée couvre environ 49 dimensions réparties en 10 groupes, et ajouter une dimension coûte une ligne dans une checklist Markdown.

Le problème de la fréquence ensuite. Un projet contient des centaines de classes de migration anonymes parce que Laravel les génère ainsi. Enregistrer ce motif n'apprend rien à l'agent. Le critère retenu est explicite : une règle mérite sa place quand elle préserve un choix qu'un autre agent aurait pu manquer. « Stocker les montants en centimes entiers » change la modélisation, la validation, la sérialisation et les tests. « Utiliser des classes de migration anonymes » répète le défaut du framework.

Ce que la skill refuse d'écrire

À l'inverse, deux catégories méritent d'être écrites : l'architecture (« la logique métier vit dans app/Actions, les contrôleurs délèguent ») et les absences délibérées (« les contrôleurs interrogent Eloquent directement, il n'y a pas de couche repository »). Une abstraction manquante fait partie de l'architecture.

Source : Laravel — Extracting AI rules from an existing codebase