Use when (1) deploying web application to Vercel staging or production, (2) monitoring deployment progress, (3) running post-deployment verification. Manages Vercel deployment workflow with safety checks.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: gmacko-release-deploy-web
description: Use when (1) deploying web application to Vercel staging or production, (2) monitoring deployment progress, (3) running post-deployment verification. Manages Vercel deployment workflow with safety checks.
license: MIT
compatibility: opencode
metadata:
phase: release
tier: workhorse
permission: ask
---
# Gmacko Web Deployment (Vercel)
Deploy the Next.js web application to Vercel with proper verification and rollback planning.
## When to Use
- Release preparation is complete
- Ready to deploy to staging or production
- Need to verify a deployment
- Need to rollback a deployment
## Prerequisites
- Release summary exists: `docs/ai/releases/[date]-v[version].md`
- Vercel CLI authenticated: `vercel whoami`
- Vercel project linked: `vercel link`
## Workflow
```dot
digraph deploy_web {
rankdir=TB;
node [shape=box];
start [label="Start Deployment" shape=ellipse];
confirm_env [label="1. Confirm Environment"];
pre_checks [label="2. Pre-Deployment Checks"];
ready [label="Ready?" shape=diamond];
deploy [label="3. Execute Deployment"];
monitor [label="4. Monitor Progress"];
success [label="Success?" shape=diamond];
verify [label="5. Post-Deploy Verification"];
healthy [label="Healthy?" shape=diamond];
document [label="6. Document Deployment"];
rollback [label="Rollback"];
done [label="Deployment Complete" shape=ellipse];
failed [label="Deployment Failed" shape=ellipse];
start -> confirm_env -> pre_checks -> ready;
ready -> deploy [label="yes"];
ready -> failed [label="no"];
deploy -> monitor -> success;
success -> verify [label="yes"];
success -> rollback [label="no"];
verify -> healthy;
healthy -> document [label="yes"];
healthy -> rollback [label="no"];
rollback -> failed;
document -> done;
}
```
## Execution Steps
### Step 1: Confirm Environment
**CRITICAL**: Always confirm target environment before deployment.
Ask user:
> I'm preparing to deploy to Vercel.
>
> **Target Environment**: [staging/production]
> **Branch**: [current branch]
> **Version**: [version from release summary]
>
> Please confirm:
> 1. Is this the correct environment? (yes/no)
> 2. Have you reviewed the release summary? (yes/no)
> 3. Is this a good time to deploy? (yes/no)
For **production** deployments, require explicit confirmation:
> ⚠️ **PRODUCTION DEPLOYMENT**
>
> This will affect live users. Please type "deploy to production" to confirm.
### Step 2: Pre-Deployment Checks
Run verification before deploying:
```bash
# Check current deployment status
vercel ls --limit 5
# Verify build succeeds locally
pnpm build
# Check for uncommitted changes
git status
# Verify we're on the right branch
git branch --show-current
# Check Vercel project is linked
vercel project ls
```
Checklist:
```markdown
## Pre-Deployment Checklist
- [ ] Build passes locally
- [ ] No uncommitted changes
- [ ] On correct branch
- [ ] Vercel project linked
- [ ] Environment variables verified
- [ ] Database migrations applied (if any)
```
### Step 3: Execute Deployment
**For Staging**:
```bash
# Deploy to preview (staging)
vercel
# Or deploy specific branch
vercel --target preview
```
**For Production**:
```bash
# Deploy to production
vercel --prod
# With specific scope
vercel --prod --scope gmacko
```
Capture deployment URL:
```bash
DEPLOYMENT_URL=$(vercel --prod 2>&1 | grep -o 'https://[^ ]*')
echo "Deployment URL: $DEPLOYMENT_URL"
```
### Step 4: Monitor Progress
Monitor deployment status:
```bash
# List recent deployments
vercel ls --limit 3
# Get deployment status
vercel inspect [deployment-url]
# Watch build logs (if available)
vercel logs [deployment-url] --follow
```
Report progress:
```
Deployment Status
=================
URL: https://my-app-abc123.vercel.app
Status: BUILDING / READY / ERROR
Build Duration: Xs
Build Logs:
[Show relevant log excerpts]
```
### Step 5: Post-Deployment Verification
Run smoke tests on deployed environment:
```markdown
## Smoke Test Checklist
### Critical Paths
- [ ] Homepage loads (< 3s)
- [ ] Sign in works
- [ ] Sign up works
- [ ] Dashboard loads (authenticated)
- [ ] Core feature works
### API Health
- [ ] tRPC endpoints responding
- [ ] Database queries working
- [ ] Auth middleware functioning
### Integrations
- [ ] Clerk authentication
- [ ] Stripe payments (test mode)
- [ ] PostHog tracking
- [ ] Sentry error reporting
```
Check for errors:
```bash
# Check Sentry for new errors
# (Manual: Visit Sentry dashboard)
# Check Vercel logs for errors
vercel logs [deployment-url] --since 5m
```
### Step 6: Document Deployment
Update release summary:
```markdown
## Deployment Record
### Web (Vercel)
- **Deployed at**: [timestamp]
- **Deployment URL**: [url]
- **Deployment ID**: [id]
- **Status**: SUCCESS / FAILED
- **Build time**: [Xs]
### Verification
- Smoke tests: PASSED / FAILED
- Error rate: Normal / Elevated
- Performance: Normal / Degraded
### Notes
[Any observations or issues]
```
Report to user:
```
DEPLOYMENT COMPLETE
===================
Environment: Production
URL: https://app.example.com
Deployment ID: dpl_xxxxx
Smoke Tests: 5/5 PASSED
Error Rate: Normal
Response Time: ~200ms avg
Deployment successful! Monitoring for issues...
```
## Rollback Procedure
If issues detected:
```bash
# List previous deployments
vercel ls --limit 10
# Rollback to previous deployment
vercel rollback
# Or rollback to specific deployment
vercel rollback [deployment-url-or-id]
```
Document rollback:
```markdown
## Rollback Record
- **Rolled back at**: [timestamp]
- **Reason**: [description]
- **Rolled back to**: [deployment-id]
- **Status**: SUCCESS
### Post-Rollback Verification
- [ ] Previous version accessible
- [ ] Core functionality working
- [ ] No data loss
```
## Environment-Specific Notes
### Staging
- Deployed from feature branches or `staging` branch
- Used for QA and demos
- Can have test data
### Production
- Deployed from `main` branch only
- Affects real users
- Requires extra confirmation
- Consider deployment timing (avoid peak hours)
## Error Handling
### Build Failure
1. Check build logs: `vercel logs [url]`
2. Common causes:
- Type errors (run `pnpm typecheck`)
- Missing dependencies
- Environment variable issues
3. Fix locally, push, redeploy
### Runtime Errors
1. Check Sentry dashboard
2. Check Vercel function logs
3. Rollback if critical
4. Fix and redeploy
### Performance Issues
1. Check Vercel Analytics
2. Compare with baseline
3. Identify slow endpoints/pages
4. Consider rollback if severe
## Red Flags
| Rationalization | Correction |
|-----------------|------------|
| "Just push to main, it'll be fine" | Follow full deployment process |
| "Skip smoke tests, build passed" | ALWAYS verify deployed functionality |
| "Production during peak hours is fine" | Deploy during low-traffic periods when possible |
| "Skip confirmation for staging" | Confirm environment for ALL deployments |
| "Rollback isn't necessary" | Always have rollback plan ready |
## Integration
- **Input**: Target environment, version
- **References**: Release summary, deployment history
- **Output**: Updated release record, deployment URL
- **Next**: `gmacko-release-close` or monitor
No comments yet. Be the first to comment!