| name | production-readiness |
| description | Use when the user says "ready to ship", "ready for launch", "going live", "ready for prod", "production-ready", "ship it", before opening to real users, or before announcing a launch. Walks the full pre-launch checklist across security, data, reliability, ops, billing, and rollout — and explicitly flags what's missing. |
Production Readiness Review
"Working in dev" and "safe for real users" are different states. This is the pre-launch checklist: have you actually thought about each of these.
When to use
- Anyone says "we're ready to launch" / "let's ship it" / "going live tomorrow"
- Before a public announcement (Show HN, Product Hunt, press, paid ads)
- Before opening a closed beta to real customers
- Before turning off feature flags for a major feature
When to skip
- Internal demos to teammates with no real user impact
- Dev environments still in early scaffolding
How to run this
For each section: ask the question. Ground it in the actual code/config (not "I'll check later"). If something is missing, it's a launch blocker unless explicitly waived with a reason.
This is a review skill — pair it with the underlying topic skills (secrets-and-env, auth-and-sessions, etc.) when you find a gap.
1. Secrets & configuration
2. Authentication & authorization
3. Input handling
4. API hardening
5. LLM / cost-bearing endpoints
6. Database
7. Migrations
8. File uploads (if any)
9. Background jobs (if any)
10. Reliability
11. Observability
12. Errors
13. Caching
14. Privacy & compliance
15. Release & rollout
16. Cost & abuse
17. Day 1 / 2 ops
Output format when running this review
Write the result as a punch list, organized by section, with status next to each item:
## Auth & authz
✅ Tokens in httpOnly cookies (verified app/lib/session.ts)
❌ Authorization: /api/projects/[id] doesn't scope by userId — IDOR risk
⚠️ CSRF: Server Actions used everywhere except /api/legacy-import — gap
Don't say "looks good" without naming the file you checked. If you didn't check, mark it ❓ and ask.
War story
A startup launched on Product Hunt without going through any pre-launch review. Within 6 hours: (1) NEXT_PUBLIC_OPENAI_API_KEY was scraped from the bundle, $9k charged before billing alerts caught it, (2) a missing .scope by userId let visitors paginate through every other user's saved chats, (3) a feature flag had been missing the kill switch, so the broken auth flow stayed live during the entire 8-hour incident. Each individual rule in the checklist would have caught one of these. The checklist itself would have caught all three.
Quick framing for the team
Going through this list takes ~1 hour for a small app. The cost of skipping it is measured in:
- Customer-data-leak posts on HN
- Refund queues
- Founder-eyes-shut-on-the-couch debugging at 2am
- "We just have to launch" turning into "we just had to launch with all the holes"
Not optional. Run it.