Introduction
laravel/pao est un package qui optimise les sorties des outils de développement PHP pour les agents IA. PAO (PHP Agent-Optimized output) convertit automatiquement les sorties verbeuses de PHPUnit, Pest, Paratest, PHPStan et Laravel Artisan en JSON structuré et compact. Alors que de nombreux agents IA — dont GitHub Copilot — sont passés à des tarifs basés sur le nombre de tokens, réduire la sortie des outils devient directement synonyme d’économies. PAO est conçu pour répondre à ce besoin et sera intégré comme dépendance par défaut des starter kits Laravel.Pourquoi c’est important
À mesure que les agents IA s’intègrent profondément dans le flux de développement, le nombre de tokens en sortie des outils impacte directement le coût et le temps de réponse. Sur un projet comptant 1 000 tests, la sortie de PHPUnit atteint plusieurs milliers de lignes, alors que l’agent IA n’a besoin que de « succès/échec, nombre, points d’échec ». PAO compresse ces informations en un objet JSON d’un ordre de grandeur plus petit.- Sortie de tests : jusqu’à 99,8 % de tokens en moins
- Sortie PHPStan : JSON structuré ne fournissant que l’essentiel
- Sortie Artisan : suppression des codes ANSI, filets et espaces, réduction jusqu’à 75 %
Installation
PHP 8.3 et supérieur, PHPUnit 12-13 / Pest 4-5 / Paratest / PHPStan / Laravel 12 et supérieur.PAO ne s’active que lorsqu’il détecte un environnement d’agent IA. Lors d’une exécution manuelle dans un terminal, il est totalement inactif et la sortie normale est préservée.
Agents IA pris en charge
PAO détecte automatiquement les agents IA suivants.| Agent | Méthode de détection |
|---|---|
| GitHub Copilot | Variables d’environnement comme COPILOT_MODEL |
| Claude Code | CLAUDECODE ou CLAUDE_CODE |
| Cursor | CURSOR_AGENT |
| Gemini CLI | GEMINI_CLI |
| Devin | Fichier /opt/.devin |
| Codex | Variables d’environnement comme CODEX_SANDBOX |
Avant / Après
Sortie de tests (PHPUnit / Pest)
Une suite de 1 000 tests est convertie comme suit. Avant (sans PAO)Sortie de plugins (coverage, etc.)
Les sorties additionnelles des plugins Pest comme--coverage ou --profile sont incluses dans un tableau raw après suppression des codes ANSI et de la décoration.
Sortie PHPStan
Sortie Laravel Artisan
La sortie de commandes commephp artisan about voit ses codes ANSI, filets, points de séparation et espaces supprimés.
Avant (sans PAO) — 2 111 caractères
about, db:show, migrate:status, etc.
Intégration dans les starter kits Laravel
PAO sera intégré comme dépendance par défaut des starter kits Laravel. Toute nouvelle création de projet l’installera automatiquement, permettant de démarrer un développement assisté par IA en maîtrisant d’emblée le coût en tokens.Conclusion
laravel/pao fonctionne dès l’installation et ne s’active que dans un environnement d’agent IA, il n’impacte donc en rien le flux de développement existant. Tout projet PHP ou Laravel souhaitant maîtriser le coût du développement assisté par IA a intérêt à l’évaluer.
Dépôt laravel/pao
Le code source et la liste à jour des outils et agents pris en charge se trouvent ici.