Тема
Laravel Boost — как работать через него
Boost отдаёт Claude Code реальное состояние приложения: схему, роуты, модели, логи, доки — вместо чтения десятков PHP-файлов и пересказа структуры руками. Это первый инструмент, к которому тянуться на Laravel-задаче. Расширяет спецификацию MCP и заведение MCP практикой именно по Boost.
Зачем он нужен
Без Boost Claude вынужден восстанавливать структуру приложения косвенно: читать модели, миграции, роут-файлы, конфиги — десятки файлов, тысячи токенов, и всё равно с риском рассинхрона (файл говорит одно, БД — другое). Boost работает внутри контейнера приложения и возвращает фактическое состояние одним структурированным вызовом.
| Без Boost | С Boost | |
|---|---|---|
| Схема таблицы | docker exec psql \d table + парсинг вывода | database-schema → структурированный JSON |
| Список роутов | чтение routes/*.php + resolve контроллеров | list-routes → метод, URI, контроллер, middleware |
| Ошибка в проде | tail storage/logs/laravel.log через docker | last-error → трейс компактно |
| Проверить гипотезу на данных | docker exec psql -c "SELECT..." | database-query → JSON |
| Стоимость типовой отладки | ~20% лимита (docker exec) | ~1% лимита |
Правило студии: сначала Boost, затем postgres/mysql MCP, docker MCP — только fallback (произвольный artisan, тесты, сборка). Порядок — в workflow с Claude Code.
Инструменты Boost
Boost предоставляет 15+ инструментов. Ключевые в работе студии:
| Инструмент | Что отдаёт | Когда брать |
|---|---|---|
| database-schema | Таблицы, колонки, типы, индексы, связи | Перед новой моделью/миграцией; «что в таблице X» |
| database-query | Реальные читы из БД (SELECT) | Проверка гипотез, воспроизведение бага на живых данных |
| list-routes | Роуты: метод, URI, контроллер, middleware | Планирование эндпоинтов, поиск конфликтов имён |
| last-error | Последняя ошибка + трейс из лога | Отладка без копирования трейсов в промпт |
| read-log-entries | Записи laravel.log с фильтрацией | Смотреть контекст вокруг ошибки |
| application-info | Версии Laravel/PHP, пакеты, драйверы | Первое знакомство с проектом |
| search-docs | Семантический поиск по документации под версию | Точный синтаксис Laravel/Filament/Livewire |
| tinker / execute-code | PHP-код в среде приложения (tinker-подобно) | Быстрая проверка метода, связи, каста |
| database-connections | Список коннекшнов | Мультибазовые проекты |
| browser-logs | JS-консоль из Telescope/Pail | Фронтовые ошибки без ручного Playwright |
Принцип выбора: дешёвый структурированный инструмент вместо дорогого сырого. last-error вместо tail логов; database-schema вместо psql \d; search-docs вместо WebFetch на laravel.com наугад. Полная таблица приоритетов — в спецификации MCP.
Documentation API — версионно-точные доки
Ключевая фишка search-docs: это семантический поиск по 17 000+ единицам документации, осознающий версию установленного Laravel/Filament/Livewire. Модель не подставит синтаксис Laravel 9 в проект на 12.x — API отдаёт куски документации ровно под версию из composer.json.
mcp__laravel-boost__search-docs
queries: ["media library responsive conversions", "filament relationship repeater"]Это надёжнее памяти модели (которая знает «вообще», а не «под вашу версию») и дешевле веб-поиска. Для пакетов вне экосистемы Laravel — дополнять через context7 (см. частые вопросы).
AI Guidelines vs Skills
boost:install генерирует два вида контекста, и они работают по-разному:
- AI Guidelines — грузятся сразу, задают базовые конвенции и паттерны Laravel. Дают консистентный качественный код с первого запроса (аналог правил из CLAUDE.md).
- Skills — подключаются по требованию, под конкретную задачу (pest-testing, livewire и т.п.). Триггер — формулировка задачи: «напиши Pest-тест» активирует skill
pest-testing. Плюс: меньше постоянного контекста, выше точность. Отключать вручную не нужно — активируются сами только когда релевантны.
Практический вывод: формулируй задачу конкретно — точная формулировка триггерит нужный skill и держит контекст чище.
Установка и проверка живости
Полная процедура заведения (4 первопричины «MCP мёртв», troubleshooting) — в спецификации MCP. Кратко по Boost:
bash
# в контейнере проекта:
docker exec {app} composer require laravel/boost --dev --no-interaction
docker exec {app} php artisan boost:install # генерирует guideline- и skill-файлыПроверка живости без перезапуска сессии (JSON-RPC initialize):
bash
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
| docker exec -i -e APP_ENV=local -e APP_DEBUG=true {app} php artisan boost:mcp
# → должен вернуться JSON с "serverInfo":{"name":"Laravel Boost",...}Типовые блокеры установки (разобраны в MCP-спеке): нет ext-exif в образе, конфликт symfony/* под PHP 8.4/8.3, laravel/boost в extra.laravel.dont-discover, проект не активирован в ~/.claude.json. Boost гейтит логику на local||debug — поэтому в .mcp.json нужны -e APP_ENV=local -e APP_DEBUG=true.
Замкнутый цикл: структура → поведение → верификация
Boost — только один из трёх источников правды. В сессии они складываются в цикл:
| Источник | Слой | Отвечает на вопрос |
|---|---|---|
| laravel-boost | Структура | «что есть» — схема, роуты, модели, конфиг |
| Telescope / Pulse | Рантайм | «что происходит» — запросы, очереди, N+1, исключения |
| Pest | Верификация | «что доказано» — тест зелёный |
Типичный проход по фиче:
application-info+database-schema→ Claude видит структуру, не угадывает.search-docs→ точный синтаксис под версию.- Реализация по слоям (FormRequest → Service → Controller → Resource — см. архитектуру).
- Telescope через MCP показывает N+1 и медленные запросы на реальном прогоне.
- Pest подтверждает поведение — зелёный тест как факт, не «должно работать».
Медленные запросы Telescope читаются прямо через postgres MCP, без захода в интерфейс:
sql
SELECT content->>'sql' AS query, (content->>'time')::float AS ms
FROM telescope_entries
WHERE type = 'query' AND (content->>'time')::float > 100
ORDER BY (content->>'time')::float DESC
LIMIT 20;Чеклист продуктивной сессии
- ☐ Boost жив (
boost:mcpотвечаетserverInfo) — иначе Claude читает файлы вручную - ☐ CLAUDE.md содержит версии стека и точные команды pint/test
- ☐ Дать Boost инспектировать схему/роуты вместо ручного описания в промпте
- ☐
search-docsвместо памяти модели для синтаксиса под версию - ☐ Telescope через MCP на реальные проблемы (N+1, slow queries, исключения)
- ☐ Pest как feedback loop — тест до реализации
- ☐ Диф тестов пересмотрен перед коммитом (миграции запускает человек)
Делай / Не делай
✅ Делай:
- Давай Boost инспектировать схему через MCP, а не описывай таблицы в промпте
- Полагайся на
search-docs/ Documentation API вместо памяти модели - Позволяй Skills подключаться по задаче — формулируй конкретно
- Читай логи через
last-error/read-log-entries, не копируй трейсы - Фиксируй команды pint/test в CLAUDE.md
❌ Не делай:
- Не описывай схему БД вручную в промпте — это то, для чего есть Boost
- Не подставляй синтаксис по памяти — версия может не совпасть
- Не работай без проверки, что Boost жив (частая причина «Claude тупит»)
- Не грузи все файлы сразу — точечный доступ дешевле
- Не бери docker MCP там, где хватает Boost/postgres
FAQ
Boost работает с любой БД? Инспектирует через стандартные средства Laravel — конкретный драйвер (PostgreSQL/MySQL) не принципиален.
Boost и context7 — оба нужны?
Да, они дополняют друг друга: Boost — про Laravel-экосистему и вашу версию (схема, роуты, доки ядра/Filament/Livewire); context7 — про сторонние библиотеки экосистемы (не-Laravel пакеты). См. приоритет инструментов.
Можно отключить Skills? Они активируются только по требованию — ручного отключения не требуется. Не мешают, когда нерелевантны.
Boost заменяет CLAUDE.md? Нет. Boost показывает «что есть» (факты о приложении), CLAUDE.md задаёт «как должно быть» (правила и архитектура). Без правил Claude пишет в дефолтной архитектуре Laravel (логика в контроллере) — Boost этого не исправляет. Нужны оба.