Laravel Auditor est une dépendance de développement de Punyapal Shah qui s'attaque à un problème connu : demander à un agent IA d'auditer une application Laravel produit un mélange de vrais bugs, d'opinions de style déguisées en problèmes critiques et de vulnérabilités inexistantes. Le package n'exécute aucune vérification lui-même. Il installe des skills et des directives pour l'agent déjà utilisé, notamment Claude Code, Codex, Cursor, Copilot, Gemini CLI, Junie, Zed ou opencode, puis laisse cet agent effectuer un passage Discover, Scope, Verify, Report.

terminal
composer require --dev mrpunyapal/laravel-auditor
php artisan auditor:install --agents=claude_code
php artisan auditor:rules --applicable
php artisan auditor:report --findings=storage/auditor-findings.json --format=sarif
php artisan auditor:ci --findings=storage/auditor-findings.json --fail-on=high

Le catalogue d'audit comprend 75 règles avec des ID stables, comme AUD-SEC-001 pour une frontière d'autorisation manquante ou AUD-PER-011 pour une requête dans une boucle. Des packs de règles conditionnels pour Livewire, Filament, Inertia, Sanctum et Pest ne s'activent que si ces packages sont installés. Le catalogue 0.1.x couvre six domaines : sécurité, performance, architecture, base de données, tests et conventions Laravel. La commande artisan auditor:rules les liste, avec le drapeau --applicable pour filtrer ce qui s'applique réellement au projet.

Avant toute lecture de code source, l'agent récupère des faits déterministes via onze collecteurs de contexte en lecture seule couvrant routes, modèles, schéma, policies, jobs et tests. Ils sont exposés comme outils MCP (project_info, routes, models, migrations, database_schema, dependencies, configuration, policies_authorization, jobs_events_schedules, tests, subsystems) ou accessibles directement via auditor:context. Avec Laravel Boost installé, les collecteurs s'enregistrent automatiquement dans le serveur MCP de Boost. Des filtres permettent de ne récupérer qu'une tranche, par exemple les routes d'une URI donnée.

Les findings sont écrits en JSON structuré avec un ID de règle, une sévérité de critical à info, une valeur de confiance séparée, une preuve fichier-et-ligne et une recommandation de correction. La commande auditor:report les rend en Markdown, JSON, texte CLI ou SARIF, permettant l'affichage inline sur les pull requests. auditor:ci --fail-on=high transforme les findings en code de sortie pour CI. Un skill séparé laravel-audit-dsa inventorie les sous-systèmes, envoie des workers limités sur chacun, puis déduplique et classe les findings de P0 à P3.

Le package requiert PHP 8.3+ et Laravel 12 ou 13. L'installation se fait avec composer require --dev mrpunyapal/laravel-auditor suivi de auditor:install --agents=claude_code. Ensuite, on demande à l'agent de lancer l'audit avec le skill laravel-audit. Le source est sur GitHub, et l'auteur précise que le package est en développement précoce.