git:20260829.08dd6c9 to git:20260831.e2d01a0

2 added, 0 removed. Audit B to B.

---
name: govard-laravel
description: |
This skill should be used when the user asks to "run migrations", "run artisan commands",
"clear Laravel cache", "config:cache", "run queue operations", "schedule:run", "tinker into
app", "artisan tinker", "run Laravel Pint", "lint Laravel project", "audit Laravel",
"govard audit", or "npm dev/prod". Provides Laravel-specific Govard shortcuts and commands.
DEPENDENT on govard-toolbox for base commands.
compatibility: claude, codex, opencode, copilot, dsh
depends: [govard-toolbox, php-dev-core]
metadata:
audience: developers
workflow: laravel
---
# Govard Laravel Commands
Laravel-specific shortcuts for Govard environments.
## Related Skills
**REQUIRED BACKGROUND:** Load `govard-toolbox` first — this skill only covers Laravel-specific shortcuts layered on top of Govard's base commands (`govard up`, `govard sh`, `govard db`).
For generic PHP (strict_types/PSR-12/PHPStan/Security) see php-dev-core.
## Artisan Commands
Laravel's `artisan` CLI runs inside the PHP container via `govard tool artisan`. Govard exposes every artisan command without entering the container shell:
```bash
# Cache management
govard tool artisan config:cache
govard tool artisan config:clear
govard tool artisan cache:clear
# Route cache
govard tool artisan route:cache
govard tool artisan route:clear
# View cache
govard tool artisan view:cache
govard tool artisan view:clear
```
## Audit
For generic PHP (strict_types/PSR-12/PHPStan/Security) see `php-dev-core`. For 4-framework matrix and `govard audit run --checks lint --lint-provider govard --mode project --format json` see `govard-toolbox` ## Audit.
+ **Laravel lint excludes (since `v1.68.0`):** `bootstrap/cache/*` and `storage/*` (`storage/framework/cache|sessions|views`, `storage/logs`) are **always ignored** — both `phpcs --ignore=*/bootstrap/cache/*,*/storage/*` and `phpstan excludePaths` in `docker/audit/bin/glint` and Go-side `filterGeneratedFindings` in `internal/audit/lint_govard.go`. Fresh `laravel 11` audit no longer fails on `bootstrap/cache/packages.php`/`services.php` or `storage/framework/views/*.php`; remaining findings are real project files (`config/`, `app/`, `tests/`).
+
## Database
```bash
# Migrations
govard tool artisan migrate
govard tool artisan migrate:fresh
govard tool artisan migrate:refresh
govard tool artisan migrate:rollback
govard tool artisan migrate:status
# Seeders
govard tool artisan db:seed
govard tool artisan db:seed --class=UserSeeder
# Factory
govard tool artisan make:factory PostFactory
govard tool artisan tinker
# Direct SQL
govard db connect
```
Govard `stack.php_version` defaults to 8.4 for Laravel 11; verify with `govard config get stack.php_version` before running fresh migrations.
## Queue Operations
```bash
# Start queue worker
govard tool artisan queue:work
# Queue withSupervisor
govard svc up
# Retry failed jobs
govard tool artisan queue:retry all
govard tool artisan queue:failed
# Clear queue
govard tool artisan queue:flush
```
## Scheduler
```bash
# Run scheduler (keep in cron)
govard tool artisan schedule:run
# List scheduled
govard tool artisan schedule:list
```
## Development
```bash
# Create commands
govard tool artisan make:command MyCommand
govard tool artisan make:controller MyController
govard tool artisan make:model Post
govard tool artisan make:migration create_posts_table
# Tinker (interactive REPL)
govard tool artisan tinker
# Show routes
govard tool artisan route:list
govard tool artisan route:list --path=api
```
## Testing
```bash
# Run tests
govard tool artisan test
# With PHPUnit
govard tool php artisan test
govard tool php vendor/bin/phpunit
# Specific test
govard tool php vendor/bin/phpunit --filter=UserTest
```
## Frontend Assets
```bash
# Node modules
govard tool npm install
govard tool npm run dev
govard tool npm run prod
govard tool npm run watch
# Laravel Mix (if using)
govard tool npm run dev
govard tool npm run production
# Clear Vite cache
# node_modules is bind-mounted into the container; clearing from the host is safe
rm -rf node_modules/.vite
```
Laravel has no Govard `frontend_sync` watcher (unlike Hyvä/Luma). Use `govard tool npm run watch` for live builds.
## Environment (.env)
Govard injects `APP_KEY`, `DB_CONNECTION`, `DB_HOST`, and `APP_ENV` via `.env`. Check values:
```bash
govard config get stack.php_version
cat .env | grep -E 'APP_ENV|DB_'
govard tool artisan env
```
- `APP_ENV` defaults to `local`; Govard does not overwrite a committed `.env`.
- `DB_CONNECTION` is auto-wired to Govard MariaDB (`mariadb 11.4` default).
- `APP_KEY` is generated on `govard env up` if missing.
## Logging
```bash
# View logs
tail -f storage/logs/laravel.log
# Clear logs
govard tool artisan log:clear
# Laravel Debugbar (if installed)
curl -s https://local.test/_debugbar/open
```
## Common Workflows
### After Pulling Code
```bash
govard tool composer install
govard tool artisan migrate
govard tool artisan cache:clear
govard tool npm install && govard tool npm run dev
```
### Creating Features
```bash
govard tool artisan make:model Post -mcr # Model + Migration + Controller
govard tool artisan migrate
govard tool artisan route:list
```
### Deployment Prep
```bash
govard tool artisan config:cache
govard tool artisan route:cache
govard tool artisan view:cache
govard tool npm run prod
```