laravel-verification
Bucle de verificación para proyectos Laravel: verificaciones de entorno, linting, análisis estático, pruebas con cobertura, escaneos de seguridad y preparación para despliegue.
What this skill does
# Bucle de Verificación Laravel
Ejecutar antes de PRs, después de cambios importantes y antes del despliegue.
## Cuándo Usar
- Antes de abrir un pull request para un proyecto Laravel
- Después de refactorizaciones importantes o actualizaciones de dependencias
- Verificación previa al despliegue para staging o producción
- Ejecutar el pipeline completo de lint -> prueba -> seguridad -> preparación para despliegue
## Cómo Funciona
- Ejecutar las fases secuencialmente desde las verificaciones de entorno hasta la preparación para despliegue, de modo que cada capa construya sobre la anterior.
- Las verificaciones de entorno y Composer son requisitos previos para todo lo demás; detener inmediatamente si fallan.
- El linting/análisis estático debe estar limpio antes de ejecutar pruebas completas y cobertura.
- Las revisiones de seguridad y migraciones ocurren después de las pruebas para verificar el comportamiento antes de los pasos de datos o lanzamiento.
- La preparación de build/despliegue y las verificaciones de cola/scheduler son los últimos filtros; cualquier fallo bloquea el lanzamiento.
## Fase 1: Verificaciones de Entorno
```bash
php -v
composer --version
php artisan --version
```
- Verificar que `.env` esté presente y que las claves requeridas existan
- Confirmar `APP_DEBUG=false` para entornos de producción
- Confirmar que `APP_ENV` coincida con el despliegue objetivo (`production`, `staging`)
Si se usa Laravel Sail localmente:
```bash
./vendor/bin/sail php -v
./vendor/bin/sail artisan --version
```
## Fase 1.5: Composer y Autoload
```bash
composer validate
composer dump-autoload -o
```
## Fase 2: Linting y Análisis Estático
```bash
vendor/bin/pint --test
vendor/bin/phpstan analyse
```
Si el proyecto usa Psalm en lugar de PHPStan:
```bash
vendor/bin/psalm
```
## Fase 3: Pruebas y Cobertura
```bash
php artisan test
```
Cobertura (CI):
```bash
XDEBUG_MODE=coverage php artisan test --coverage
```
Ejemplo de pipeline CI (formato -> análisis estático -> pruebas):
```bash
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
```
## Fase 4: Seguridad y Verificación de Dependencias
```bash
composer audit
```
## Fase 5: Base de Datos y Migraciones
```bash
php artisan migrate --pretend
php artisan migrate:status
```
- Revisar cuidadosamente las migraciones destructivas
- Asegurarse de que los nombres de archivo de migración sigan el formato `Y_m_d_His_*` (ej. `2025_03_14_154210_create_orders_table.php`) y describan el cambio claramente
- Asegurarse de que los rollbacks sean posibles
- Verificar los métodos `down()` y evitar la pérdida irreversible de datos sin copias de seguridad explícitas
## Fase 6: Preparación de Build y Despliegue
```bash
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
```
- Asegurarse de que los warmups de caché tengan éxito en la configuración de producción
- Verificar que los workers de cola y el scheduler estén configurados
- Confirmar que `storage/` y `bootstrap/cache/` sean escribibles en el entorno objetivo
## Fase 7: Verificaciones de Cola y Scheduler
```bash
php artisan schedule:list
php artisan queue:failed
```
Si se usa Horizon:
```bash
php artisan horizon:status
```
Si `queue:monitor` está disponible, usarlo para verificar el backlog sin procesar jobs:
```bash
php artisan queue:monitor default --max=100
```
Verificación activa (solo staging): despachar un job no-op a una cola dedicada y ejecutar un solo worker para procesarlo (asegurarse de que esté configurada una conexión de cola que no sea `sync`).
```bash
php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
php artisan queue:work --once --queue=healthcheck
```
Verificar que el job produjera el efecto secundario esperado (entrada de log, fila en tabla de healthcheck o métrica).
Ejecutar esto solo en entornos que no sean producción donde procesar un job de prueba sea seguro.
## Ejemplos
Flujo mínimo:
```bash
php -v
composer --version
php artisan --version
composer validate
vendor/bin/pint --test
vendor/bin/phpstan analyse
php artisan test
composer audit
php artisan migrate --pretend
php artisan config:cache
php artisan queue:failed
```
Pipeline estilo CI:
```bash
composer validate
composer dump-autoload -o
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
composer audit
php artisan migrate --pretend
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan schedule:list
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.