writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
vercelInspect Vercel projects, deployments, build logs and domains via the Vercel REST API. Use when the user mentions Vercel, a deployment that failed / is building, build or runtime logs, a preview URL, project domains, or wants to check / redeploy a Vercel project.
Independent GitHub snapshot · Automated classification · Original documentation governs
Call the Vercel REST API with curl + jq. The user's token is in
$VERCEL_ACCESS_TOKEN; every call needs Authorization: Bearer $VERCEL_ACCESS_TOKEN. Base URL: https://api.vercel.com. If the resource is
team-scoped, append ?teamId=$VERCEL_TEAM_ID (set only when the user connected a
team token).
Errors come back as {"error":{"code","message"}} — show message verbatim.
403 forbidden usually means the token can't see that team/project →
re-connect with the right scope.
Helper for the optional team param:
TEAM=""; [ -n "$VERCEL_TEAM_ID" ] && TEAM="?teamId=$VERCEL_TEAM_ID"
AUTH="Authorization: Bearer $VERCEL_ACCESS_TOKEN"
# Projects
curl -sS -H "$AUTH" "https://api.vercel.com/v9/projects$TEAM" \
| jq '.projects[] | {name, framework, latestProduction: .latestDeployments[0].url}'
# Recent deployments (optionally filter by ?projectId=… or &state=ERROR)
curl -sS -H "$AUTH" "https://api.vercel.com/v6/deployments${TEAM:-?}&limit=20" \
| jq '.deployments[] | {uid, name, url, state, readyState, created}'
# Deployment detail
curl -sS -H "$AUTH" "https://api.vercel.com/v13/deployments/DEPLOYMENT_ID${TEAM:+&teamId=$VERCEL_TEAM_ID}" \
| jq '{name, url, state: .readyState, error: .errorMessage}'
# Build / runtime events (the actual logs)
curl -sS -H "$AUTH" "https://api.vercel.com/v3/deployments/DEPLOYMENT_ID/events${TEAM:+?teamId=$VERCEL_TEAM_ID}" \
| jq -r '.[] | select(.type=="stdout" or .type=="stderr") | .payload.text'
# Project domains
curl -sS -H "$AUTH" "https://api.vercel.com/v9/projects/PROJECT_ID/domains${TEAM:+?teamId=$VERCEL_TEAM_ID}" \
| jq '.domains[] | {name, verified}'
To redeploy, POST to https://api.vercel.com/v13/deployments with a
deploymentId (or git source) body — confirm with the user first, it ships
to production.
/v1/.../env/{id} decrypt route returns secrets — don't call it unless the
user explicitly asks, and even then summarize, don't echo.state/readyState: QUEUED → BUILDING → READY | ERROR | CANCELED.created/ready are epoch ms — divide by 1000 for human time.