Коли просиш AI-агента перевірити Laravel-застосунок, зазвичай отримуєш суміш реальних помилок, стильових порад, замаскованих під критичні проблеми, та вразливостей, яких насправді не існує. Laravel Auditor від Punyapal Shah - це dev-залежність, яка надає агенту, яким ти вже користуєшся, письмову методологію аудиту, каталог із 75 правил та read-only інструменти, що повідомляють факти про проєкт замість того, щоб модель здогадувалася сама.
Пакет не виконує жодної з перевірок самостійно - він встановлює навички та настанови для Claude Code, Codex, Cursor, Copilot, Gemini CLI, Junie, Zed або opencode, а потім дає змогу агенту провести процес Discover → Scope → Verify → Report над твоїм кодом.
Ключові можливості
Пакет надає такі функції:
- Агностична установка - команда
auditor:install --agents=claude_code публікує навички, настанови та файли адаптерів, або boost:install надає ті самі ресурси через Laravel Boost, якщо він присутній
- 75 правил зі стабільними ідентифікаторами - кожна знахідка посилається на одне з них, від
AUD-SEC-001 (відсутня межа авторизації) до AUD-PER-011 (запит виконується всередині циклу)
- Умовні набори правил - правила для Livewire, Filament, Inertia, Sanctum та Pest, які застосовуються лише коли ці пакети встановлені
- Одинадцять read-only збирачів контексту - маршрути, моделі, схема, політики, завдання та тести, доступні через MCP або безпосередньо з Artisan
- Схема знахідок - знахідки є структурованим JSON з доказами, серйозністю, впевненістю та рекомендацією, валідованим за опублікованою схемою
- Команди звітності та CI -
auditor:report рендерить знахідки як Markdown, JSON, текст CLI або SARIF, а auditor:ci --fail-on=high перетворює їх на exit-код
- DSA-прохід - окрема навичка
laravel-audit-dsa інвентаризує підсистеми, надсилає обмежених воркерів для кожної, потім дедублює та ранжує знахідки P0-P3
Що охоплюють правила
Каталог версії 0.1.x охоплює шість доменів: безпека, продуктивність, архітектура, база даних, тестування та Laravel-конвенції. Переглянути їх можна командою Artisan:
php artisan auditor:rules
php artisan auditor:rules --domain=security
php artisan auditor:rules --applicable
Опція --applicable є найкориснішою для реального проєкту, оскільки фільтрує умовні набори для пакетів, які не встановлені.
Read-only факти про проєкт
Перед тим як агент прочитає будь-який вихідний код, він збирає детерміновані факти про застосунок. Ці збирачі надаються як інструменти MCP - project_info, routes, models, migrations, database_schema, dependencies, configuration, policies_authorization, jobs_events_schedules, tests та subsystems - і реєстрація stdio-сервера потребує однієї команди:
claude mcp add -s local -t stdio laravel-auditor php artisan auditor:mcp -q
З встановленим Laravel Boost ті самі збирачі реєструються всередині власного MCP-сервера Boost, тому нічого додатково підключати не потрібно.
Вони також доступні без MCP:
php artisan auditor:context --list
php artisan auditor:context project_info
php artisan auditor:context routes --output=storage/auditor-routes.json
Або з PHP, якщо потрібен масив:
use LaravelAuditor\Facades\LaravelAuditor;
LaravelAuditor::collect('models');
Інструменти повертають структуровані факти замість дампів коду, а routes, models, database_schema та dependencies приймають фільтри - routes {uri: "api"} - тож агент, що перевіряє окрему підозру, може отримати релевантну частину замість всього інвентарю.
Знахідки та звіти
Агент записує знахідки, а пакет рендерить їх. Кожна знахідка містить ідентифікатор правила, серйозність від critical до info, окреме значення впевненості, докази з файлом і рядком, та виправлення:
{
"id": "F-2026-0001",
"rule_id": "AUD-SEC-001",
"title": "Missing authorization boundary",
"domain": "security",
"severity": "high",
"confidence": "confirmed",
"summary": "Any authenticated user can delete another user's post.",
"why_it_matters": "The destroy action never authorizes the Post policy.",
"evidence": [
{
"type": "file",
"reference": "app/Http/Controllers/PostController.php",
"line": 42,
"end_line": 48
}
],
"symbol": "App\\Http\\Controllers\\PostController@destroy",
"recommendation": "Authorize the deletion with a PostPolicy or route middleware."
}
Звіти можна форматувати за допомогою SARIF, тож файл із знахідками, створений локально, можна завантажити та показати inline у pull request:
php artisan auditor:report --findings=storage/auditor-findings.json --output=storage/auditor-report.md
php artisan auditor:report --findings=storage/auditor-findings.json --format=sarif
php artisan auditor:ci --findings=storage/auditor-findings.json --fail-on=high
Установка
Laravel Auditor потребує PHP 8.3+ та Laravel 12 або 13, і встановлюється як dev-залежність:
composer require --dev mrpunyapal/laravel-auditor
php artisan auditor:install --agents=claude_code
Повні деталі налаштування доступні в readme та документації. Після завершення установки попроси свого агента запустити аудит:
Use the laravel-audit skill to audit this application. Discover the project first, scope the relevant domains, and report only evidenced findings.
Зауваж: на момент написання пакет перебуває в ранній стадії розробки.
Вихідний код доступний на GitHub, документація - на mrpunyapal.github.io/laravel-auditor.