{"id":50435671,"url":"https://github.com/sandermuller/package-boost-laravel","last_synced_at":"2026-05-31T17:00:40.124Z","repository":{"id":358549987,"uuid":"1241811037","full_name":"SanderMuller/package-boost-laravel","owner":"SanderMuller","description":"AI agent skills for Laravel package authors. Adds Laravel skills + .mcp.json emission on top of package-boost-php.","archived":false,"fork":false,"pushed_at":"2026-05-25T21:27:30.000Z","size":123,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T23:23:07.825Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SanderMuller.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-17T21:01:15.000Z","updated_at":"2026-05-25T21:27:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SanderMuller/package-boost-laravel","commit_stats":null,"previous_names":["sandermuller/package-boost-laravel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SanderMuller/package-boost-laravel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderMuller%2Fpackage-boost-laravel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderMuller%2Fpackage-boost-laravel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderMuller%2Fpackage-boost-laravel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderMuller%2Fpackage-boost-laravel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SanderMuller","download_url":"https://codeload.github.com/SanderMuller/package-boost-laravel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderMuller%2Fpackage-boost-laravel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33739861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T17:00:23.015Z","updated_at":"2026-05-31T17:00:40.117Z","avatar_url":"https://github.com/SanderMuller.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# package-boost-laravel\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/sandermuller/package-boost-laravel.svg?style=flat-square)](https://packagist.org/packages/sandermuller/package-boost-laravel)\n[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/sandermuller/package-boost-laravel/run-tests.yml?branch=main\u0026label=tests\u0026style=flat-square)](https://github.com/sandermuller/package-boost-laravel/actions/workflows/run-tests.yml)\n[![Total Downloads](https://img.shields.io/packagist/dt/sandermuller/package-boost-laravel.svg?style=flat-square)](https://packagist.org/packages/sandermuller/package-boost-laravel)\n[![License](https://img.shields.io/packagist/l/sandermuller/package-boost-laravel.svg?style=flat-square)](LICENSE)\n[![Laravel Boost](https://badge.laravel.cloud/boost-badge.svg?style=flat-square)](https://github.com/laravel/boost)\n\nAI agent skills, guidelines, and `.mcp.json` emission for Laravel-package authors. Inherits the framework-agnostic package-author toolkit from [`sandermuller/package-boost-php`](https://github.com/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`.\n\n\u003e Where [`laravel/boost`](https://github.com/laravel/boost) targets Laravel **application** developers, `package-boost-laravel` targets the people building Laravel **packages** — the dev-time codebase where `app/`, `bootstrap/`, and `.env` don't exist and `php artisan` doesn't apply. Coexists cleanly with `laravel/boost` if you also dogfood it from inside your package's test app.\n\n## Which package fits your role?\n\n| You're building                          | Install                                                                                       | Ships                                                                                                |\n|------------------------------------------|-----------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|\n| A PHP application (not a package)        | [`sandermuller/project-boost`](https://github.com/sandermuller/project-boost)                 | App-dev skills: DDD layering, repository pattern, DI, domain modeling, legacy coexistence            |\n| A Laravel application                    | [`sandermuller/project-boost-laravel`](https://github.com/sandermuller/project-boost-laravel) | `laravel/boost` MCP coexistence + nine-agent fanout + tag filter + remote skills                     |\n| A framework-agnostic Composer package    | [`sandermuller/package-boost-php`](https://github.com/sandermuller/package-boost-php)         | Package-author skills + `lean` / `gitattributes` commands                                            |\n| **A Laravel package**                    | **[`sandermuller/package-boost-laravel`](https://github.com/sandermuller/package-boost-laravel)** | **Laravel-package skills + `McpJsonEmitter`  ← you are here**                                    |\n| Your own skill bundle, or custom tooling | [`sandermuller/boost-core`](https://github.com/sandermuller/boost-core)                       | The sync engine. You supply the skills.                                                              |\n\n## What you get\n\n**`McpJsonEmitter`** — the zero-overlap claim against `laravel/boost`. Writes `.mcp.json` on every `boost sync`, idempotent, with the command pointed at `vendor/bin/testbench boost:mcp` (not `php artisan`) so the MCP server actually boots in a package codebase. `laravel/boost` writes `.mcp.json` once at install time against `php artisan`, which doesn't exist here. The emitter fires only when all three conditions hold: `laravel/boost` is in your dev dependencies, `orchestra/testbench` is in your dev dependencies, and `Agent::CLAUDE_CODE` is in your active agents. Otherwise it returns null and skips silently.\n\n**Three Laravel-flavored skills** — on-demand workflows for Laravel-package authorship. All three are untagged, so they ship whenever this package is installed.\n\n| Skill                          | When it loads                                                                                                              | Tag |\n|--------------------------------|----------------------------------------------------------------------------------------------------------------------------|-----|\n| `package-development`          | Testbench conventions: `vendor/bin/testbench` vs `php artisan`, service-provider registration in `testbench.yaml`, `workbench/` layout for fixtures, migrations, routes, factories. | —   |\n| `cross-version-laravel-support`| Supporting multiple Laravel majors in one release: `^12.0\\|\\|^13.0` constraint patterns, version-specific API shims, CI matrix shape including `prefer-lowest`. | —   |\n| `ci-matrix-troubleshooting`    | Debugging \"fails on prefer-lowest\" / \"fails on Laravel 13 but not 12\" type matrix failures.                                | —   |\n\n**One Laravel guideline** — pinned context for AI agents working in a Laravel-package codebase.\n\n| Guideline          | Scope                                                                                                                                                                | Tag |\n|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|\n| `laravel-packages` | Detection rule (`require.illuminate/*` or `require.laravel/framework`), Testbench context, artisan-substitution table, cross-version compatibility pointer. Composes with the framework-agnostic `foundation` guideline inherited from `package-boost-php`. | —   |\n\nInherits everything `package-boost-php` ships — `foundation` guideline, `lean` / `gitattributes` CLI commands, the `lean-dist` skill, and the release-flow content skills (`readme`, `release-notes`, `upgrading`) from `sandermuller/boost-skills` under the `release-automation` tag. The `skill-authoring` + `writing-file-emitter` skills ship too but are gated behind the `boost-extension` tag — declare it if your package extends the engine with a custom `FileEmitter` (this package does, for `McpJsonEmitter`).\n\n## Install\n\n```bash\ncomposer require --dev sandermuller/package-boost-laravel\n```\n\nPHP 8.3+ and Laravel 12 or 13. `sandermuller/package-boost-php` (and through it, `sandermuller/boost-core` + `stolt/lean-package-validator`) comes in transitively — do **not** require any of them separately, they resolve through this umbrella. A Laravel-package author requires only `sandermuller/package-boost-laravel` and gets the whole stack.\n\n## First run\n\n```bash\nvendor/bin/boost install   # interactive: pick agents, allowlist vendors (writes boost.php)\nvendor/bin/boost sync      # fan out skills + guidelines to selected agents\n```\n\nIf `laravel/boost` + `orchestra/testbench` are in your dev deps and Claude Code is one of your active agents, `boost sync` writes `.mcp.json` automatically. Generated agent dirs (`.claude/`, `.cursor/`, etc.) are added to `.gitignore`; edit `.ai/` only, then re-run `vendor/bin/boost sync`.\n\n## `boost.php` config\n\n```php\n\u003c?php declare(strict_types=1);\n\nuse SanderMuller\\BoostCore\\Config\\BoostConfig;\nuse SanderMuller\\BoostCore\\Enums\\Agent;\nuse SanderMuller\\BoostCore\\Enums\\Tag;\n\nreturn BoostConfig::configure()\n    -\u003ewithAgents([Agent::CLAUDE_CODE, Agent::COPILOT, Agent::CODEX])\n    -\u003ewithAllowedVendors([\n        'sandermuller/boost-skills',\n        'sandermuller/package-boost-laravel',\n        'sandermuller/package-boost-php',\n    ])\n    -\u003ewithTags(Tag::Php, Tag::Laravel, Tag::Github, 'release-automation');\n```\n\nThe `release-automation` tag pulls the release-flow skills from `sandermuller/boost-skills`; add `'boost-extension'` to pull `skill-authoring` + `writing-file-emitter` if you author a custom `FileEmitter`. Full `BoostConfig` reference lives in [`sandermuller/boost-core`'s README](https://github.com/sandermuller/boost-core#readme).\n\n## Coexistence and inheritance\n\nThree relationships, distinct shapes:\n\n- **Inherits from [`sandermuller/package-boost-php`](https://github.com/sandermuller/package-boost-php).** Required as a Composer dependency. Everything that package ships — the `foundation` guideline, the `lean` / `gitattributes` CLI, the framework-agnostic package-author skills — is available without re-declaring. This package layers Laravel-specific skills, the `laravel-packages` guideline, and `McpJsonEmitter` on top.\n- **Coexists with [`laravel/boost`](https://github.com/laravel/boost) inside the package's test app.** Disjoint concerns: this package is dev-time package authorship (skills, guidelines, MCP wiring); `laravel/boost` is the MCP server + Laravel docs API your AI agent talks to once running. The `McpJsonEmitter` is the seam — it points the MCP client at `vendor/bin/testbench boost:mcp` so `laravel/boost`'s server can boot under Testbench. Without this emitter, `laravel/boost`'s install-time `.mcp.json` write targets `php artisan`, which doesn't exist in a package codebase.\n- **Serves Laravel-package projects.** The consumer is a package author writing a Composer package that depends on Laravel. The guideline activates only when `composer.json` declares `require.illuminate/*` or `require.laravel/framework`; the skills are tagged for Laravel-package workflows.\n\n## Auto-sync\n\nTo re-sync on every `composer install` / `composer update`, wire the callback into your project's `composer.json`:\n\n```json\n\"scripts\": {\n    \"post-install-cmd\": [\"SanderMuller\\\\BoostCore\\\\Scripts\\\\BoostAutoSync::run\"],\n    \"post-update-cmd\": [\"SanderMuller\\\\BoostCore\\\\Scripts\\\\BoostAutoSync::run\"]\n}\n```\n\n`BOOST_SKIP_AUTOSYNC=1` disables the callback. (Boost-core 0.6.0 retired its Composer plugin; consumer auto-sync is opt-in via this script hook.)\n\n## Testing\n\n```bash\ncomposer test\n```\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandermuller%2Fpackage-boost-laravel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandermuller%2Fpackage-boost-laravel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandermuller%2Fpackage-boost-laravel/lists"}