Install
$ agentstack add skill-edulazaro-laraclaude-deploy-checklist ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Deploy Checklist
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.
Subcommands
| 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.
Checklist Categories
1. Environment Configuration
APP_DEBUG
- Check:
Read.envand verifyAPP_DEBUG=false. - Also check:
config/app.phpusesenv('APP_DEBUG', false)(not hardcodedtrue). - PASS:
APP_DEBUG=falseor not set (defaults to false) - FAIL:
APP_DEBUG=true - Why it matters: Debug mode exposes sensitive information (stack traces, env variables, database credentials) to end users.
APP_ENV
- Check:
Read.envand verifyAPP_ENV=production. - PASS:
APP_ENV=production - FAIL:
APP_ENV=localorAPP_ENV=staging - Why it matters: Some packages and features behave differently in production vs other environments.
APP_KEY
- Check:
APP_KEYis set and not empty in.env. - PASS:
APP_KEY=base64:...(non-empty, properly formatted) - FAIL:
APP_KEY=(empty) or missing - Why it matters: The app key is used for encryption. Without it, sessions, encrypted cookies, and other encrypted data are insecure.
APP_URL
- Check:
APP_URLuseshttps://(nothttp://). - PASS: Starts with
https:// - FAIL: Starts with
http://or ishttp://localhost - Why it matters: Insecure URLs affect generated links, asset URLs, and OAuth callbacks.
2. Cache Configuration
Cache Driver
- Check:
CACHE_STORE(orCACHE_DRIVER) in.env. - PASS:
redis,memcached,database, ordynamodb - WARN:
file(works but slower in production, not suitable for multi-server) - FAIL:
arrayornull(no persistent caching) - Why it matters: File cache is slow and doesn't work across multiple servers.
Session Driver
- Check:
SESSION_DRIVERin.env. - PASS:
redis,memcached,database - WARN:
file(works for single-server deployments) - FAIL:
arrayorcookie(no persistence or security concerns)
3. Queue Configuration
Queue Driver
- Check:
QUEUE_CONNECTIONin.env. - PASS:
redis,database,sqs,beanstalkd - FAIL:
sync(jobs execute inline, blocking the request) - Why it matters: Sync queue means email sending, file processing, and other jobs block HTTP requests.
4. Mail Configuration
Mail Driver
- Check:
MAIL_MAILERin.env. - PASS:
smtp,ses,mailgun,postmark,sendgrid - FAIL:
log(emails only written to log file, not sent) - FAIL:
array(emails discarded) - Why it matters: Users will not receive emails (password resets, notifications, invitations).
5. Security Checks
HTTPS Enforcement
- Check: Look for HTTPS enforcement mechanisms:
URL::forceScheme('https')inAppServiceProviderHTTPSmiddleware or\Illuminate\Http\Middleware\TrustProxies.htaccessor nginx config redirecting HTTP to HTTPS- PASS: At least one HTTPS enforcement mechanism found
- FAIL: No HTTPS enforcement detected
CORS Configuration
- Check:
Readconfig/cors.php. - PASS:
allowed_originsis specific (not['*']in production) - WARN:
allowed_originsis['*'](allows all origins) - Why it matters: Wildcard CORS allows any website to make requests to your API.
Rate Limiting on Auth Routes
- Check: Look for rate limiting on login/registration routes.
- Use
Grepto findthrottlemiddleware on auth routes. - PASS: Auth routes have
throttlemiddleware - FAIL: No rate limiting on auth routes
- Why it matters: Without rate limiting, brute-force attacks are possible.
6. Storage and Files
Storage Link
- Check: Verify
public/storagesymlink exists. - Use
Bash:ls -la public/storage - PASS: Symlink exists and points to
storage/app/public - FAIL: Symlink missing (run
php artisan storage:link)
7. Code Quality
TODO/FIXME/HACK Comments
- Check: Use
Grepto findTODO,FIXME,HACK,XXX,TEMPin PHP and Blade files. - PASS: Zero found
- WARN: Found (list them with file paths and line numbers)
- Why it matters: These indicate incomplete or temporary code that should be resolved before production.
Debug Statements
- Check: Use
Grepto 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- PASS: Zero found
- FAIL: Debug statements found (list them)
.env in Version Control
- Check: Verify
.envis in.gitignore. - Use
Grepto check.gitignorefor.enventry. - PASS:
.envis gitignored - FAIL:
.envis not gitignored (security risk)
8. Database
Migrations Can Run
- Check: If Docker is available, note whether migrations appear consistent (do not actually run migrate:fresh -- that is destructive).
- Look for common migration issues by parsing files (FK ordering, duplicate columns).
- PASS: No obvious migration issues detected
- WARN: Potential issues found (reference
lc:migration-fresh-testfor full test)
Schema Dump
- Check: Look for
database/schema/*.sqlfiles. - WARN: Schema dump exists (may cause issues with migrate:fresh, data imports may be lost)
- PASS: No schema dump
9. Performance
Config Caching
- Check: Note whether config, route, and view caching commands should be run in deployment.
- Verify
config/app.phpdoes not useenv()outside of config files (breaks config caching). - Use
Grepto findenv(calls inapp/,routes/,resources/directories. - PASS: No
env()calls outside config files - FAIL:
env()used outside config (breaks config caching)
Eager Loading
- Note: Reference
lc:find-n-plus-onefor N+1 query detection.
Report Format
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
Notes
- This checklist is based on static analysis and configuration file inspection. Some checks require runtime verification.
- Not all warnings are blockers. Some are acceptable trade-offs for specific deployments (e.g.,
filecache on a single-server setup). - The checklist does not check infrastructure concerns (SSL certificates, server configuration, DNS, CDN).
- For security-specific deep analysis, use
lc:security-audit. - For Docker configuration, use
lc:docker-check. - For migration testing, use
lc:migration-fresh-test.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: edulazaro
- Source: edulazaro/laraclaude
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.