Skip to content
Back to skills

Deploy Check

ASecurity

Pre-deploy verification — build, smoke test, env-var sanity. Use immediately before deploying or promoting to prod, to catch a broken build or missing config before it ships.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
ai-agentsgobashdockergit

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add bakw00ds/yakos --skill deploy-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Deploy Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Deploy Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bakw00ds-deploy-check/badge)](https://www.skillsdirectory.com/skills/bakw00ds-deploy-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: deploy-check
description: Pre-deploy verification — build, smoke test, env-var sanity. Use immediately before deploying or promoting to prod, to catch a broken build or missing config before it ships.
allowed-tools: Read Bash Grep
argument-hint: "[--target <env>]"
mode: [review]
---

# Deploy Check

## Purpose

Run the pre-deploy gate: build the production artifact, smoke-test
critical paths, verify environment-variable sanity (presence, not
values), and produce a structured go/no-go report. Distinct from
`test-suite` (correctness) and `pre-commit` (cheap fast checks) —
deploy-check is deploy-shaped: it cares about what would actually
ship to a target environment.

## Scope

Operates on the current branch's HEAD; reads the project's deploy
configuration (`deploy/`, `Dockerfile`, `cloudbuild.yaml`, project-
specific scripts). With `--target <env>`, the smoke tests can be
environment-specific (e.g. staging vs prod has different smoke targets).

NOT in scope: actually deploying. The skill is verification only.
A separate operator action triggers the deploy.

## Automated pass

1. **Build.** Run the project's production build (`make build`,
   `npm run build`, `flutter build`, `docker build`, etc.). Warnings
   logged; failures abort.
2. **Artifact sanity.** Verify the artifact has expected size order-of-
   magnitude (bin sizes don't suddenly 10x without warning), expected
   files (no missing required output), expected provenance metadata.
3. **Env-var presence.** Read the deploy config to enumerate required
   env vars; verify each is set to a non-empty value in the target
   env. Do NOT print values — print presence/absence (per
   `rule:secret-handling`).
4. **Smoke tests.** Run the project-defined deploy-smoke target
   (`make smoke`, `npm run test:smoke`). These exercise critical paths
   end-to-end; they're slower than unit tests but should still complete
   in single-digit minutes.
5. **Migration check.** If the change includes DB migrations, verify
   they're idempotent and have a rollback. (The migration validator
   from `lib/hooks/per-domain/db-migration-validate.sh` runs here.)

## Manual pass

The operator reviews:

- The size-deltas vs last release. A 30% size jump in a "small fix"
  is suspicious.
- The list of env vars compared against the target environment's
  declared spec.
- Any warnings from the build step. Warnings aren't errors but they
  accumulate.

## Findings synthesis

```
deploy-check results: <go|no-go>
  build:       <pass|fail> (<duration>; warnings: <n>)
  artifact:    <pass|fail> (size <delta vs last>; required files <ok|missing>)
  env-vars:    <pass|fail> (<n>/<total> set; <list-of-missing>)
  smoke:       <pass|fail> (<n>/<total>)
  migrations:  <pass|fail|n/a>
```

A `no-go` blocks the deploy. A `go` is necessary but not sufficient —
the operator still runs the deploy command manually.

## Known gotchas

- `--target` defaults to the safest target. Don't auto-default to
  production — the operator names the target explicitly.
- Smoke tests that hit the actual target environment can have side
  effects (creating test users, leaving traces). Project policy
  decides whether smoke-against-prod is allowed. Default is no.
- Env-var "presence" doesn't validate "correctness" — a key that's
  set but wrong-valued passes presence. That's a correctness check
  in CI, not pre-deploy.
- A passing deploy-check doesn't mean the deploy itself is safe.
  Network partitions, target-env drift, and active-traffic effects
  aren't covered. Deploy-check is necessary, never sufficient.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…