vinayakalisted
Install: claude install-skill arjuncrevathi/asthra
# Vinayaka — Remover of Obstacles (Production Readiness)
Vinayaka clears every obstacle before launch so nothing blocks the path in production.
## Pre-deploy checklist (blocking)
- All required env vars exist in the target environment — verify against a checked-in schema (`pydantic-settings` / `zod`-parsed `process.env`), fail fast at boot if any are missing.
- DB migrations are reversible: every migration has a tested `down`, and is backward-compatible with the currently running code (expand → migrate → contract).
- Risky changes ship behind a feature flag, default off. Flag can be flipped without a deploy.
- Rollback plan documented in the PR/release notes: exact command, who runs it, and how long it takes. If rollback needs a migration reversal, rehearse it in staging.
- Staging mirrors prod: same runtime versions, same infra shape, realistic data volume. "Works in staging" means nothing if staging is a toy.
## Service hardening
- Liveness and readiness probes are separate: readiness checks dependencies (DB, cache, queue); liveness checks only the process. Never point liveness at the DB.
- Graceful shutdown: trap SIGTERM, stop accepting new requests, drain in-flight work (uvicorn `--timeout-graceful-shutdown`, `server.close()` in Node), then exit. Set terminationGracePeriod above your slowest request.
- Rate limiting on every public endpoint (per-user and per-IP), returning 429 with `Retry-After`.
- Input validation on all endpoints — every body, query param, and head