production-audit
affaan-m/ecc
Local production-readiness audit for shipped apps—no external data sharing, just risk assessment.
What is production-audit?
Evaluates whether an application is ready to ship by inspecting local evidence: auth, data integrity, payments, operations, and user experience. Use this for pre-launch reviews, post-merge checks, and "what breaks in prod?" questions without sending repo data to external services.
- Assesses security, auth, and data-integrity boundaries in the codebase
- Checks payment and webhook idempotency, migrations, and rollback paths
- Verifies CI status, environment setup, health checks, and observability hooks
- Scores production readiness on a 0–100 scale with specific blockers and fixes
- Inspects deployed URLs safely using browser or HTTP checks only
How to install production-audit
npx skills add null --skill production-auditHow to use production-audit
- 1.Run `git status`, `git log`, and `git diff` to establish the release surface and recent changes
- 2.Inspect package scripts, CI workflows, Docker files, and deployment manifests
- 3.Review API routes, auth middleware, background workers, database migrations, and environment documentation
- 4.Check observability hooks, error reporting, health checks, and rollback instructions
- 5.If a deployed URL is available, use browser or HTTP checks to verify critical user paths
- 6.Produce a score (0–100) with blockers, high-value fixes, evidence checked, and next action
Use cases
- Pre-launch review: determine if an app is ready to ship before a public release or customer rollout
- Post-merge risk pass: audit a feature branch after CI passes to catch production hazards
- Incident triage: identify what could break in production when a deployed URL or release branch is available
- Demo or investor walkthrough prep: verify critical paths work end-to-end on desktop and mobile
- Rollout planning: assess whether to ship behind a small beta or internal rollout
- Engineering leads and maintainers planning a launch or rollout
- Backend and full-stack engineers shipping features with payment, auth, or data-migration risk
- DevOps and platform engineers verifying deployment readiness
- Teams doing post-merge or pre-deploy risk triage
production-audit FAQ
Use security-review first during active implementation for line-level secure coding. Use production-audit when the user asks if an app is ready to ship, what could break in prod, or when a feature is merged and needs a pre-deploy risk pass.
No. It keeps the useful production-readiness lens and removes unpinned external execution and third-party data sharing. All evidence gathering is local unless you explicitly approve a specific tool.
Green CI only confirms tests pass, not production readiness. This skill inspects auth boundaries, data integrity, payment idempotency, migrations, rollback paths, and observability—the signals CI doesn't cover.
70–84 is launchable with caveats if owners accept the listed risks. 85+ has no obvious blockers. Below 70, fix the blockers first. The score forces prioritization of the remaining risk.
The skill works with local evidence: git history, code inspection, CI workflows, and migrations. A deployed URL helps verify critical paths end-to-end, but is not required.
Full instructions (SKILL.md)
Source of truth, from affaan-m/ecc.
name: production-audit description: Local-evidence production readiness audit for shipped apps, pre-launch reviews, post-merge checks, and "what breaks in prod?" questions without sending repo data to an external audit service. metadata: origin: community
Production Audit
Use this skill when the user asks whether an application is ready to ship, what could break in production, or what must be fixed before a launch. This is a maintainer-safe rewrite of the stale community production-audit idea: it keeps the useful production-readiness lens and removes unpinned external execution and third-party data sharing.
When to Use
- The user asks "is this production-ready", "what would break in prod", "what did we miss", "audit this repo", or "ready to ship?"
- A feature was merged and needs a pre-deploy or post-merge risk pass.
- A public launch, demo, customer rollout, or investor walkthrough is close.
- CI is green but the user wants production risk, not only test status.
- A deployed URL, release branch, PR, or current checkout is available for evidence gathering.
When Not to Use
- During active implementation when the right lens is line-level secure coding;
use
security-reviewfirst. - For pure libraries, templates, docs-only repos, or scaffolds unless the user wants packaging/release readiness rather than application readiness.
- When the user asks for a formal compliance audit. This skill is engineering triage, not legal, financial, medical, or regulatory certification.
- When the only available evidence is a product idea with no repo, deployment, CI, or runtime surface.
How It Works
Build the audit from local and user-authorized evidence. Do not run unpinned remote code, upload repository contents to third-party services, or call external scanners unless the user explicitly approves that specific tool and data flow.
Use this order:
- Establish the release surface.
- Read recent changes and current branch state.
- Inspect runtime, auth, data, payment, background-job, AI, and deployment boundaries that actually exist in the repo.
- Check CI, tests, migrations, environment documentation, and rollback path.
- Produce a short ship/block recommendation with specific fixes.
Evidence Checklist
Start with cheap, local signals:
git status --short --branch
git log --oneline --decorate -20
git diff --stat origin/main...HEAD
Then inspect the project-specific surface:
- Package scripts, CI workflows, release scripts, Docker files, and deployment manifests.
- API routes, webhooks, auth middleware, background workers, cron jobs, and database migrations.
- Environment variable documentation and startup checks.
- Observability hooks, error reporting, logs, health checks, and dashboards.
- Rollback, seed, migration, and backfill instructions.
- E2E coverage for the user paths that matter most.
If a deployed URL is in scope, use browser or HTTP checks only against that URL and avoid credentialed actions unless the user supplies a safe test account.
Risk Lenses
Security And Auth
- Are public routes, API routes, and admin routes clearly separated?
- Are auth and authorization enforced server-side?
- Are secrets kept out of client bundles, logs, example output, and checked-in files?
- Are rate limits, CSRF protections, CORS policy, and upload validation present where the app needs them?
- Does the AI or agent surface defend against prompt injection, tool abuse, and untrusted content crossing into privileged actions?
Data Integrity
- Do migrations run forward cleanly and have a rollback or recovery plan?
- Are destructive migrations, backfills, and data imports staged safely?
- Do database policies, grants, and service-role boundaries match the app's tenancy model?
- Are retries idempotent for writes, jobs, and webhook handlers?
Payments And Webhooks
- Are webhook signatures verified before parsing trusted payload fields?
- Is each payment, subscription, or fulfillment webhook idempotent?
- Are replay, duplicate delivery, and out-of-order delivery handled?
- Are test-mode and live-mode credentials separated?
Operations
- Can the app start from a clean checkout using documented commands?
- Are required environment variables named, validated, and fail-fast?
- Is there a health check that proves dependencies are reachable?
- Are deploy, rollback, and incident-owner paths documented?
- Are logs useful without leaking secrets or personal data?
User Experience
- Are the launch-critical paths covered on desktop and mobile?
- Are forms usable on mobile without input zoom, layout overlap, or blocked submission states?
- Do loading, empty, error, and permission-denied states tell the user what happened?
- Is there a support or recovery path when a critical operation fails?
Scoring
Use scores to force prioritization, not to imply mathematical certainty.
| Band | Score | Meaning |
|---|---|---|
| Blocked | 0-49 | Do not ship until the top risks are fixed |
| Risky | 50-69 | Ship only behind a small rollout or internal beta |
| Launchable With Caveats | 70-84 | Ship if owners accept the listed risks |
| Strong | 85-100 | No obvious launch blockers from available evidence |
Cap the score at 69 if any of these are true:
- Authentication or authorization is missing on sensitive data.
- Payment or fulfillment webhooks are not idempotent.
- Required migrations cannot be run safely.
- Secrets are exposed in client bundles, logs, or committed files.
- There is no rollback path for a high-impact release.
Cap the score at 84 if CI is not green or the launch-critical path was not
tested end to end.
Output Format
Lead with one sentence:
Production audit: 76/100, launchable with caveats, with webhook idempotency and rollback docs as the two risks to fix before public launch.
Then list:
Blockers: must-fix items before deploy.High-value fixes: next fixes if the user wants to improve the score.Evidence checked: files, commands, CI, deployed URL, or PRs inspected.Evidence missing: what would change confidence if provided.Next action: one concrete fix or verification step.
Keep strengths short. The user asked for readiness, so the useful answer is the remaining risk and the next action.
Example
User:
is this ready to ship?
Response:
Production audit: 68/100, risky, because Stripe webhooks are verified but not idempotent and there is no rollback note for the pending migration.
Blockers:
- Add idempotency for `checkout.session.completed` before fulfilling orders.
- Write and test the rollback path for `20260511_add_billing_state.sql`.
High-value fixes:
- Add a health check that verifies database and payment-provider reachability.
- Add one E2E path for upgrade, webhook fulfillment, and billing-page refresh.
Evidence checked:
- `api/stripe/webhook.ts`
- `db/migrations/20260511_add_billing_state.sql`
- GitHub Actions run for the release branch
Next action: Want me to patch webhook idempotency first?
Anti-Patterns
- Running
npx <package>@latestor a remote scanner as the default audit path. - Uploading source, secrets, customer data, or private topology to an external audit service without explicit approval.
- Producing a score without naming the evidence checked.
- Treating green CI as production readiness.
- Ending with a generic "let me know what you want to do."
See Also
- Skill:
security-review - Skill:
deployment-patterns - Skill:
e2e-testing - Skill:
tdd-workflow - Skill:
verification-loop
Related skills
More from affaan-m/ecc and the wider catalog.
production-scheduling
Expert production scheduling for discrete/batch manufacturing: sequencing, bottleneck resolution, changeover optimization, and disruption response.
project-flow-ops
Coordinate GitHub and Linear by triaging issues, linking active work, and keeping execution synchronized across public and internal layers.
project-guidelines-example
Agent skill from affaan-m/ecc.
prompt-optimizer
Analyze and optimize prompts to match ECC components for better task execution.
pubmed-database
Search PubMed and NCBI E-utilities for biomedical literature with MeSH queries, PMIDs, and citations.
python-patterns
Pythonic idioms, PEP 8 standards, type hints, and best practices for robust Python code.