Que fait boost-skills ?
Catalogue personnel de compétences IA pour agents, distribué via Composer par Sander Muller, destiné aux projets PHP et aux packages Composer. Adoptez-le si vos préférences correspondent à celles de Sander, ou utilisez-le comme modèle pour le vôtre.
sandermuller/boost-skills est un exemple de catalogue de compétences IA distribué via Composer. Il fournit un mélange organisé de compétences génériques (revue de code, correction de bugs, implémentation basée sur des spécifications, listes de vérification de release, workflows Jira, déploiement, etc.), d'extras spécifiques à un framework contrôlés par des tags, et de directives toujours actives — voir les inventaires complets Compétences et Directives ci-dessous.
Le package ne contient aucun code d'exécution ; il est purement constitué de fichiers Markdown. Un moteur de synchronisation (sandermuller/boost-core ou laravel/boost) lit ces compétences et les écrit dans chaque répertoire d'agent IA que vous avez configuré (Claude Code, Cursor, Copilot, Codex, Gemini, etc.).
D'où viennent les compétences ?
De partout où vous le souhaitez. Les sources de compétences s'empilent — mélangez et assortissez librement :
- Votre propre dossier
.ai/skills/, rédigé à la main à côté du reste du projet. Même convention quelaravel/boostetboost-coredétectent automatiquement. - Un package catalogue installé via Composer. N'importe quel package qui fournit
resources/boost/skills/fonctionne. Sander publie son catalogue personnel sursandermuller/boost-skills(ce dépôt) — adoptez-le si vos préférences correspondent à celles de Sander, ou utilisez-le comme modèle pour votre propre catalogue public/privé. - Sources externes non Composer via
withRemoteSkills()deboost-core. Tirez des bundles de compétences.skillpubliés sur GitHub ou des dépôts de compétences uniques directement depuis une URL. - Compétences Laravel intégrées de
laravel/boost— compétences spécifiques à Laravel fournies par Laravel vialaravel/boost(applications Laravel uniquement).
withAllowedVendors() contrôle les fournisseurs scannés par Composer (source 2) uniquement. withTags() filtre les sources 2, 3 et 4 (fournisseurs Composer, compétences distantes, bundle laravel/boost). Le dossier .ai/skills/ (source 1) contourne les deux filtres — votre projet a rédigé ces compétences, donc le moteur les traite comme canoniques et n'applique aucun filtre.
La famille boost
Si vous adoptez sandermuller/boost-skills (ou tout catalogue distribué via Composer), associez-le au moteur de synchronisation qui correspond à votre rôle :
sandermuller/package-boost-phpsi vous écrivez des packages Composer indépendants du frameworksandermuller/package-boost-laravelsi vous écrivez des packages Laravelsandermuller/project-boost-phpsi vous construisez une application PHPsandermuller/project-boost-laravelsi vous construisez une application Laravel (coexiste aveclaravel/boost— ajoute la répartition neuf agents, le filtre de tags, la liste blanche de fournisseurs, les compétences distantes)
Les quatre packages sandermuller/* embarquent le moteur de synchronisation sandermuller/boost-core, donc vous installez rarement boost-core vous-même. laravel/boost (le propre moteur de Laravel, serveur MCP et API de documentation) coexiste avec project-boost-laravel dans les applications Laravel — le package familial superpose la répartition neuf agents et les filtres. Si vous préférez ignorer les contrôles familiaux et utiliser laravel/boost seul, il lit tout catalogue distribué via Composer (y compris celui-ci) tout aussi bien ; suivez sa configuration pour cela. Les emplacements de convention de projet que boost-core intégrerait en ligne sont toujours lus correctement sous laravel/boost — les compétences portent des valeurs par défaut visibles (voir schéma des conventions de projet), vous obtenez donc un libellé par défaut sensé même si laravel/boost ne résout pas les emplacements. Si aucun de ceux-ci ne convient (par exemple, un package non PHP), installez boost-core directement.
Installation
Si vous adoptez sandermuller/boost-skills comme catalogue, installez-le avec le package familial correspondant à votre rôle de moteur. Pour un auteur de package indépendant du framework, il s'agit de package-boost-php :
composer require --dev sandermuller/boost-skills sandermuller/package-boost-php
Remplacez package-boost-php par package-boost-laravel ou project-boost selon votre rôle. Les étapes ci-dessous utilisent les commandes du moteur boost-core ; avec laravel/boost, suivez sa propre configuration et assurez-vous que sandermuller/boost-skills fait partie des packages qu'il synchronise.
boost-core, intégré par le package familial, fournit une commande de configuration interactive :
vendor/bin/boost install
boost install génère un fichier boost.php à la racine de votre projet et vous permet de choisir les agents cibles et les fournisseurs autorisés. Les compétences sont synchronisées uniquement à partir des fournisseurs autorisés, donc assurez-vous que sandermuller/boost-skills est sélectionné. Le résultat ressemble à :
return BoostConfig::configure()
->withAgents([
Agent::CLAUDE_CODE,
Agent::COPILOT,
Agent::CODEX,
])
->withAllowedVendors([
'sandermuller/boost-skills',
'sandermuller/package-boost-php',
])
->withTags(['php', 'github']);
Déclarez les capacités de votre projet dans ->withTags(...) — les compétences et directives étiquetées ne sont synchronisées qu'avec les projets qui y adhèrent. Les points de départ courants sont 'php' et 'github' ; consultez le registre des Tags pour le vocabulaire complet. Après une synchronisation, vendor/bin/boost tags montre quel contenu étiqueté est actuellement filtré par rapport à ce qui est synchronisé — pratique pour repérer les capacités que vous pourriez souhaiter déclarer.
Ensuite, distribuez les compétences :
vendor/bin/boost sync
Re-synchronisez après des modifications en exécutant vendor/bin/boost sync, ou branchez le callback BoostAutoSync dans les post-install-cmd / post-update-cmd de votre composer.json pour une re-synchronisation automatique à chaque composer install / composer update. Les répertoires d'agents générés (.claude/skills/, .github/skills/, etc.) restent hors du contrôle de version ; boost-core gère ce bloc .gitignore.
Compétences
| Compétence | Description | Tags |
|---|---|---|
ai-guidelines | Créer et maintenir des fichiers de compétences et directives IA (.ai/, CLAUDE.md, AGENTS.md). | — |
autoresearch | Boucle de performance autonome : benchmark, modifier le code, puis conserver ou annuler selon le résultat mesuré. | php |
backend-quality | Porte de qualité PHP à deux niveaux : Pint + tests associés à chaque changement, PHPStan + suite complète à la fin. | php |
bug-fixing | Workflow de correction piloté par les tests : reproduire avec un test échouant, puis corriger. | — |
code-review | Revoir les changements récents sous les angles fonctionnalité, qualité du code, sécurité et tests. | — |
codex-review | Demander une revue indépendante à l'interface en ligne de commande OpenAI Codex, appliquer les correctifs justifiés, revoir jusqu'à propreté. | — |
deploying-laravel-cloud | Déployer et gérer des applications Laravel sur Laravel Cloud via l'interface en ligne de commande cloud — environnements, bases de données, domaines, facturation. | laravel-cloud hosting |
eloquent-models | Créer et maintenir des modèles Eloquent avec constantes de colonnes/relations, docblocks complets et constantes FK. | laravel |
evaluate | Auto-évaluation d'une implémentation complète et correction des problèmes soulevés. | — |
final-verification-review | Verdict de clôture : exécuter la boucle d'évaluation complète, effectuer un test à sec de la pré-vérification de clôture (flux PR ou commit/release sans PR), rapporter PRÊT / PAS PRÊT. | github |
frontend-quality | Porte de qualité frontend : vérification de types, linting et suite de tests JS ; vérification oculaire conseillée pour les modifications UI. | frontend |
github-issue-updates | Ajouter une description orientée utilisateur et des éléments testables QA à une issue GitHub après la livraison d'une fonctionnalité. | github-issues |
humanizer | Supprimer les signes d'écriture générée par IA pour que le texte paraisse naturel et humain. | — |
implement-spec | Implémenter un fichier de spécification phase par phase avec suivi de progression. | — |
interview | Extraire de manière contradictoire les exigences d'une fonctionnalité complexe — code d'abord, audit des hypothèses — avant d'écrire sa spécification. | — |
jira-create | Créer un issue Jira avec une description bien formée et orientée utilisateur. | jira |
jira-rework | Rechercher un issue Jira renvoyé pour retravail, puis proposer des options de correction. | jira github |
jira-updates | Mettre à jour un issue Jira après la création de sa PR ; poster des commentaires Bloqué-par-Question. | jira github |
migration-squash | Créer ou réviser un écrasement de migration Laravel en toute sécurité — pré-vérifier le dump, puis une liste de contrôle pour détecter les bases incomplètes, contaminées ou pertes de données. | laravel |
pr-review-feedback | Appliquer les commentaires de revue de PR, en évaluant chacun de manière critique avant d'agir. | github |
pre-release | Parcours du combattant avant envoi : Rector, Pint, suite de tests complète, PHPStan et audit de fraîcheur de la documentation. | php github |
pull-requests | Créer et gérer vos propres PR GitHub via gh : rédiger la description, vérifier, router par risque. | github |
readme | Rédiger et maintenir un README de haute qualité pour un package Composer — forme sommaire vs complète, ton, audit de fraîcheur. | release-automation |
release-notes | Rédiger des corps de version GitHub pour les packages Composer — structure, ton, mentions des changements cassants, ce qu'il faut omettre. | release-automation |
resolve-conflicts | Résoudre les conflits de fusion git sans perdre de fonctionnalité d'aucun côté. | — |
test-writing | Écrire des tests spécifiques et avec des noms descriptifs suivant Organiser-Agir-Asserter. | — |
upgrading | Structure canonique pour le fichier UPGRADING.md dans un package Composer — quand en maintenir un, quoi y mettre. | release-automation |
ux-review | Évaluer les options UX/UI pour une nouvelle fonctionnalité, recommander une approche et documenter la décision. | — |
write-spec | Rédiger des fichiers de spécification prêts à l'emploi avec des phases traçables en progression. | — |
Tags
La plupart des compétences et directives sont universelles — elles se synchronisent sur tous les projets. Certaines portent des tags de capacité nommant ce dont le projet a besoin (ou a choisi) pour que le contenu soit utile. Un projet déclare ses capacités dans boost.php via ->withTags(...), et seul le contenu correspondant est synchronisé.
Le mécanisme de tag (correspondance ET de sous-ensemble, déclaration withTags() dans boost.php, metadata.boost-tags dans le frontmatter des compétences, le manifeste .boost-tags.yaml pour les directives) est canonique pour la famille — défini par boost-core et s'applique à tout catalogue distribué via Composer. Le vocabulaire de tag ci-dessous est le choix d'un catalogue — le mélange de capacités de Sander exposées par les compétences et directives que boost-skills fournit. D'autres catalogues peuvent s'organiser différemment. Propriétaire nomme quel package de la famille boost fournit le contenu utilisant chaque tag.
boost-core fournit une énumération Tag plus large (SanderMuller\BoostCore\Enums\Tag) avec des cas non liés à une compétence de ce catalogue — Tag::Filament, Tag::Livewire, Tag::Volt, Tag::Inertia, Tag::Flux, Tag::Pest, Tag::Tailwind, et d'autres. Ce sont des emplacements compatibles avec les futures versions dans le vocabulaire familial. Les déclarer dans votre withTags(...) est inoffensif aujourd'hui (aucune compétence fournie ne les cible encore) et survit aux ré-exécutions du sélecteur boost install selon la règle de conservation de boost-core pour les éléments déclarés mais non découverts. Le tableau ci-dessous couvre uniquement les tags sous lesquels boost-skills fournit actuellement du contenu ; voir Tag::* dans boost-core pour le vocabulaire complet de l'énumération.
| Tag | Signification | Propriétaire |
|---|---|---|
boost-extension | adhésion — extension de boost-core (compétences personnalisées + FileEmitters) | package-boost-php |
database | le projet a une base de données | boost-skills |
frontend | chaîne d'outils frontend — vérification de types, linting, tests JS | boost-skills |
github | hébergé sur GitHub | boost-skills |
github-issues | suivi des issues dans GitHub Issues | boost-skills |
hosting | le projet est déployé sur une plateforme hébergée (parent des tags spécifiques à une plateforme) | boost-skills |
jira | suivi des issues dans Jira | boost-skills |
laravel | le projet utilise le framework Laravel | boost-skills |
...