feature-ninja/boost-extra-packages

Adds extra.laravel-boost package discovery support to Laravel Boost by overriding the classes involved in guideline/skill discovery.

Maintainers

Package info

github.com/feature-ninja/boost-extra-packages

pkg:composer/feature-ninja/boost-extra-packages

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0 2026-08-05 19:50 UTC

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-dev entry, 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's require/require-dev at 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:

  1. Ships a standalone FeatureNinja\BoostExtraPackages\Support\ExtraPackages class that reimplements Boost's package-discovery logic plus the extra.laravel-boost config parsing.
  2. Provides override subclasses of every Boost class that needs to know about the extra packages: GuidelineComposer, SkillComposer, ThirdPartyPackage, Nightwatch, and InstallCommand.
  3. 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.