sandermuller / boost-skills
A package that ships AI skills to be used for shipping code in both packages and projects
Package info
github.com/SanderMuller/boost-skills
Language:JavaScript
pkg:composer/sandermuller/boost-skills
Requires
- php: ^8.3
- sandermuller/boost-core: ^1.4
Requires (Dev)
- laravel/pao: ^1.0
- nunomaduro/collision: ^8.0
- sandermuller/package-boost-php: ^1.0
- stolt/skill-validator: 0.0.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 2.52.1
- 2.52.0
- 2.51.0
- 2.50.0
- 2.49.0
- 2.48.0
- 2.47.1
- 2.47.0
- 2.46.1
- 2.46.0
- 2.45.0
- 2.44.0
- 2.43.0
- 2.42.0
- 2.41.0
- 2.40.0
- 2.39.1
- 2.39.0
- 2.38.0
- 2.37.0
- 2.36.0
- 2.35.1
- 2.35.0
- 2.34.0
- 2.33.0
- 2.32.2
- 2.32.1
- 2.32.0
- 2.31.0
- 2.30.0
- 2.29.0
- 2.28.0
- 2.27.0
- 2.26.0
- 2.25.0
- 2.24.0
- 2.23.1
- 2.23.0
- 2.22.0
- 2.21.0
- 2.20.0
- 2.19.0
- 2.18.0
- 2.17.0
- 2.16.1
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.9.9
- 1.9.8
- 1.9.7
- 1.9.6
- 1.9.5
- 1.9.4
- 1.9.3
- 1.9.2
- 1.9.1
- 1.9.0
- 1.8.1
- 1.8.0
- 1.8.0-rc1
- 1.7.2
- 1.7.1
- 1.7.0
- 1.7.0-rc2
- 1.7.0-rc1
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 0.1.0
- dev-resolve-conflicts-verification-cost
- dev-feature/review-lens-skills
- dev-frontend-tests-run-and-write
- dev-harden-codex-review-hangs
- dev-feat/paired-visible-default-tokens
- dev-1.8.0-rc1-prep
- dev-1.7.0-rc1-prep
This package is auto-updated.
Last update: 2026-10-16 12:50:13 UTC
README
Sander Muller's personal Composer-distributed catalog of AI agent skills for PHP projects and Composer packages. Adopt it if your preferences align with Sander's, or use it as a template for your own.
No runtime code — pure Markdown. A sync engine (sandermuller/boost-core or laravel/boost) reads the skills and always-on guidelines in the catalog and writes them into every AI agent directory you have configured: Claude Code, Cursor, Copilot, Codex, Gemini, and the rest.
Documentation: https://sandermuller.github.io/boost-core/packages/boost-skills/
Install
Install the catalog beside the family package for your role — the picker settles which in two questions:
composer require --dev sandermuller/boost-skills sandermuller/package-boost-php
Then allowlist the vendor — a catalog ships nothing until you name it:
return BoostConfig::configure() ->withAgents([Agent::CLAUDE_CODE, Agent::COPILOT, Agent::CODEX]) ->withAllowedVendors([ 'sandermuller/boost-skills', 'sandermuller/package-boost-php', ]) ->withTags(['php', 'github']);
vendor/bin/boost install # the picker offers this vendor; select it
vendor/bin/boost sync
vendor/bin/boost tags lists what a further tag would unlock.
Under laravel/boost instead, follow its setup and include this package in what it syncs. Tag filtering and Project Conventions slots are inert there; skills carry visible defaults, so a slot still reads sensibly.
In every project
To use some skills outside a project, install the catalog globally and list the skills you want in ~/.boost/user-scope.php (needs boost-core >= 1.13.0):
composer global require sandermuller/boost-skills
<?php return [ 'skills' => [ 'sandermuller/boost-skills' => ['interview', 'promptimize', 'write-spec'], ], ];
boost sync --scope=user --all
Each skill is published with a -user suffix, for example /interview-user, so it never hides a project's own copy. A listed skill also brings the skills it names in boost-requires. A package with no entry publishes every skill. User scope has no boost.php, so tags do not apply and conventions slots show their defaults. See Choose user-scope skills.
Documentation
| Topic | Page |
|---|---|
| Adopting the catalog, editing a skill | Overview |
| The same inventory, rendered | Skill catalog |
| Where skills come from, and which gates apply | Skill sources |
How tags and boost-requires work |
Tags and dependencies |
| The conventions slot mechanism | Project Conventions |
| Shipping scripts beside a skill | Skill assets |
Re-syncing on composer install |
Automating the sync |
Catalog
The package ships skills, always-on guidelines and Claude Code subagents. Most content is universal. The rest carries capability tags: a project declares what it has in boost.php via ->withTags(...), and only matching content syncs.
CATALOG.md lists every skill, tag, guideline and subagent, with its tags.
Already wrote a subagent yourself? Claude Code picks a subagent by its frontmatter name, so a local .claude/agents/tech-lead-reviewer.md and the shipped one clash. Delete or rename yours; boost sync warns until you do.
Editing skills and guidelines
Skills are resources/boost/skills/<name>/SKILL.md with name + description frontmatter. Guidelines are resources/boost/guidelines/<name>.md with no frontmatter — they must open at a heading to render under both engines.
Edit them here, never in a consuming project's synced copy — boost-core overwrites that on the next sync. The ai-guidelines skill carries the frontmatter contract.
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.
Skill scanners report findings here
Static skill scanners such as SkillSpector flag this package. The findings are false positives. Three patterns cause them:
- HTML comments read as prompt injection. A
<!--boost:conv …-->token is aboost-coreplaceholder that the sync resolves, and<!-- verified-sha: … -->and<!-- spec:planned-at … -->are anchors. A scanner cannot tell them from a hidden instruction. - Anti-pattern prose read as an instruction. A skill that lists "without asking" or "skip verification" as a thing not to do matches the same string as a skill that tells an agent to do it.
- Documented shell commands read as tool misuse. The
autoresearchskill printsgit reset --hard HEAD~1because its loop commits before it measures, so a rejected experiment reverts in one step.
Do not add a scanner baseline file to this repository. A baseline written by the package author suppresses the findings in a consumer's own scan, which is why SkillSpector ignores a discovered baseline until the consumer opts in.
Credits
License
MIT. See LICENSE.