¿Qué hace boost-skills?
Catálogo personal de habilidades para agentes de IA, distribuido a través de Composer por Sander Muller, para proyectos PHP y paquetes Composer. Adóptalo si tus preferencias coinciden con las de Sander, o úsalo como plantilla para el tuyo propio.
sandermuller/boost-skills es un ejemplo de un catálogo de habilidades de IA distribuido a través de Composer. Incluye una mezcla curada de habilidades genéricas de flujo de trabajo (revisión de código, corrección de errores, implementación basada en especificaciones, listas de verificación de lanzamiento, flujos de trabajo de Jira, despliegue y más), elementos adicionales específicos de frameworks controlados por etiquetas, y directrices siempre activas. Consulta los inventarios completos de Habilidades y Directrices a continuación.
El paquete no contiene código en tiempo de ejecución; es Markdown puro. Un motor de sincronización (sandermuller/boost-core o laravel/boost) lee estas habilidades y las escribe en cada directorio de agente de IA que hayas configurado (Claude Code, Cursor, Copilot, Codex, Gemini y el resto).
¿De dónde provienen las habilidades?
De cualquier lugar que quieras. Las fuentes de habilidades se acumulan: mézclalas y combínalas libremente:
- Tu propia carpeta
.ai/skills/, creada manualmente junto al resto del proyecto. Sigue la misma convención quelaravel/boostyboost-coredetectan automáticamente. - Un paquete de catálogo instalado vía Composer. Cualquier paquete que incluya
resources/boost/skills/funciona. Sander publica su catálogo personal ensandermuller/boost-skills(este repositorio): adóptalo si tus preferencias coinciden con las de Sander, o úsalo como plantilla para tu propio catálogo privado/público. - Fuentes externas, no Composer, a través de
withRemoteSkills()deboost-core. Extrae paquetes de.skillpublicados en GitHub o repositorios de una sola habilidad directamente desde una URL. - Las habilidades Laravel incluidas en
laravel/boost: habilidades específicas de Laravel distribuidas por Laravel a través delaravel/boost(solo para aplicaciones Laravel).
withAllowedVendors() controla el acceso a los proveedores escaneados por Composer (fuente 2) solamente. withTags() filtra las fuentes 2, 3 y 4 (proveedores de Composer, habilidades remotas, paquete laravel/boost). La carpeta .ai/skills/ (fuente 1) omite ambos controles: tu proyecto ha creado esas habilidades, por lo que el motor las trata como canónicas y no les aplica ningún filtro.
La familia boost
Si adoptas sandermuller/boost-skills (o cualquier catálogo distribuido por Composer), combínalo con el motor de sincronización que coincida con tu rol:
sandermuller/package-boost-phpsi escribes paquetes Composer independientes del frameworksandermuller/package-boost-laravelsi escribes paquetes Laravelsandermuller/project-boost-phpsi construyes una aplicación PHPsandermuller/project-boost-laravelsi construyes una aplicación Laravel (coexiste conlaravel/boost— añade fan-out de nueve agentes, filtro de etiquetas, lista blanca de proveedores, habilidades remotas)
Los cuatro paquetes sandermuller/* incluyen el motor de sincronización sandermuller/boost-core, por lo que rara vez instalarás boost-core tú mismo. laravel/boost (el motor propio de Laravel, servidor MCP y API de documentación) coexiste con project-boost-laravel en aplicaciones Laravel: el paquete de la familia añade el fan-out de nueve agentes y los filtros por encima. Si prefieres omitir los controles de la familia y usar laravel/boost de forma independiente, también lee cualquier catálogo distribuido por Composer (incluyendo este) sin problemas; sigue su configuración para ese caso. Las ranuras de las convenciones del proyecto que boost-core insertaría en línea se siguen leyendo correctamente bajo laravel/boost — las habilidades tienen valores predeterminados visibles (consulta el esquema de Convenciones del Proyecto), por lo que obtienes un texto predeterminado sensato incluso si laravel/boost no resuelve las ranuras. Si ninguno de estos se ajusta (por ejemplo, un paquete que no es PHP), instala boost-core directamente.
Instalación
Si adoptas sandermuller/boost-skills como tu catálogo, instálalo junto con el paquete de la familia para tu rol de motor. Para un autor de paquetes independiente del framework, ese es package-boost-php:
composer require --dev sandermuller/boost-skills sandermuller/package-boost-php
Reemplaza package-boost-php por package-boost-laravel o project-boost para que coincida con tu rol. Los pasos a continuación utilizan los comandos del motor boost-core; en laravel/boost, sigue su propia configuración y asegúrate de que sandermuller/boost-skills esté entre los paquetes que sincroniza.
boost-core, incluido por el paquete de la familia, incluye un comando de configuración interactiva:
vendor/bin/boost install
boost install genera un archivo boost.php en la raíz de tu proyecto y te permite seleccionar los agentes objetivo y los proveedores en lista blanca. Las habilidades se sincronizan solo desde los proveedores en lista blanca, así que asegúrate de que sandermuller/boost-skills esté seleccionado. El resultado se ve así:
return BoostConfig::configure()
->withAgents([
Agent::CLAUDE_CODE,
Agent::COPILOT,
Agent::CODEX,
])
->withAllowedVendors([
'sandermuller/boost-skills',
'sandermuller/package-boost-php',
])
->withTags(['php', 'github']);
Declara las capacidades de tu proyecto en ->withTags(...) — las habilidades y directrices etiquetadas se sincronizan solo con los proyectos que optan por ellas. Los valores iniciales comunes son 'php' y 'github'; consulta el registro de Etiquetas para obtener el vocabulario completo. Después de una sincronización, vendor/bin/boost tags muestra qué contenido etiquetado está actualmente filtrado vs sincronizado — útil para identificar capacidades que quizás quieras declarar.
Luego, distribuye las habilidades:
vendor/bin/boost sync
Vuelve a sincronizar después de ediciones ejecutando vendor/bin/boost sync, o conecta el callback BoostAutoSync en los post-install-cmd / post-update-cmd de tu composer.json para volver a sincronizar automáticamente en cada composer install / composer update. Los directorios de agente generados (.claude/skills/, .github/skills/ y el resto) permanecen fuera del control de versiones; boost-core gestiona ese bloque de .gitignore.
Habilidades
| Habilidad | Qué hace | Etiquetas |
|---|---|---|
ai-guidelines | Crear y mantener archivos de habilidades y directrices de IA (.ai/, CLAUDE.md, AGENTS.md). | — |
autoresearch | Bucle de rendimiento autónomo: crea un punto de referencia, modifica el código, luego conserva o revierte según el resultado medido. | php |
backend-quality | Control de calidad PHP en dos niveles: Pint + pruebas relacionadas en cada cambio, PHPStan + suite completa al finalizar. | php |
bug-fixing | Flujo de trabajo de errores basado en pruebas: reproduce con una prueba fallida, luego corrígelo. | — |
code-review | Revisa cambios recientes en funcionalidad, calidad del código, seguridad y pruebas. | — |
codex-review | Solicita una revisión independiente de la CLI de OpenAI Codex, aplica las correcciones justificadas, vuelve a revisar hasta que esté limpio. | — |
deploying-laravel-cloud | Desplegar y gestionar aplicaciones Laravel en Laravel Cloud a través de la CLI cloud — entornos, bases de datos, dominios, facturación. | laravel-cloud hosting |
eloquent-models | Crear y mantener modelos Eloquent con constantes de columna/relación, docblocks completos y constantes FK. | laravel |
evaluate | Autoevaluar una implementación completa y corregir los problemas que surjan. | — |
final-verification-review | Veredicto final: ejecuta el bucle de evaluación completo, ejecuta en seco la verificación previa al cierre (flujo de PR o commit/lanzamiento sin PR), reporta LISTO / NO LISTO. | github |
frontend-quality | Control de calidad del frontend: verificación de tipos, linting y la suite de pruebas JS; verificación visual opcional para cambios de UI. | frontend |
github-issue-updates | Añadir una descripción orientada al usuario y elementos comprobables de QA a un issue de GitHub después de que una funcionalidad se lance. | github-issues |
humanizer | Eliminar signos de escritura generada por IA para que el texto suene natural y humano. | — |
implement-spec | Implementar un archivo de especificación fase por fase con seguimiento del progreso. | — |
interview | Extraer de manera adversaria los requisitos de una funcionalidad compleja — primero el código, auditoría de suposiciones — antes de escribir su especificación. | — |
jira-create | Crear un issue de Jira con una descripción bien formada y orientada al usuario. | jira |
jira-rework | Investigar un issue de Jira devuelto para reelaboración, luego proponer opciones de corrección. | jira github |
jira-updates | Actualizar un issue de Jira después de que se haya creado su PR; publicar comentarios de Bloqueado-por-Pregunta. | jira github |
migration-squash | Crear o revisar una migración de Laravel squash de forma segura: vuelco previo, luego una lista de verificación que detecta líneas base incompletas, contaminadas o con pérdida de datos. | laravel |
pr-review-feedback | Aplicar comentarios de revisión de PR, evaluando cada uno de manera crítica antes de actuar. | github |
pre-release | Prueba previa al push: Rector, Pint, suite de pruebas completa, PHPStan y una auditoría de documentación desactualizada. | php github |
pull-requests | Crear y gestionar tus propios PRs de GitHub a través de gh: escribir la descripción, verificar, enrutar según el riesgo. | github |
readme | Redactar y mantener un README de alta calidad para un paquete Composer — forma abreviada vs completa, tono, auditoría de desactualización. | release-automation |
release-notes | Redactar cuerpos de lanzamiento de GitHub para paquetes Composer — estructura, tono, menciones de cambios importantes, qué omitir. | release-automation |
resolve-conflicts | Resolver conflictos de fusión de git sin perder funcionalidad de ninguna de las partes. | — |
test-writing | Escribir pruebas específicas con nombres descriptivos que sigan Organizar-Actuar-Afirmar. | — |
upgrading | Estructura canónica para UPGRADING.md en un paquete Composer — cuándo mantenerlo, qué incluir. | release-automation |
ux-review | Sopesar opciones de UX/UI para una nueva funcionalidad, recomendar un enfoque y documentar la decisión. | — |
write-spec | Escribir archivos de especificación listos para implementar con fases rastreables de progreso. | — |
Etiquetas
La mayoría de las habilidades y directrices son universales: se sincronizan con todos los proyectos. Algunas llevan etiquetas de capacidad que nombran lo que el proyecto necesita (o ha aceptado) para que el contenido sea útil. Un proyecto declara sus capacidades en boost.php mediante ->withTags(...), y solo el contenido coincidente se sincroniza.
El mecanismo de etiquetas (coincidencia de subconjunto-AND, declaración withTags() en boost.php, metadata.boost-tags en el frontmatter de la habilidad, el manifiesto .boost-tags.yaml para directrices) es canónico de la familia, definido por boost-core y se aplica a cualquier catálogo distribuido por Composer. El vocabulario de etiquetas a continuación es la elección de un catálogo: la combinación de capacidades de Sander que surgen de las habilidades y directrices que boost-skills incluye. Otros catálogos pueden organizarse de manera diferente. Propietario nombra qué paquete de la familia boost incluye el contenido que usa cada etiqueta.
boost-core incluye un enum Tag más amplio (SanderMuller\BoostCore\Enums\Tag) con casos no vinculados a ninguna habilidad en este catálogo — Tag::Filament, Tag::Livewire, Tag::Volt, Tag::Inertia, Tag::Flux, Tag::Pest, Tag::Tailwind y otros. Estos son espacios reservados compatibles con versiones futuras en el vocabulario de la familia. Declararlos en tu withTags(...) es inofensivo hoy (ninguna habilidad incluida los tiene como objetivo) y sobrevive a las re-ejecuciones del selector de boost install según la regla de preservación de declarado-pero-no-descubierto de boost-core. La tabla a continuación cubre solo las etiquetas bajo las cuales boost-skills mismo incluye contenido actualmente; consulta Tag::* en boost-core para el vocabulario completo del enum.
| Etiqueta | Significado | Propietario |
|---|---|---|
boost-extension | opt-in — extender boost-core (habilidades personalizadas + FileEmitters) | package-boost-php |
database | el proyecto tiene una base de datos | boost-skills |
frontend | cadena de herramientas del frontend — verificación de tipos, linting, pruebas JS | boost-skills |
github | alojado en GitHub | boost-skills |
github-issues | seguimiento de issues en GitHub Issues | boost-skills |
hosting | el proyecto se despliega en una plataforma alojada (padre de etiquetas específicas de plataforma) | boost-skills |
jira | seguimiento de issues en Jira | boost-skills |
laravel | ... |
[truncado para traducción]