Laravel Boost отримав «правила проєкту» (project rules) — набір Markdown-файлів, які фіксують конвенції вашого застосунку та прив’язані до конкретних директорій. AI-агент зчитує файл правил лише тоді, коли працює з відповідним шляхом, і ігнорує його в інших випадках. Цю функцію додав Pushpak Chhajed у pull request #852. Вона з'явилася у Boost v2.4.12, а з версії v2.5.0 (реліз 4 серпня) увімкнена за замовчуванням. Christoph Rumpel із команди Laravel також записав коротке відео з оглядом нововведення: Keep Your AI Instructions Clean With Boost Rules.
Гайдлайни та skills у Boost вже навчили агентів писати код на Laravel. Натомість правила (rules) потрібні для речей, відомих лише вашій команді: архітектурних рішень піврічної давнини, вподобань, які агент постійно ігнорує, або неочевидних «пасток» у коді. Документація визначає правило як будь-що, що вам інакше довелося б пояснювати заново під час кожної нової сесії.
# Як виглядає правило
Правила зберігаються в директорії .ai/rules. Кожен файл — це Markdown із ключем paths: у frontmatter, де перелічені відповідні globs:
---
paths:
- app/Jobs/**
---
# Jobs
## Reporting jobs run on the reports connection
Будь-який job, що зчитує дані з таблиць звітності, має використовувати `$connection = 'reports'`.
Стандартне з'єднання ділить воркерів із процесом оформлення замовлень (checkout), тому один повільний звіт може затримати чергу замовлень.
Поруч із цими файлами Boost підтримує індекс .ai/rules/index.md, який зіставляє globs із конкретними правилами. Агенти перевіряють індекс перед плануванням або редагуванням коду. Це дозволяє тримати правила поза контекстом, доки не виникне потреба в роботі з відповідними шляхами:
# Project Rules Index
Before planning or editing, find the row whose globs match the file's path and read that rule file.
| Applies to | Rule file |
| --- | --- |
| app/Jobs/** | .ai/rules/jobs.md |
| database/migrations/** | .ai/rules/migrations.md |
Директорію .ai/rules варто додавати в репозиторій. У цьому головна відмінність правил від власної пам'яті агента, яка залишається на локальній машині одного розробника. Правила потрапляють у репозиторій, проходять перевірку в pull requests і застосовуються кожним агентом, якого будь-хто з команди запускає на цьому коді.
# Створення правил
Вам не обов'язково писати ці файли вручну. Просто попросіть свого агента щось запам'ятати, і він викличе MCP-інструмент record-rule від Boost, передавши glob, заголовок та примітку:
Запам'ятай, що ми ніколи не викликаємо Stripe безпосередньо з контролера.
Billing завжди йде через App\Billing\Gateway, щоб логування та повторні спроби були в одному місці.
Boost сам визначить, до якого файлу належить нотатка, створить його (якщо потрібно) та оновить індекс. Саме через оновлення індексу розробники радять використовувати інструмент: агенти дізнаються про правила саме з index.md, тому будь-який файл, просто закинутий у .ai/rules, залишатиметься непоміченим до регенерації індексу.
# Налаштування в існуючому застосунку
Фіксувати правила в процесі роботи — це зручно для нових рішень, але застосунки, що розробляються роками, вже мають усталені практики. Для цього у Boost v2.5.0 додали функцію infer-conventions. Попросіть агента скористатися нею, і він проаналізує ваші валідації, контролери, авторизацію, моделі, архітектуру, тести, фронтенд, бази даних та консольні команди. Також він перевірить базові класи, трейти та структуру модулів.
Агент записує те, як ваш код *вже* працює, а не те, як він *мав би* працювати. Стандартні налаштування фреймворку пропускаються, як і все, що вже контролюють Pint або Rector. Якщо ж якийсь патерн у коді виявиться суперечливим, агент не записуватиме його як правило, а повідомить вам про це. Кожна знахідка супроводжується доказами з коду, які ви маєте схвалити, перш ніж вона стане офіційним правилом.
# Навіщо обмежувати область дії правил
Кожен, хто довгий час веде CLAUDE.md або AGENTS.md, знає, як це буває: спочатку це кілька пунктів про іменування та тести, а через пів року — п'ять сторінок тексту, більшість з якого не стосується поточного завдання. Весь цей обсяг завантажується на початку кожної сесії. Поділ файлу за директоріями дозволяє агенту перевірити індекс, знайти лише потрібні рядки для поточного файлу та прочитати тільки їх. Це та сама ідея, що лежить в основі skills, але спрямована на ваш власний код, а не на фреймворк.
Якщо Boost уже встановлено, після оновлення виконайте php artisan boost:update. Інструкції, що спрямовують агентів до .ai/rules/index.md, містяться у власних гайдлайнах Boost, тому ваш CLAUDE.md або AGENTS.md потребує регенерації. Ця ж команда встановить skill infer-conventions:
php artisan boost:update
Після цього правила будуть активні. Вимкнути їх можна за допомогою BOOST_RULES_ENABLED=false — це видалить інструмент record-rule і заборонить Boost вносити зміни до .ai/rules.
Детальніше про це читайте в документації project rules, а вихідний код доступний у репозиторії Laravel Boost.