deploy-check

Pre-flight check before production. Catches TypeScript errors, staged secrets, pending migrations, and hygiene gaps.

Skill file

Preview skill file
---
name: deploy-check
description: Pre-flight check before production. Catches TypeScript errors, staged secrets, pending migrations, and hygiene gaps.
category: devops
tags: [deploy, ci, typescript, secrets, migrations]
author: tushaarmehtaa
---

Run a pre-flight check before pushing to production. Works with any stack.

## Steps

### 1. Check what's being pushed
```bash
git status
git diff origin/main...HEAD --stat
git log origin/main..HEAD --oneline
```
Show the user: "X commits, Y files about to go live." List the commit messages so they can see at a glance what's shipping.

### 2. TypeScript check (if applicable)
Look for `tsconfig.json` in the repo. If found:
```bash
npx tsc --noEmit
```
Run from the directory that contains `tsconfig.json` (could be root or a `frontend/` subfolder — check first).

If errors: list every error with file + line number. Do NOT recommend pushing until fixed.
If no TypeScript in project: skip this step and note it.

### 3. Check for accidentally staged secrets
```bash
git diff --cached --name-only | grep -iE '\.env|secret|key|credential|token|password'
```
If ANY file matches: STOP. Warn loudly. Never let secrets get committed.

Also check unstaged changes:
```bash
git diff --name-only | grep -iE '\.env'
```

### 4. Dependency / schema changes
- Look for migration files (common patterns: `migrations/`, `schema.sql`, `*.migration.ts`, `db/migrate/`). If any changed since last commit, remind user to run migrations before deploying.
- Check `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml` — if dependencies changed, flag which ones are new so user can confirm they're available in the production environment.
- If new environment variables appear in the diff (search for `os.getenv`, `process.env`, `ENV[`), list them and ask: are these set in your production environment?

### 5. Hygiene reminders (not blockers)
Read the commit messages and changed files, then surface these as gentle reminders:

- **Changelog / release notes**: Did anything user-visible ship (new feature, fix, UI change)? If yes, remind them to update their changelog.
- **README**: Did the setup steps, architecture, or env vars change? If yes, remind them to update the README.
- **Docs / API docs**: If new endpoints were added, remind them to document them.

These do NOT block the push. Just surface them.

### 6. Output the verdict

**Green:**
```
✅ TypeScript: no errors
✅ No secrets staged
✅ No migrations pending
✅ Dependencies: no new packages
📝 Changelog: [reminded / not needed]
→ safe to push
```

**Red:**
```
❌ TypeScript: 3 errors — fix these first
   src/auth.ts:42 — Property 'user' does not exist on type 'Session'
⚠️  .env.local is staged — remove it before committing
⚠️  schema.sql changed — run migrations in prod first
📝 2 new env vars in diff — confirm they're set in production
→ fix blockers before pushing
```

Source

Creator's repository · tushaarmehtaa/tushar-skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk