spatie/guidelines-skills
Spatie’s battle-tested coding guidelines packaged as AI skills for Laravel Boost and skills.sh. Includes Laravel/PHP, JavaScript, version control, and security conventions. Install via Composer/Boost or npx and keep updated easily.
Install via Composer (Laravel Boost):
composer require spatie/guidelines-skills --dev
php artisan boost:install
Install via skills.sh (CLI-only):
npx skills add spatie/guidelines-skills
First Use Case:
skills.sh will validate commit conventions (e.g., "fix: resolve X" format)..boost/skills.json (for Laravel Boost) or skills.sh config.php artisan boost:check or skills check to scan the codebase for violations.IDE Integration (Laravel Boost):
composer require and select guidelines during boost:install.mysql_query()) with quick-fix suggestions..boost/skills.json ensures consistency across all dev environments.CLI Enforcement (skills.sh):
.git/hooks/pre-commit:
#!/bin/bash
npx skills check --fix
- run: npx skills check
Modular Adoption:
spatie-security and spatie-version-control for immediate impact.spatie-laravel-php or spatie-javascript as needed.phpstan/phpstan for static analysis. Example phpstan.neon:
includes:
- vendor/spatie/guidelines-skills/rules/laravel.neon
.prettierrc:
{
"overrides": [spatie/guidelines-skills/config/javascript.json]
}
skills.sh to enforce branch naming (e.g., feature/, fix/ prefixes):
npx skills add spatie/version-control
DB::select("SELECT * FROM users WHERE id = $id"). The IDE flags it as a SQL injection risk and suggests:
DB::table('users')->where('id', $id)->get();
.github/workflows/laravel.yml:
- name: Security Check
run: npx skills check --skill spatie-security
Rule Overrides:
spatie-security rules may expose vulnerabilities. Example:
// ❌ Avoid disabling security rules entirely
{
"skills": {
"spatie-security": { "enabled": false }
}
}
// ✅ Allow specific exceptions
{
"skills": {
"spatie-security": {
"rules": {
"no-mysql-query": { "ignore": ["legacy/old-code.php"] }
}
}
}
}
Performance:
.boost/skills.json:
{
"exclude": ["storage/*", "tests/*"]
}
Tooling Conflicts:
skills.sh in CI to catch violations early:
npx skills check --skill spatie-laravel-php --format json > violations.json
php artisan boost:clear-cache
skills.sh logs with --verbose:
npx skills check --verbose
.boost/skills.json or skills.sh config.Team Adoption:
skills.sh to generate a report of violations:
npx skills check --format markdown > CODE_REVIEW.md
Custom Rules:
npx create-skill my-custom-skill
Then reference it in .boost/skills.json:
{
"skills": ["spatie/guidelines-skills", "my-custom-skill"]
}
CI/CD Integration:
- name: Enforce Guidelines
run: npx skills check --fail-on-violations
Legacy Code:
--fix to auto-correct non-critical violations:
npx skills check --skill spatie-laravel-php --fix
Documentation:
skills.sh’s CLI tooling:
npx create-skill my-team-guidelines
spatie-version-control to enforce commit templates:
npx skills add spatie/version-control --commit-template
How can I help you explore Laravel packages today?