sandermuller/boost-core
Sync AI agent config for any PHP project. Author skills, guidelines, and commands once in .ai/ and boost-core publishes them to ten agents, with Composer skill packages, tag scoping, and never clobbering hand-written files.
.cursor/rules, CLAUDE.md, Copilot instructions, etc.), this is a ready-made argument for consolidating to a single .ai/ source of truth and generating the rest. That is a real, recurring maintenance cost — and a real source of drift, where an instruction gets updated in one agent's config and silently rots in the other nine.withAgents()), it makes "which AI assistants do we officially support?" a cheap, reversible product decision rather than an integration project. Adding or dropping an agent becomes a config line, not a quarter of engineering work. This directly de-risks the most likely scenario in any 2026 roadmap: your team's primary assistant changes.~/.boost/user-scope.php lets you declare which skills each globally installed package publishes at user scope, rather than publishing everything. That turns "how much third-party AI guidance lands on every engineer's machine?" into a reviewable policy file instead of an all-or-nothing install decision — a governance lever that previously didn't exist. Treat this file as a reviewed artifact, not a local preference.llms.txt, install guides, published skills) is increasingly part of the adoption funnel. This package is a useful reference implementation for how to expose that surface, and the Laravel Boost badge signals alignment with the official ecosystem direction. 1.13.0 is also a decent worked example of a hard problem in that surface: namespacing published artifacts (<skill>-user) so a globally installed package can't shadow a project-local one, and resolving cross-package name collisions deterministically.Consider it when:
laravel/boost. This matters for agencies and polyglot shops running PHP services alongside other stacks.Look elsewhere — or wait — when:
laravel/boost already covers you. Validate the overlap first. If the official package is on your roadmap and does most of this, adopting a community satellite creates a migration you'll pay for later. The maintainer's own framing (badge, "Laravel Boost" positioning) suggests this is complementary rather than competing — confirm that with a spike, not a README.1.x release that renames every user-scope skill path and requires reading UPGRADING.md before the next --scope=user sync; the prior layout had a real defect (nested user-scope skills were invisible to Claude Code). That's the right fix, but it tells you the user-scope surface is still moving. If your team can't tolerate a "read the upgrade notes before syncing" step, wait for the layout to settle or stay project-scope-only.For executives: We currently duplicate our AI coding instructions across multiple assistant-specific files, which means they drift and we re-do the work every time we evaluate a new tool. This is a small, MIT-licensed, framework-agnostic utility that lets us write those instructions once and publish them to ten assistants automatically. The strategic value is optionality: it makes switching or adding an AI assistant a config change instead of an engineering project. Cost is negligible; the catch is that it's early-stage — one maintainer, minimal adoption, and the most recent release renamed user-scope skill paths in a way that requires a documented upgrade step, so it is not yet "set and forget." Recommendation stays a contained pilot in one or two repos, not a platform commitment. If it doesn't pan out, the code is small and permissively licensed, so we keep the work.
For engineering: It's a thin CLI over a config file. You keep .ai/ as the source of truth in the repo; withAgents() declares targets; sync writes the agent-specific files. No framework coupling, so it works in our Symfony and plain-PHP services too. Four asks before we commit: (1) a half-day spike confirming it doesn't collide with laravel/boost if that lands on our roadmap; (2) we pin the exact version and read UPGRADING.md before any user-scope sync — 1.13.0 flattens user-scope skills to ~/.{agent}/skills/<skill>-user/SKILL.md and the first sync reaps the old nested copies (edited nested files are left in place, and pre-0.4 leftovers are no longer migrated, so budget a cleanup pass); (3) if we enable --scope=user, we commit ~/.boost/user-scope.php to dotfiles and review it, since it now controls which skills every globally installed package publishes — and note the collision rule is "first package alphabetically wins," so skill names are effectively a namespace we should own; (4) generated files stay out of the source-of-truth path so removal is trivial. Upside worth knowing: the write guards (no clobbering unowned files, no symlink targets) make a home-directory sync much safer to trial than it was last version. If adoption stalls, we fork or reimplement the sync step — it's a weekend, not a quarter.
Headline risk to state plainly: bus factor of one, three stars, zero dependents, and a user-scope layout that just changed incompatibly in a minor release. Mitigate by treating it as an internal utility we happen to source externally, not as infrastructure we depend on.
How can I help you explore Laravel packages today?