تقسیم گایدلاینهای Laravel Boost به چند فایل
خلاصهٔ کاملتر
Laravel Boost ابزاریه که به پکیجهای لاراول اجازه میده گایدلاینهای هوش مصنوعی (دستورالعملهایی که به ابزارهایی مثل Claude یا Copilot میگن چطور با کدبیس کار کنن) رو همراه خودشون شیپ کنن. وقتی یه اپ php artisan boost:install رو اجرا میکنه، Boost فایل resources/boost/guidelines/core.blade.php هر پکیج نصبشده رو رندر میکنه و محتواش رو به AGENTS.md یا CLAUDE.md اضافه میکنه.
مشکل اینجاست که اگه بخوای گایدلاین رو به چند فایل .blade.php کنار core.blade.php تقسیم کنی، Boost فقط یکیشون رو نگه میداره — اونهم بر اساس ترتیب الفبایی فایلسیستم — و بقیه بدون هیچ خطایی نادیده گرفته میشن. این یه باگ پنهانه که دیباگش سخته.
راهحل درست اینه که فقط همون core.blade.php توی پوشه guidelines/ بمونه و بقیه فایلها رو توی یه پوشه جداگانه مثل resources/boost/partials/ بذاری. بعد توی Service Provider پکیجت یه namespace بلید ثبت کنی:
$this->loadViewsFrom(
dirname(__DIR__) . '/resources/boost/partials',
'example-package',
);حالا توی core.blade.php میتونی پارشالها رو با @include و اون namespace فراخوانی کنی:
@include('example-package::architecture')
@include('example-package::code-style')
@include('example-package::testing')چون Boost فایل core.blade.php رو از طریق Blade::render() رندر میکنه، تمام namespaceهایی که service providerها ثبت کردن در دسترسن و این includeها بدون مشکل حل میشن.
یه نکته مهم: پارشالهات احتمالاً شامل کد نمونهای هستن که از سینتکس بلید استفاده میکنه — مثل @csrf، {{ $user->name }}، یا @include(...). Blade اگه اینها رو ببینه سعی میکنه پردازششون کنه و یا خطا میده یا خروجی خراب. برای جلوگیری از این مشکل، محتوای هر پارشال رو داخل @verbatim ... @endverbatim بپیچ. البته خود core.blade.php رو @verbatim نکن چون Blade باید @includeهاش رو پردازش کنه.
در آخر، این ساختار مجوز نیست که گایدلاین رو بینهایت گسترش بدی. همه چیز در نهایت توی یه بلاک بزرگ توی فایل AGENTS.md کنار هم قرار میگیره و هرچه طولانیتر بشه، احتمال اینکه مدل هوش مصنوعی اون رو نادیده بگیره یا کانتکستویندوش پر بشه بیشتره. گایدلاینها رو برای قراردادهای غیرواضح و APIهای پکیجمحور نگه دار؛ محتوای وظیفهمحور مثل مراحل تست یا مهاجرت رو بده به Skills که فقط موقع نیاز لود میشن.
نکات کلیدی:
- Boost فقط core.blade.php رو از پوشه guidelines/ میخونه؛ چند فایل کنارش = فقط یکی وارد خروجی میشه
- پارشالها رو توی resources/boost/partials/ بذار و با loadViewsFrom یه namespace ثبت کن
- در core.blade.php با @include('namespace::partial-name') اونها رو ترکیب کن
- محتوای پارشالها رو توی @verbatim بپیچ تا سینتکس بلید اشتباه پردازش نشه
- گایدلاین رو کوتاه و متمرکز نگه دار؛ محتوای وظیفهمحور به Skills تعلق داره




