From audit
Pre-deployment production readiness checklist. Checks build health, debug code, dev URLs, env vars, error tracking, analytics, SEO, legal pages, and git state. Run before every production push.
How this skill is triggered — by the user, by Claude, or both
Slash command
/audit:deploy [--fix] [--scope=<path>] [--report] [--strict][--fix] [--scope=<path>] [--report] [--strict]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run before every production push. Checks everything that should be verified before code goes live.
Run before every production push. Checks everything that should be verified before code goes live.
$ARGUMENTS — optional flags:
--fix — auto-fix issues where possible (remove console.logs, add missing meta tags, etc.)--scope=<path> — limit code checks to a specific directory--report — save report to _local/reports/deploy-audit-<YYYY-MM-DD>.md--strict — treat warnings as failures (for CI/CD integration)Read project config to tailor checks:
| Check | How |
|---|---|
| Framework | package.json deps: next, react, vue, express, django, flask |
| Language | .ts/.tsx files = TypeScript, .py = Python, .go = Go |
| Build command | package.json scripts: build. Or Makefile, Cargo.toml, pyproject.toml |
| Test command | package.json scripts: test, test:ci. Or pytest, go test |
| Lint command | package.json scripts: lint. Or ruff, golangci-lint |
| Deployment target | Check for vercel.json, netlify.toml, Dockerfile, fly.toml, render.yaml, app.yaml |
If no --scope: scan entire project (excluding node_modules/, .next/, dist/, build/, vendor/, __pycache__/).
Each check results in: PASS, WARN, or FAIL.
--strict)B1: Build compiles — Severity: FAIL
npm run build)B2: Type checking passes — Severity: FAIL
npx tsc --noEmitmypy .B3: Lint passes — Severity: WARN
B4: Tests pass — Severity: FAIL
D1: No console.log in production code — Severity: WARN
console.log(, console.debug(, console.warn( in source files (exclude test files, config files, server-side logging modules)console.error( in catch blocks is acceptable. Server-side logger wrappers are acceptable. Only flag client-side components and shared code.D2: No debugger statements — Severity: FAIL
\bdebugger\b in source filesD3: No TODO/FIXME in shipping code — Severity: WARN
TODO|FIXME|HACK|XXX in source files (exclude test files and docs)D4: No commented-out code blocks — Severity: WARN
// import, // const , // function , /* ... */ containing code-like syntax spanning multiple linesE1: No hardcoded dev URLs — Severity: FAIL
localhost, 127.0.0.1, 0.0.0.0, :3000, :8080, :5173, http:// (non-https) in source files.env.local, .env.development, dev server configs), test files, READMEE2: .env files not committed — Severity: FAIL
git ls-files for any .env file (not .env.example, not .env.local.example).env, .env.local, .env.production in git tracked filesE3: Required env vars documented — Severity: WARN
process.env., os.environ, os.Getenv, env!(.env.example or .env.template exists and lists them.env.example exists at all, WARN with the full list of referenced env varsE4: No secrets in source code — Severity: FAIL
sk-, pk_live, pk_test, AKIA, ghp_, gho_, Bearer , password\s*=\s*["'], secret\s*=\s*["'], apiKey\s*=\s*["'].env* files, test fixtures with fake valuesM1: Error tracking configured — Severity: WARN
@sentry/, sentry, bugsnag, logrocket, rollbar, airbrake, honeybadger, datadogSentry.init, bugsnag.start, LogRocket.initM2: Error boundaries (frontend) — Severity: WARN
componentDidCatch, ErrorBoundary, error.tsx (Next.js App Router)errorCaptured, onErrorCapturedM3: Custom 404 page — Severity: WARN
app/not-found.tsx or pages/404.tsx404.htmlM4: Analytics configured — Severity: WARN
@vercel/analytics, @google-analytics, ga-4, plausible, posthog, mixpanel, amplitude, umamigtag(, analytics.track, posthog.captureSkip this entire category if the project is a backend API, CLI tool, or library (no HTML rendering).
S1: Meta titles on all pages — Severity: WARN
metadata export or generateMetadata in all page.tsx files<Head><title> in all page components<title> in all HTML filesS2: Meta descriptions — Severity: WARN
description in metadataS3: OG/Social images — Severity: WARN
openGraph in metadata, or <meta property="og:image" tagsS4: robots.txt exists — Severity: WARN
public/robots.txt or app/robots.txt (Next.js) or equivalentS5: Sitemap configured — Severity: WARN
public/sitemap.xml, app/sitemap.ts (Next.js), or sitemap generation in buildS6: Favicon exists — Severity: WARN
public/favicon.ico, app/favicon.ico, app/icon.tsx, or <link rel="icon" in HTMLSkip if project is a backend API, CLI tool, or library.
L1: Privacy policy page — Severity: WARN
privacy, privacy-policy in file names or route pathsL2: Terms of service page — Severity: WARN
terms, terms-of-service, tos in file names or route pathsL3: Cookie consent (if cookies/analytics used) — Severity: WARN
cookie-consent, CookieBanner, cookie-banner, gdpr, consentG1: Clean working tree — Severity: WARN
git status --porcelainG2: On expected branch — Severity: WARN
git branch --show-currentmain or master directly (should deploy from release branch or via CI)G3: No merge conflicts — Severity: FAIL
<<<<<<<, =======, >>>>>>> in source filesG4: Lockfile committed — Severity: FAIL
git ls-files for: package-lock.json, yarn.lock, pnpm-lock.yaml, Pipfile.lock, go.sum, Cargo.lock# Deploy Readiness — [Project Name]
**Date:** YYYY-MM-DD | **Branch:** [current] | **Stack:** [detected]
## Result: READY / NOT READY / READY WITH WARNINGS
| Category | Pass | Warn | Fail | Status |
|----------|------|------|------|--------|
| Build Health | X | X | X | [OK/WARN/FAIL] |
| Debug Code | X | X | X | [OK/WARN/FAIL] |
| URLs & Environment | X | X | X | [OK/WARN/FAIL] |
| Error Handling | X | X | X | [OK/WARN/FAIL] |
| SEO & Social | X | X | X | [OK/WARN/FAIL] |
| Legal | X | X | X | [OK/WARN/FAIL] |
| Git State | X | X | X | [OK/WARN/FAIL] |
## Blockers (must fix)
[all FAIL items with file:line]
## Warnings (should fix)
[all WARN items with file:line]
## All Clear
[all PASS items]
Overall verdict:
With --strict: WARNs count as FAILs → verdict is READY or NOT READY only.
Print to conversation: Verdict + scorecard table + blockers + warnings count. Full details in file if --report.
If --fix is passed, fix in this order:
FAIL items first:
npm install / equivalent to generate lockfileWARN items (quick fixes only):
robots.txt with User-agent: * Allow: /After fixes:
build script found, do NOT guess npm run build. Report "no build command detected."git status, git branch, git ls-files — report actual output, not assumptions.pages/, app/, index.html, templates)console.error in catch blocks and server-side logger modules are acceptable. Do NOT flag these. Only flag console.log and console.debug in client components.Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub soreavis/claude-audit-skills --plugin audit