Adds extra.laravel-boost package discovery support to Laravel Boost, without forking it.
Boost only discovers a package's AI guidelines/skills if that package is a direct Composer requirement (for a handful of packages — MCP servers, Livewire — it insists on this to avoid pulling in guidelines just because something else depends on them indirectly). That breaks down when:
- A package is required indirectly (e.g. pulled in by a meta-package or internal monorepo package), but you still want its Boost guidelines/skills installed.
- A package ships Boost guidelines/skills but isn't a Composer dependency of your app at all (e.g. it lives in a private registry entry, or you just want to point Boost at another installed package's guideline directory without adding a formal
require).
This package adds an extra.laravel-boost block to your application's composer.json that opts specific packages in, bypassing Boost's direct-requirement gate and/or making a package visible to Boost even if it isn't a top-level requirement.
composer require feature-ninja/boost-extra-packagesThe service provider is auto-discovered — no manual registration needed. Requires laravel/boost ^2.5.0 (the exact contract this package was built against; see Compatibility).
Add an extra.laravel-boost block to your application's composer.json (not this package's):
{
"extra": {
"laravel-boost": {
"packages": [
"livewire/livewire"
],
"include-packages-from": [
"acme/internal-bundle"
]
}
}
}A list of Composer package names to opt in to Boost's guideline/skill discovery, regardless of whether Boost would normally require them to be a direct dependency.
"packages": ["livewire/livewire", "acme/some-package"]- Platform requirements (
php,ext-*) are ignored if accidentally listed. - If a listed package is also a real
require/require-deventry, its actual version constraint is used instead of a placeholder — nothing is overwritten.
A list of already-installed packages whose own require entries should be treated as if they were opted in too. Useful when you maintain an internal "bundle" package that pulls in several packages you want Boost to notice.
"include-packages-from": ["acme/internal-bundle"]This reads vendor/acme/internal-bundle/composer.json and adds everything in its require (again, platform requirements are filtered out). Entries that aren't actually installed, or whose composer.json is missing/malformed, are silently skipped.
Any package named via either key:
- Bypasses Boost's "must be a direct requirement" gate (affects guidelines/skills gated by
mustBeDirect, e.g. Livewire, MCP-related packages). - Becomes visible to
boost:install's third-party package picker and to guideline/skill discovery, even if it isn't in your app'srequire/require-devat all.
Boost's package-discovery logic (Laravel\Boost\Support\Composer) is a static-only utility referenced by hardcoded class name throughout Boost's codebase, so it can't be intercepted by ordinary subclassing. This package instead:
- Ships a standalone
FeatureNinja\BoostExtraPackages\Support\ExtraPackagesclass that reimplements Boost's package-discovery logic plus theextra.laravel-boostconfig parsing. - Provides override subclasses of every Boost class that needs to know about the extra packages:
GuidelineComposer,SkillComposer,ThirdPartyPackage,Nightwatch, andInstallCommand. - Rebinds each of those, via its
ServiceProvider, to the container so Boost transparently resolves the override instead of its own class — no changes to Boost's own code, no monkey-patching.
This package pins laravel/boost to >=2.5.0 <2.6.0. That upper bound is a deliberate tripwire, not an arbitrary cap: it's version-gated so that if a future Boost release ever ships this same extra.laravel-boost feature natively, composer require fails loudly instead of silently double-processing packages. If you hit that ceiling, check whether Boost has added native support before bumping it.
composer install
vendor/bin/pestThis package is analysed with PHPStan at level 5. Run it locally with vendor/bin/phpstan.
MIT.