lc-deploy-checklist
Verify the project is production-ready with a comprehensive checklist.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Verify the project is production-ready with a comprehensive checklist.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Create a Larascraper scraper (v2 or v3) for a target website, chaining browser actions (click, type, wait, scroll), conditional flow (when/repeatUntil), captcha solving, and file/PDF downloads. Detects the installed major and generates the matching style.
Add or edit a Laracrate file collection in config/laracrate.php with the correct anatomy (disk, access, types, variants, previews, extract/embed, flags, per-model scoping).
Runtime-verified Laravel inspection using the Laravel Boost MCP server (Tinker, Database Query/Schema, Last Error) instead of static grep. Falls back to Docker/Tinker if Boost is not installed.
Scaffold spatie/laravel-permission setup - add the HasRoles trait to a model and generate a roles & permissions seeder.
Audit spatie/laravel-permission usage - permissions used in code but undefined, defined but unused, unprotected routes, guard mismatches, and cache pitfalls.
Extract business logic from a controller or Livewire component method into a Laractions Action class.
| name | lc:deploy-checklist |
| description | Verify the project is production-ready with a comprehensive checklist. |
| argument-hint | [analyze] |
| user-invocable | true |
| allowed-tools | Read Grep Bash Edit Write Glob |
Verify that a Laravel project is production-ready by checking configuration, security, performance, and code quality. Reports a pass/fail checklist with remediation steps for each failure.
| Subcommand | Description |
|---|---|
| (no argument) | Run the full deployment readiness checklist. Read-only report. |
This is an analysis-only skill. It reports findings but does not modify files. Use the suggested remediation steps or other skills (e.g., lc:security-audit, lc:docker-check) to fix issues.
Read .env and verify APP_DEBUG=false.config/app.php uses env('APP_DEBUG', false) (not hardcoded true).APP_DEBUG=false or not set (defaults to false)APP_DEBUG=trueRead .env and verify APP_ENV=production.APP_ENV=productionAPP_ENV=local or APP_ENV=stagingAPP_KEY is set and not empty in .env.APP_KEY=base64:... (non-empty, properly formatted)APP_KEY= (empty) or missingAPP_URL uses https:// (not http://).https://http:// or is http://localhostCACHE_STORE (or CACHE_DRIVER) in .env.redis, memcached, database, or dynamodbfile (works but slower in production, not suitable for multi-server)array or null (no persistent caching)SESSION_DRIVER in .env.redis, memcached, databasefile (works for single-server deployments)array or cookie (no persistence or security concerns)QUEUE_CONNECTION in .env.redis, database, sqs, beanstalkdsync (jobs execute inline, blocking the request)MAIL_MAILER in .env.smtp, ses, mailgun, postmark, sendgridlog (emails only written to log file, not sent)array (emails discarded)URL::forceScheme('https') in AppServiceProviderHTTPS middleware or \Illuminate\Http\Middleware\TrustProxies.htaccess or nginx config redirecting HTTP to HTTPSRead config/cors.php.allowed_origins is specific (not ['*'] in production)allowed_origins is ['*'] (allows all origins)Grep to find throttle middleware on auth routes.throttle middlewarepublic/storage symlink exists.Bash: ls -la public/storagestorage/app/publicphp artisan storage:link)Grep to find TODO, FIXME, HACK, XXX, TEMP in PHP and Blade files.Grep to find debug statements that should not be in production:
dd(, dump(, ray( in PHP filesconsole.log( in JS files (except in build/vendor)var_dump(, print_r( in PHP files.env is in .gitignore.Grep to check .gitignore for .env entry..env is gitignored.env is not gitignored (security risk)lc:migration-fresh-test for full test)database/schema/*.sql files.config/app.php does not use env() outside of config files (breaks config caching).Grep to find env( calls in app/, routes/, resources/ directories.env() calls outside config filesenv() used outside config (breaks config caching)lc:find-n-plus-one for N+1 query detection.DEPLOYMENT READINESS CHECKLIST
================================
ENVIRONMENT
[PASS] APP_DEBUG = false
[FAIL] APP_ENV = local (should be 'production')
[PASS] APP_KEY is set
[FAIL] APP_URL uses http:// (should be https://)
CACHE & SESSIONS
[PASS] CACHE_STORE = redis
[PASS] SESSION_DRIVER = redis
QUEUE
[FAIL] QUEUE_CONNECTION = sync (should be redis/database/sqs)
MAIL
[PASS] MAIL_MAILER = ses
SECURITY
[PASS] HTTPS enforcement found (URL::forceScheme)
[WARN] CORS allows all origins (config/cors.php)
[PASS] Rate limiting on auth routes
[PASS] .env is gitignored
STORAGE
[PASS] Storage symlink exists
CODE QUALITY
[WARN] 3 TODO comments found
[FAIL] 2 dd() statements found
- app/Http/Controllers/DashboardController.php:45
- app/Services/PropertyService.php:102
DATABASE
[PASS] No obvious migration issues
[WARN] Schema dump exists at database/schema/mysql-schema.sql
PERFORMANCE
[FAIL] env() used outside config files:
- app/Services/StripeService.php:15
- app/Http/Middleware/CustomMiddleware.php:8
SUMMARY
========
Passed: 10
Warnings: 3
Failed: 4
Score: 59% ready
PRIORITY FIXES (do these first):
1. Set APP_ENV=production
2. Set QUEUE_CONNECTION=redis
3. Remove dd() statements
4. Move env() calls to config files
file cache on a single-server setup).lc:security-audit.lc:docker-check.lc:migration-fresh-test.