Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/affaan-m-laravel-verification/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 30% | 0% |
在发起 PR 前、进行重大更改后以及部署前运行。
bashphp -v composer --version php artisan --version
.env 文件存在且包含必需的键APP_DEBUG=falseAPP_ENV 与目标部署环境匹配(production、staging)如果在本地使用 Laravel Sail:
bash./vendor/bin/sail php -v ./vendor/bin/sail artisan --version
bashcomposer validate composer dump-autoload -o
bashvendor/bin/pint --test vendor/bin/phpstan analyse
如果你的项目使用 Psalm 而不是 PHPStan:
bashvendor/bin/psalm
bashphp artisan test
覆盖率(CI 环境):
bashXDEBUG_MODE=coverage php artisan test --coverage
CI 示例(格式化 -> 静态分析 -> 测试):
bashvendor/bin/pint --test vendor/bin/phpstan analyse XDEBUG_MODE=coverage php artisan test --coverage
bashcomposer audit
bashphp artisan migrate --pretend php artisan migrate:status
Y_m_d_His_* 格式(例如,2025_03_14_154210_create_orders_table.php)并清晰地描述变更down() 方法,避免在没有明确备份的情况下造成不可逆的数据丢失bashphp artisan optimize:clear php artisan config:cache php artisan route:cache php artisan view:cache
storage/ 和 bootstrap/cache/ 目录可写bashphp artisan schedule:list php artisan queue:failed
如果使用了 Horizon:
bashphp artisan horizon:status
如果 queue:monitor 命令可用,可以用它来检查积压作业而无需处理它们:
bashphp artisan queue:monitor default --max=100
主动验证(仅限预生产环境):向一个专用队列分发一个无操作作业,并运行一个单独的工作者来处理它(确保配置了一个非 sync 的队列连接)。
bashphp artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))" php artisan queue:work --once --queue=healthcheck
验证该作业产生了预期的副作用(日志条目、健康检查表行或指标)。
仅在处理测试作业是安全的非生产环境中运行此检查。
最小流程:
bashphp -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
CI 风格流水线:
bashcomposer 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
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 15,829 | 9,141 | -42% | 1 | 1 | 0% | 3,054 | 2,538 | -17% | 0 | 0 | — |
case-02 | fail→pass | 14,961 | 7,798 | -48% | 1 | 1 | 0% | 2,448 | 2,605 | +6% | 0 | 0 | — |
case-03 | fail→pass | 10,758 | 13,552 | +26% | 1 | 1 | 0% | 2,231 | 2,558 | +15% | 0 | 0 | — |
case-04 | fail→pass | 6,754 | 2,504 | -63% | 1 | 1 | 0% | 1,193 | 1,525 | +28% | 0 | 0 | — |
case-05 | fail→fail | 9,373 | 2,417 | -74% | 1 | 1 | 0% | 1,812 | 1,520 | -16% | 0 | 0 | — |
case-06 | pass→pass | 8,296 | 3,959 | -52% | 1 | 1 | 0% | 1,631 | 1,756 | +8% | 0 | 0 | — |
case-07 | fail→fail | 5,832 | 2,499 | -57% | 1 | 1 | 0% | 1,094 | 1,449 | +32% | 0 | 0 | — |
case-22 | pass→fail | 8,834 | 8,260 | -6% | 1 | 1 | 0% | 1,875 | 2,791 | +49% | 0 | 0 | — |
case-08 | fail→fail | 8,398 | 2,405 | -71% | 1 | 1 | 0% | 1,619 | 1,493 | -8% | 0 | 0 | — |
case-09 | fail→pass | 7,194 | 3,602 | -50% | 1 | 1 | 0% | 1,251 | 1,625 | +30% | 0 | 0 | — |
case-10 | fail→fail | 7,327 | 2,229 | -70% | 1 | 1 | 0% | 1,473 | 1,437 | -2% | 0 | 0 | — |
case-11 | pass→pass | 6,069 | 3,177 | -48% | 1 | 1 | 0% | 1,220 | 1,700 | +39% | 0 | 0 | — |
case-12 | pass→fail | 8,720 | 2,347 | -73% | 1 | 1 | 0% | 1,626 | 1,519 | -7% | 0 | 0 | — |
case-13 | fail→pass | 4,599 | 2,020 | -56% | 1 | 1 | 0% | 851 | 1,371 | +61% | 0 | 0 | — |
case-14 | pass→pass | 6,963 | 2,068 | -70% | 1 | 1 | 0% | 1,287 | 1,425 | +11% | 0 | 0 | — |
case-15 | fail→fail | 8,411 | 3,124 | -63% | 1 | 1 | 0% | 1,660 | 1,672 | +1% | 0 | 0 | — |
case-16 | fail→fail | 3,925 | 1,723 | -56% | 1 | 1 | 0% | 706 | 1,336 | +89% | 0 | 0 | — |
case-17 | pass→pass | 7,900 | 1,559 | -80% | 1 | 1 | 0% | 1,504 | 1,322 | -12% | 0 | 0 | — |
case-18 | fail→fail | 6,313 | 2,241 | -65% | 1 | 1 | 0% | 1,162 | 1,496 | +29% | 0 | 0 | — |
case-19 | fail→pass | 7,071 | 3,607 | -49% | 1 | 1 | 0% | 1,279 | 1,857 | +45% | 0 | 0 | — |
case-20 | pass→pass | 11,126 | 10,171 | -9% | 1 | 1 | 0% | 2,295 | 3,130 | +36% | 0 | 0 | — |
case-21 | pass→pass | 8,521 | 9,320 | +9% | 1 | 1 | 0% | 2,059 | 3,174 | +54% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.