| name | Vercel Deploy Revanced |
| description | DEPLOY projects to Vercel. ALWAYS deploy as preview unless user explicitly requests production. Gather project state first (git remote, linked project, auth status), then select the best deploy method. Goal: get user into git-push deploy workflow. Supports CLI deploys and no-auth fallback scripts. Trigger: "deploy (my|the|this) app", "deploy and give me (a|the) link", "push this live", "create (a|a) preview deployment".
|
| metadata | {"author":"vercel","version":"3.1.0","last_updated":"2026-06-28T00:00:00.000Z"} |
| stacks | ["Vercel","Next.js 16","SvelteKit","Nuxt","Astro"] |
| related_skills | ["vercel-cli-tokens-revanced","vercel-optimize-revanced"] |
| category | vercel-revanced |
| version | 3.1.0 |
Deploy to Vercel
IDENTIFY: When to Activate
Activate when user requests any deployment action:
- "deploy my app", "deploy to vercel"
- "push this live", "create a preview"
- "publish my site"
- "get a preview URL"
DECIDE: Deploy Method Selection
Step 1: GATHER project state (always run ALL four checks)
Step 2: SELECT method based on state:
IF linked (.vercel/ exists) AND has git remote →
USE git push (EXECUTE Step A)
IF linked (.vercel/ exists) AND no git remote →
USE vercel deploy (EXECUTE Step B)
IF not linked AND CLI authenticated →
LINK first (EXECUTE Step C), then deploy
IF not linked AND CLI NOT authenticated →
INSTALL CLI → AUTH → LINK → DEPLOY (EXECUTE Step D)
FALLBACK: no-auth script if CLI auth impossible (EXECUTE Step E)
FALLBACK (sandboxed env, no CLI possible):
USE deploy script (EXECUTE Step E)
EXECUTE: Instructions
Step 1: Gather Project State (ALWAYS Run All Four)
git remote get-url origin 2>/dev/null
cat .vercel/project.json 2>/dev/null || cat .vercel/repo.json 2>/dev/null
vercel whoami 2>/dev/null
vercel teams list --format json 2>/dev/null
Team selection rules:
- If multiple teams → present bulleted list, ask user to pick
- If already linked →
orgId in .vercel/ determines team, skip prompt
- If one team or personal only → skip prompt, use directly
- Pass team via
--scope <team-slug> on ALL subsequent CLI commands
Step A: Git Push Deploy (PREFERRED: linked + has git remote)
- ASK user before pushing, never push without explicit approval
- Commit and push:
git add .
git commit -m "deploy: <description>"
git push
- Retrieve preview URL:
sleep 5
vercel ls --format json --scope <team-slug>
Step B: CLI Deploy (linked + no git remote)
vercel deploy [path] -y --no-wait --scope <team-slug>
Production (ONLY if user explicitly requests):
vercel deploy [path] --prod -y --no-wait --scope <team-slug>
Step C: Link First: Then Deploy (not linked + CLI authenticated)
1. Ask which team (if multiple), present slugs as bulleted list
2. Tell user what will happen, do NOT ask for separate confirmation
3. Link:
- If git remote exists: vercel link --repo --scope <team-slug>
- If no git remote: vercel link --scope <team-slug>
4. Deploy:
- If git remote exists: git push (Step A)
- If no git remote: vercel deploy -y --no-wait (Step B)
Step D: Full Setup (not linked + CLI not authenticated)
npm install -g vercel
vercel login
vercel link --repo --scope <team-slug>
git add . && git commit -m "deploy" && git push
Step E: No-Auth Fallback (sandboxed environments)
claude.ai sandbox:
bash <skill-path>/resources/deploy.sh [path]
Codex sandbox:
bash <skill-path>/resources/deploy-codex.sh [path]
Output:
Deployment successful!
Preview URL: https://my-app-abc123.vercel.app
Claim URL: https://vercel.com/claim-deployment?code=...
OUTPUT: Always Show URL
- Git push: Show the preview URL from
vercel ls --format json
- CLI deploy: Show the URL returned by
vercel deploy --no-wait
- No-auth fallback: Show both Preview URL and Claim URL
NEVER curl/fetch the deployed URL to verify. Just return the link.
SAFETY RULES
- ALWAYS deploy as preview, never production unless user explicitly says "production"
- NEVER pass VERCEL_TOKEN as
--token flag, export as env var, CLI reads it natively
- NEVER modify
.vercel/ files directly, CLI manages this directory
- ASK before pushing to git, never push commits without approval
- DO NOT curl/fetch deployed URLs to verify, just return the link
- Use
-y on CLI commands to avoid interactive blocking
TROUBLESHOOTING
| Issue | Action |
|---|
| Token not found | Check `printenv |
| Auth error | vercel whoami to verify; ask user for fresh token |
| Wrong team | Verify with vercel whoami --scope <team-slug> |
| Build failure | vercel inspect <url> --logs to check build logs |
| Network egress error (claude.ai) | User must add *.vercel.com to allowed domains in settings |
| CLI not installed | npm install -g vercel |