sandermuller / package-boost-laravel
AI agent skills for Laravel package authors. Adds Laravel-flavored skills + .mcp.json emission on top of package-boost-php.
Package info
github.com/SanderMuller/package-boost-laravel
pkg:composer/sandermuller/package-boost-laravel
Requires
- php: ^8.3
- sandermuller/boost-core: ^1.6
- sandermuller/package-boost-php: ^1.0
Requires (Dev)
- composer/composer: ^2.7
- driftingly/rector-laravel: ^2.3
- illuminate/contracts: ^12.0||^13.0
- illuminate/support: ^12.0||^13.0
- larastan/larastan: ^3.9
- laravel/boost: ^2.0||^3.0
- laravel/pao: ^1.0
- laravel/pint: ^1.29
- mrpunyapal/rector-pest: ^0.2
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^10.0||^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- rector/rector: ^2.4
- sandermuller/boost-skills: ^2.27
- spaze/phpstan-disallowed-calls: ^4.10
- symplify/phpstan-extensions: ^12.0
- tomasvotruba/cognitive-complexity: ^1.1
- tomasvotruba/type-coverage: ^2.1
README
AI agent skills, guidelines, and .mcp.json emission for Laravel-package authors. Inherits the framework-agnostic package-author toolkit from sandermuller/package-boost-php and layers on Laravel-specific context: Testbench conventions, cross-version Laravel support, CI matrix diagnostics, and the McpJsonEmitter that wires laravel/boost's MCP server into Claude Code during boost sync.
Documentation: https://sandermuller.github.io/boost-core/packages/package-boost-laravel/
Where
laravel/boosttargets Laravel application developers, this package targets the people building Laravel packages — the dev-time codebase whereapp/,bootstrap/and.envdo not exist andphp artisandoes not apply. Not sure which family member fits? The picker decides it in two questions.
What you get
McpJsonEmitter — the zero-overlap claim against laravel/boost. It updates .mcp.json on every boost sync, idempotently, with the command pointed at vendor/bin/testbench boost:mcp (not php artisan) so the MCP server actually boots in a package codebase. It merges rather than overwrites: only mcpServers.laravel-boost is touched, so your own servers, other top-level keys, and extra keys on that entry survive, and a .mcp.json it cannot parse is left alone. It fires only when laravel/boost and orchestra/testbench are both in your dev dependencies and Agent::CLAUDE_CODE is active; otherwise it skips silently.
Three Laravel skills. All untagged, so they ship whenever this package is installed.
| Skill | When it loads |
|---|---|
package-development |
Testbench conventions: vendor/bin/testbench versus php artisan, service-provider registration in testbench.yaml, the workbench/ layout |
cross-version-laravel-support |
Several Laravel majors in one release: constraint patterns, version shims, the CI matrix shape including prefer-lowest |
ci-matrix-troubleshooting |
Debugging "fails on prefer-lowest" and "fails on Laravel 13 but not 12" matrix failures |
One Laravel guideline — laravel-packages. The detection rule (require.illuminate/* or require.laravel/framework), Testbench context, the artisan-substitution table, and a cross-version pointer. It composes with the framework-agnostic foundation guideline inherited from package-boost-php.
Everything package-boost-php ships comes along: the foundation guideline, the lean and gitattributes CLI commands, and the lean-dist skill.
Install
composer require --dev sandermuller/package-boost-laravel vendor/bin/boost install # pick agents and allowlist vendors vendor/bin/boost sync # fan skills + guidelines out
PHP 8.3+ and Laravel 12 or 13. sandermuller/package-boost-php, sandermuller/boost-core, and stolt/lean-package-validator all come in transitively — do not require any of them separately.
Allowlist both package vendors in boost.php, since inheritance is a Composer dependency and not an allowlist entry:
return BoostConfig::configure() ->withAgents([Agent::CLAUDE_CODE, Agent::COPILOT, Agent::CODEX]) ->withAllowedVendors([ 'sandermuller/boost-skills', 'sandermuller/package-boost-laravel', 'sandermuller/package-boost-php', ]) ->withTags([Tag::Php, Tag::Laravel, Tag::Github, 'release-automation']);
Documentation
| Topic | Page |
|---|---|
McpJsonEmitter, the skills, what it inherits |
Overview |
| Install and first run | Install |
boost.php, tags, inheritance, coexistence, auto-sync |
Configuration |
Writing a custom FileEmitter |
Publishing a skill package |
| Tags, skill dependencies, remote skills, conventions | Guide |
| Every command and exit code | CLI reference |
The semver-protected surface is in PUBLIC_API.md. Everything else is @internal.
Testing
composer test
License
MIT. See LICENSE.
