Deploy Check
Dieser Skill automatisiert eine umfassende Pre-Deployment-Checkliste, die Build-Status, Testergebnisse, Linting, Umgebungsvariablen, Vercel-Konfiguration, Supabase-Migrationen und den Git-Repository-Status überprüft. Er stellt sicher, dass dein Projekt die Bereitstellungsanforderungen erfüllt.

Was es macht
Der Skill deploy-check bietet eine automatisierte Checkliste vor der Bereitstellung. Er überprüft systematisch die Bereitschaft deines Projekts, indem er den Build-Prozess, Testergebnisse, Linting-Ergebnisse, Umgebungsvariablen, die Vercel-Konfiguration und ausstehende Supabase-Migrationen analysiert. Er bewertet auch den Zustand deines Git-Repositories und meldet ungespeicherte Änderungen oder veraltete Branches.
Wann du es einsetzt
Du solltest diesen Skill vor jeder Bereitstellung in Produktions- oder Staging-Umgebungen verwenden. Er hilft, häufige Bereitstellungsprobleme zu vermeiden, indem er Blockaden frühzeitig erkennt, wie fehlgeschlagene Builds, fehlerhafte Tests, fehlende Umgebungsvariablen oder ungespeicherte Datenbank-Migrationen. Dies gewährleistet einen zuverlässigeren und konsistenteren Bereitstellungsprozess.
So richtest du es ein
Um diesen Skill einzurichten, kopiere die SKILL.md-Definitionsdatei in dein Repository unter .claude/skills/deploy-check/SKILL.md. Sobald die Datei vorhanden ist, kannst du den Skill aufrufen, indem du /deploy-check in Claude Code eingibst.
Der Inhalt
Pre-Deployment Check
Run all checks before deploying. Fail fast on any blocker.
Environment: $ARGUMENTS (default: production)
Current branch: !git branch --show-current
Uncommitted changes: !git status --short
Last commit: !git log --oneline -1
Package manager: ![ -f bun.lockb ] && echo "bun" || ([ -f pnpm-lock.yaml ] && echo "pnpm" || ([ -f yarn.lock ] && echo "yarn" || echo "npm"))
Step 1: Git State
Verify clean git state:
- No uncommitted changes (warn if working tree is dirty)
- Current branch is
mainor a release branch (warn if on feature branch) - Branch is up to date with remote:
git fetch origin && git rev-list HEAD..origin/main --count
If uncommitted changes exist: WARN but continue. If behind remote: BLOCK.
Step 2: Build
Run the project build:
npm run build 2>&1 || exit 1
Replace npm with the detected package manager. If the build fails: BLOCK.
Step 3: Type Check
If tsconfig.json exists:
npx tsc --noEmit 2>&1
If type errors exist: BLOCK.
Step 4: Lint
If a lint script exists in package.json:
npm run lint 2>&1
If lint errors exist: WARN (not blocking unless errors, warnings are OK).
Step 5: Tests
Run the test suite:
npm run test -- --run 2>&1 || npx vitest run 2>&1
If tests fail: BLOCK.
Step 6: Environment Variables
Check that all required env vars are set:
- Read
.env.local.exampleor.env.exampleto get the list of required variables - Check each variable exists in
.env.localor.env.production - Flag any missing variables
Verify the framework's public Supabase vars are set:
- Next (default):
NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_ANON_KEY - Vite exception:
VITE_SUPABASE_URL,VITE_SUPABASE_ANON_KEY
Missing env vars: BLOCK.
Step 7: Vercel Configuration
Check Vercel setup:
- Check Vercel config — Next is zero-config (no
vercel.jsonrewrite needed); Vite-exception repos needvercel.jsonwith the SPAindex.htmlrewrite - Check if
.vercel/project.jsonexists (indicatesvercel linkwas run) - Run
vercel whoami 2>/dev/nullto verify CLI login
Missing Vercel link: WARN — remind to run vercel link.
Vercel CLI not logged in: WARN — remind to run vercel login.
Step 8: Pending Migrations
If supabase/migrations/ exists:
- Check for migration files not yet applied:
supabase migration list 2>/dev/null - Check for uncommitted migration files in the directory
Unapplied migrations: WARN — remind to run supabase db push after deploy.
Step 9: Bundle Size (optional)
After build, measure the output (Next: .next/; Vite exception: dist/):
du -sh .next/ dist/ 2>/dev/null
Report total build output size. Flag if over 5MB: WARN.
Step 10: SEO & GEO Gate
Only if the project has a public content surface (skip for behind-auth-only
tools / Vite-exception SPAs with a documented exemption in CLAUDE.md).
Verify against ref/growth/seo.md and ref/growth/geo.md:
SEO:
- Sitemap + robots generated from code (Next:
app/sitemap.ts+app/robots.ts; Vite:scripts/generate-sitemap.mjs+ committedpublic/sitemap.xml+ drift check) - Robots references the sitemap and disallows the §7.4 route categories
- SEO/content routes server-rendered/SSG/ISR — not client-only
GEO:
- robots declares an explicit, correct AI-crawler policy — retrieval bots (
OAI-SearchBot,Claude-SearchBot,PerplexityBot,Googlebot) allowed; no accidental blanketDisallowfor AI bots - content pages answer-first + citability signals (sourced/dated stats, quotable claims)
- on-site entity hooks:
Organization+sameAs, named author, visibledateModified - GEO measurement wired (passive AI-referral + a defined active prompt set)
Client-only content rendering, missing sitemap/robots, or an AI-crawler policy that accidentally blocks retrieval bots on a public content product: BLOCK.
Missing answer-first structure / citability / entity hooks / measurement: WARN.
GEO structured-data types (FAQPage/QAPage), Bing/IndexNow, off-site presence: WARN (SHOULD).
/llms.txt: check ONLY for products with a public API/developer-docs surface — it is NOT a visibility signal; its absence on a marketing site is not a finding.
For a .lovable. repo: treat all GEO items as WARN (SPA limit accepted).
For a deep pass or to fix findings, run /optimize-growth optimize.
Step 11: Summary
## Deploy Check Results
Branch: <branch> (<clean/dirty>)
Remote: <up to date / N commits behind>
| Check | Status |
|------------------|---------------------|
| Build | PASS / FAIL |
| Type Check | PASS / FAIL / SKIP |
| Lint | PASS / WARN / SKIP |
| Tests | PASS / FAIL / SKIP |
| Env Vars | PASS / MISSING: ... |
| Vercel Config | PASS / WARN |
| Supabase Link | PASS / WARN / SKIP |
| Migrations | PASS / PENDING: ... |
| Bundle Size | <size> (OK / WARN) |
| SEO Gate | PASS / BLOCK / SKIP |
| GEO Gate | PASS / WARN / BLOCK / SKIP |
### Verdict
READY TO DEPLOY / BLOCKED (fix issues above first)
### Blockers
- <list of blocking issues, if any>
### Warnings
- <list of non-blocking warnings, if any>
### Deployment
Vercel auto-deploys on push to main. To trigger manually:
- Preview: `vercel`
- Production: `vercel --prod`
Kommt direkt aus dem Framework, mit dem diese Seite gebaut wird. Diese Seite zeigt immer die aktuelle Version.
Sowas für dich bauen?
Es beginnt mit einem Gespräch: 30 Minuten, unverbindlich.