sandermuller / boost-skills
A package that ships generic AI skills to be used for shipping code in both packages and projects
Requires (Dev)
- php: ^8.3
- laravel/pao: ^1.0
- nunomaduro/collision: ^8.0
- sandermuller/package-boost-php: ^0.4
README
Generic AI agent skills for PHP projects and Composer packages. Authored once here, synced to every AI agent by the boost family.
boost-skills is a skill-bearing package. It ships AI agent skills under resources/boost/skills/ — code review, bug fixing, spec-driven implementation, release checklists, Jira workflows, and more. Most apply to any project; some are tagged for a specific capability — see Skill tags.
The package carries no runtime code; it's pure Markdown. A sync engine reads these skills and writes them into each AI agent directory you've configured (Claude Code, Cursor, Copilot, Codex, Gemini, and the rest) on every composer install or composer update. You get that engine through a boost family package.
The boost family
boost-skills ships the skills but does not sync them. Pair it with the package that matches your role:
sandermuller/package-boost-phpif you write framework-agnostic Composer packagessandermuller/package-boost-laravelif you write Laravel packagessandermuller/project-boostif you build a PHP applicationlaravel/boostif you build a Laravel application
The three sandermuller/* packages bundle the sandermuller/boost-core sync engine, so you rarely install boost-core yourself. laravel/boost is Laravel's own engine and reads boost-skills just as well; follow its setup for that one. If none of these fit (a non-PHP package, say), install boost-core directly.
Install
Install boost-skills together with the family package for your role. For a framework-agnostic package author, that is package-boost-php:
composer require --dev sandermuller/boost-skills sandermuller/package-boost-php
Swap package-boost-php for package-boost-laravel or project-boost to match your role. The steps below use the boost-core engine's commands; on laravel/boost, follow its own setup instead and ensure sandermuller/boost-skills is among the packages it syncs.
boost-core, pulled in by the family package, ships an interactive setup command:
composer boost:install
boost:install generates a boost.php in your project root and lets you pick target agents and allowlisted vendors. Skills sync only from allowlisted vendors, so make sure sandermuller/boost-skills is selected. The result looks like:
return BoostConfig::configure() ->withAgents([ Agent::CLAUDE_CODE, Agent::COPILOT, Agent::CODEX, ]) ->withAllowedVendors([ 'sandermuller/boost-skills', 'sandermuller/package-boost-php', ]);
Then fan the skills out:
composer boost:sync
After that, every composer install or composer update re-syncs automatically. The generated agent directories (.claude/skills/, .github/skills/, and the rest) stay out of version control; boost-core manages that .gitignore block.
Skills
| Skill | What it does | Tags |
|---|---|---|
ai-guidelines |
Create and maintain AI skills and guideline files (.ai/, CLAUDE.md, AGENTS.md). |
— |
autoresearch |
Autonomous performance loop: benchmark, change code, then keep or revert by measured result. | — |
backend-quality |
Two-tier PHP quality gate: Pint + related tests on every change, PHPStan + full suite on completion. | php |
bug-fixing |
Test-driven bug workflow: reproduce with a failing test, then fix it. | — |
code-review |
Review recent changes across functionality, code quality, security, and tests. | — |
codex-review |
Request an independent review from the OpenAI Codex CLI, then apply the warranted fixes. | — |
evaluate |
Self-review a full implementation and fix the issues it surfaces. | — |
frontend-quality |
Frontend quality gate: TypeScript type-check + ESLint. | frontend |
implement-spec |
Implement a specification file phase by phase with progress tracking. | — |
jira-create |
Create a Jira issue with a well-formed, user-facing description. | jira |
jira-rework |
Research a Jira issue sent back for rework, then propose fix options. | jira github |
jira-updates |
Update a Jira issue after its PR is created; post Blocked-by-Question comments. | jira github |
pr-review-feedback |
Apply PR review comments, evaluating each critically before acting. | github |
pre-release |
Pre-push gauntlet: Rector, Pint, full test suite, PHPStan, and a doc-staleness audit. | php github |
write-spec |
Write implementation-ready specification files with progress-trackable phases. | — |
Skill tags
Most skills are universal — they sync to every project. Several declare boost-tags in their SKILL.md frontmatter metadata, naming a capability the project needs for the skill to be useful:
| Tag | Meaning |
|---|---|
php |
PHP toolchain — Pint, PHPStan, Rector |
frontend |
JS/TS frontend — ESLint, type-checking |
github |
hosted on GitHub |
jira |
issue tracking in Jira |
A skill can carry more than one tag, and then applies only where the project has all of them — jira-rework is jira + github. A boost-core version with tag filtering uses these tags to sync a tagged skill only to projects that opt into the matching capabilities, so a project is never offered skills for tools it doesn't use. With earlier boost-core versions the tags are inert and every skill syncs.
Editing skills
Each skill is a Markdown file at resources/boost/skills/<name>/SKILL.md with YAML frontmatter — name and description, plus optional metadata (a skill's boost-tags live here), argument-hint, and user_invocable. Edit them here in this repository, not in a consuming project's synced copy, which boost-core overwrites on the next sync. The skill-authoring and ai-guidelines skills document the frontmatter contract and authoring conventions.
Changelog
See CHANGELOG.md for release history.
Security
Found a vulnerability? Email github@scode.nl rather than opening a public issue. See SECURITY.md for the disclosure policy.
Credits
License
MIT. See LICENSE.