feature-ninja / boost-extra-packages
Adds extra.laravel-boost package discovery support to Laravel Boost by overriding the classes involved in guideline/skill discovery.
Package info
github.com/feature-ninja/boost-extra-packages
pkg:composer/feature-ninja/boost-extra-packages
Requires
- php: ^8.2
- laravel/boost: >=2.5.0
Requires (Dev)
- laravel/pint: ^1.27.0
- mockery/mockery: ^1.6.12
- orchestra/testbench: ^9.15.0|^10.6|^11.0
- pestphp/pest: ^2.36.0|^3.8.4|^4.1.5
- phpstan/phpstan: ^2.1
This package is auto-updated.
Last update: 2026-08-05 20:23:30 UTC
README
Adds extra.laravel-boost package discovery support to Laravel Boost, without forking it.
What problem this solves
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.
Installation
composer require feature-ninja/boost-extra-packages
The 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).
Usage
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"
]
}
}
}
packages
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.
include-packages-from
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.
Result
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.
How it works
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.
Compatibility
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.
Testing
composer install vendor/bin/pest
Static analysis
This package is analysed with PHPStan at level 5. Run it locally with vendor/bin/phpstan.
License
MIT.