AgentStack
SKILL verified MIT Self-run

Lc:deploy Checklist

skill-edulazaro-laraclaude-deploy-checklist · by edulazaro

Verify the project is production-ready with a comprehensive checklist.

No reviews yet
0 installs
11 views
0.0% view→install

Install

$ agentstack add skill-edulazaro-laraclaude-deploy-checklist

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

Are you the author of Lc:deploy Checklist? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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 .env and verify APP_DEBUG=false.
  • Also check: config/app.php uses env('APP_DEBUG', false) (not hardcoded true).
  • PASS: APP_DEBUG=false or 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 .env and verify APP_ENV=production.
  • PASS: APP_ENV=production
  • FAIL: APP_ENV=local or APP_ENV=staging
  • Why it matters: Some packages and features behave differently in production vs other environments.
APP_KEY
  • Check: APP_KEY is 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_URL uses https:// (not http://).
  • PASS: Starts with https://
  • FAIL: Starts with http:// or is http://localhost
  • Why it matters: Insecure URLs affect generated links, asset URLs, and OAuth callbacks.

2. Cache Configuration

Cache Driver
  • Check: CACHE_STORE (or CACHE_DRIVER) in .env.
  • PASS: redis, memcached, database, or dynamodb
  • WARN: file (works but slower in production, not suitable for multi-server)
  • FAIL: array or null (no persistent caching)
  • Why it matters: File cache is slow and doesn't work across multiple servers.
Session Driver
  • Check: SESSION_DRIVER in .env.
  • PASS: redis, memcached, database
  • WARN: file (works for single-server deployments)
  • FAIL: array or cookie (no persistence or security concerns)

3. Queue Configuration

Queue Driver
  • Check: QUEUE_CONNECTION in .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_MAILER in .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') in AppServiceProvider
  • HTTPS middleware or \Illuminate\Http\Middleware\TrustProxies
  • .htaccess or nginx config redirecting HTTP to HTTPS
  • PASS: At least one HTTPS enforcement mechanism found
  • FAIL: No HTTPS enforcement detected
CORS Configuration
  • Check: Read config/cors.php.
  • PASS: allowed_origins is specific (not ['*'] in production)
  • WARN: allowed_origins is ['*'] (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 Grep to find throttle middleware on auth routes.
  • PASS: Auth routes have throttle middleware
  • 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/storage symlink 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 Grep to find TODO, FIXME, HACK, XXX, TEMP in 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 Grep to find debug statements that should not be in production:
  • dd(, dump(, ray( in PHP files
  • console.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 .env is in .gitignore.
  • Use Grep to check .gitignore for .env entry.
  • PASS: .env is gitignored
  • FAIL: .env is 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-test for full test)
Schema Dump
  • Check: Look for database/schema/*.sql files.
  • 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.php does not use env() outside of config files (breaks config caching).
  • Use Grep to find env( calls in app/, 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-one for 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., file cache 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.