back

deploy-check

Run a production preflight across changes, types, secrets, migrations, dependencies, and documentation. Use when preparing to deploy or push a release.

Category
devops
Package
deploy-check/SKILL.md
License
MIT
Author
@tushaarmehtaa
Tags
deploycitypescriptsecretsmigrations

Install

Swipe for more runtimes.

Codex

Skills directory: ~/.codex/skills

available to install

Install globally

$npx skills add tushaarmehtaa/tushar-skills --skill deploy-check -g -a codex -y

Invoke

$deploy-check or /skills

You can also describe the task naturally; runtimes may select the skill from its description.

Required access

project filesterminal commands

local coding agent required

This skill requires project files and terminal commands. Uploading it to a chat app does not provide equivalent execution.

ChatGPT Skills

This workflow needs a local coding environment or capabilities that a chat-only Skills upload does not provide.

Why local agent required →

Instructions

Source: SKILL.md

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

Steps

1. Check what's being pushed

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:

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

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:

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