prod-readiness-audit
Autonomous, comprehensive pre-launch and production readiness audit for web applications, SaaS platforms, and client websites.
Run this skill before deploying a new project to production, launching a public domain, or releasing a major milestone. It evaluates the project across 6 critical pillars and produces an actionable AUDIT_REPORT.md with an executive release verdict (READY FOR LAUNCH, LAUNCH WITH CAVEATS, or BLOCKED).
Trigger
Run whenever the user or agent initiates a launch review:
prod-readiness-audit,audit prod,preflight check,audit productionverify launch readiness,pre-release audit,check production readiness- When performing a comprehensive pre-launch quality assurance and security pass.
What this skill audits
1. Security & Privacy ➔ 2. SEO & GEO 2026 ➔ 3. Forms & CTA ➔ 4. PageSpeed & CWV ➔ 5. Media Optimization ➔ 6. Cookie & Analytics
Execution Workflow
Step 0 — Project Profile Detection
- Identify project root and determine:
- Project URL: Live production URL, staging URL (
https://...), or local dev port (http://localhost:...). - Project Scope:
- Public Web / Agency / SaaS / E-commerce: Full audit across all 6 pillars.
- Internal Tool / Dashboard / Admin Service: Pillars 2 (SEO) and 6 (Cookie banner) are marked as
[SKIPPED / INTERNAL TOOL].
- Tech Stack: Astro, Next.js, React, Node Express, Fastify, Python, etc.
- Project URL: Live production URL, staging URL (
Step 1 — Security & Privacy Deep Audit
Run the following checks:
- Secrets & Credentials Scan:
- Verify
.envand.env.*are not tracked:git ls-files .env(must return empty). - Scan code for leaked API keys, tokens, or private webhook URLs:
grep -rnE "(sk-[a-zA-Z0-9]{20,}|AIza[a-zA-Z0-9_\\-]{35}|ghp_[a-zA-Z0-9]{20,}|glpat-[a-zA-Z0-9\\-_]{20,})" . --exclude-dir={.git,node_modules,dist,.next} - Check recent commit diffs for accidental credentials:
git log -p -n 15 | grep -E "(BEGIN PRIVATE KEY|password:)".
- Verify
- Skill & Tool Security Scan:
- If project uses custom agent skills or MCP tools, run static security analysis (e.g. via
skillspectorif installed):skillspector scan --no-llm . 2>/dev/null || echo "Static skill scan completed"
- If project uses custom agent skills or MCP tools, run static security analysis (e.g. via
- Form Security & Honeypots:
- Inspect all
<form>elements to ensure:- Bot honeypot fields exist (hidden inputs like
website,company_faxthat automated bots fill). - Backend rejects/silences submissions with filled honeypots without triggering alerts or cluttering DB.
- CSRF protection / CORS origins properly restricted on POST endpoints.
- Bot honeypot fields exist (hidden inputs like
- Inspect all
- SQL Injection & Query Parameterization:
- Verify all database queries use parameterized placeholders (
?,$1, prepared statements) and zero raw string concatenation.
- Verify all database queries use parameterized placeholders (
- Security Headers Check:
- Inspect HTTP response headers (via curl or server config):
Strict-Transport-Security(HSTS)X-Content-Type-Options: nosniffX-Frame-Options: SAMEORIGINorDENYReferrer-Policy: strict-origin-when-cross-origin
- Inspect HTTP response headers (via curl or server config):
Step 2 — Comprehensive SEO & GEO Audit (2026 AI-Ready Standard)
Inspect HTML source for public pages:
- Meta Tags & Headings:
- Exactly one
<h1>per page. - Descriptive
<title>(between 40 and 65 characters). - Compelling
<meta name="description">(between 120 and 160 characters). - Self-referencing
<link rel="canonical" href="...">with consistent trailing slash.
- Exactly one
- Social & Open Graph Cards:
- Presence of
og:title,og:description,og:image,og:url,twitter:card. - Verify that
og:imageURL resolves to an existing file and meets standard dimensions (1200x630 landscape, 1080x1080 square).
- Presence of
- Structured Data (Schema.org JSON-LD):
- Validate JSON-LD script blocks using valid Schema.org vocabulary:
Organization(with company name, logo, URL, andsameAsarray of social profiles).WebSite(with search action if applicable).ServiceorProduct(on commercial pages).Article(withauthor,datePublished,dateModifiedon blog posts).FAQPage(with real questions and answers).
- Validate JSON-LD script blocks using valid Schema.org vocabulary:
- AI GEO & Crawler Optimization (2026 Standard):
- Check
/robots.txt:- Ensure AI search bots are allowed (
GPTBot,PerplexityBot,ClaudeBot,OAI-SearchBot,Google-Extended).
- Ensure AI search bots are allowed (
- Check
/llms.txt:- Machine-readable markdown index summarizing entity identity, service offerings, and key URLs.
- Content Extractability:
- BLUF (Bottom Line Up Front): direct answers in the first paragraph under headings.
- Structured comparison tables (
X vs Y) for machine citations. - Zero AI clichés and no em dashes
—in copy.
- Check
- Multilingual & Hreflang (if localized):
- Check bidirectional hreflang tags.
- Verify alternating language URLs actually exist (no 404 fallbacks).
- Sitemap:
- Verify
sitemap.xmlexists and is referenced inrobots.txt. - Ensure only indexable, canonical URLs are listed (no
/api/,/admin/, or staging routes).
- Verify
Step 3 — Forms, Lead Intake & Real Contact Verification
- Lead Intake Forms (End-to-End Test):
- Verify all required fields have HTML5 validation (
required,type="email",type="tel"). - Perform a dry-run / test submission using Chrome DevTools or Playwright:
- Verify form displays a clear, immediate confirmation state (success toast / thank-you screen).
- Confirm backend returns HTTP 200/201.
- Confirm webhook payload reaches CRM / notification alert system without formatting crashes.
- Verify all required fields have HTML5 validation (
- CTA Buttons & Action Integrity:
- Inspect all call-to-action buttons ("Get Quote", "Contact Us", "Book Consultation").
- Ensure no buttons have empty handlers, dead
#links, orjavascript:void(0). - Verify modal windows or drawers open smoothly without layout breaking.
- Contact Data Fact-Checking:
- Scan entire codebase for dummy placeholders:
- Phone numbers: verify valid format with clickable
tel:+...link (no+123456789or+00 000 0000). - Emails: verify clickable
mailto:...with active domain (noinfo@example.comoruser@domain.com). - Social & Messenger links: verify active links to Telegram, WhatsApp, LinkedIn.
- Phone numbers: verify valid format with clickable
- Scan entire codebase for dummy placeholders:
Step 4 — PageSpeed & Core Web Vitals (Lighthouse)
- Representative Sampling:
- Run audit on up to 4 representative page types:
- Homepage (
/) - Core Service / Landing page
- Blog Post / Case Study page
- Contact page
- Homepage (
- Run audit on up to 4 representative page types:
- Execute Lighthouse Audit:
- Use Lighthouse or Chrome DevTools performance trace.
- Evaluate Core Web Vitals against Targets:
- LCP (Largest Contentful Paint): < 2.5s (Good)
- CLS (Cumulative Layout Shift): < 0.1 (Good)
- INP (Interaction to Next Paint): < 200ms (Good)
- TTFB (Time to First Byte): < 600ms (Good)
- Scoring Threshold:
- SSG / Static sites (Astro / Next export): ≥ 90 Performance score.
- Dynamic Web Apps / SPAs: ≥ 80 Performance score.
- Accessibility (a11y), Best Practices, SEO: ≥ 90 across all templates.
Step 5 — Media & Image Optimization
- Modern Formats:
- All visual assets should use modern formats: WebP, AVIF, or SVG.
- Flag any legacy PNG or JPG images larger than 300 KB.
- Cumulative Layout Shift Prevention:
- Every
<img>tag must declare explicitwidthandheightattributes (or CSSaspect-ratio).
- Every
- Accessibility & Lazy Loading:
- Every meaningful image must have a descriptive
altattribute. - Images below the fold must use
loading="lazy". - Critical Rule: The Hero image above the fold MUST NOT have
loading="lazy". It must havefetchpriority="high"to optimize LCP.
- Every meaningful image must have a descriptive
Step 6 — Cookie Consent & Analytics Compliance (Public Sites)
(Skip if project is an internal tool or private dashboard)
- Cookie Banner Presence & Legality:
- For public-facing sites targeting EU/UK users, verify a compliant Cookie Consent banner is displayed on first visit.
- Consent Gating:
- Open browser with cleared storage.
- Verify that tracking scripts (Google Analytics 4, Meta Pixel, Microsoft Clarity) do not load or fire cookies prior to explicit user consent.
- Test "Reject / Essential Only" button: verify non-essential cookies remain blocked.
- Test "Accept All" button: verify analytics scripts activate properly.
- Admin Opt-Out Verification:
- Test that visiting with
?admin=1or settinglocalStorage.setItem('admin_ga_disabled', 'true')permanently suppresses tracking for the developer.
- Test that visiting with
- Legal Pages:
- Confirm active links to Privacy Policy and Terms / Legal Notice exist in the footer with real business operator information.
Step 7 — Final Report & Release Verdict
Generate a comprehensive markdown report saved to AUDIT_REPORT.md in the project root:
# 🚀 Production Readiness Audit Report: PROJECT_NAME
**Date:** YYYY-MM-DD
**Audited Target:** [URL / Localhost]
**Overall Verdict:** 🟢 READY FOR LAUNCH | 🟡 LAUNCH WITH CAVEATS | 🔴 BLOCKED
---
## 📊 Summary Scorecard
| Category | Status | Notes |
|---|---|---|
| 1. Security & Privacy | ✅ PASS / ⚠️ WARN / ❌ FAIL | [Summary] |
| 2. SEO & GEO 2026 | ✅ PASS / ⚠️ WARN / ❌ FAIL | [Summary] |
| 3. Forms, CTA & Contacts | ✅ PASS / ⚠️ WARN / ❌ FAIL | [Summary] |
| 4. PageSpeed & Core Web Vitals | ✅ PASS / ⚠️ WARN / ❌ FAIL | [Summary] |
| 5. Media & Assets | ✅ PASS / ⚠️ WARN / ❌ FAIL | [Summary] |
| 6. Cookie & Analytics | ✅ PASS / ⚠️ WARN / ⚪ SKIPPED | [Summary] |
---
## 🚨 Critical Blockers (Must Fix Before Launch)
- [List any FAIL items]
## ⚠️ Recommended Optimizations (Non-Blocking)
- [List any WARN items]
## 📋 Actionable Remediation Checklist
- [ ] Task 1: [File & Line]
- [ ] Task 2: [File & Line]
Present the summary scorecard directly to the user in chat and highlight any critical blockers that require attention.