CI/CD Pipeline Principles
irahardianto/awesome-agv
Rules for designing CI/CD pipelines in layers: universal lint, test and scan stages, container builds with SBOM attestation, and GitOps for orchestrated deployments.
A skill your agent uses when operating an already-chosen Vercel project from the CLI or its config file — preview versus production deploys, debugging builds, pushing and pulling env vars across…
$ npx skills add ericrisco/rsc-harness --skill vercel -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness vercel --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/vercel .claude/skills/vercel && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vercel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/vercel into .claude/skills/vercel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vercel", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/vercelType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill vercel -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness vercel --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/vercel .agents/skills/vercel && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vercel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/vercel into .agents/skills/vercel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vercel", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill vercel -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness vercel --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/vercel .cursor/skills/vercel && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vercel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/vercel into .cursor/skills/vercel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vercel", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/vercel--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill vercel -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness vercel --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/vercel .gemini/skills/vercel && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vercel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/vercel into .gemini/skills/vercel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vercel", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness vercelInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill vercel -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/vercel .github/skills/vercel && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vercel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/vercel into .github/skills/vercel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vercel", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill vercel -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness vercel --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/vercel .opencode/skills/vercel && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vercel" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/vercel into .opencode/skills/vercel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vercel", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vercelA skill your agent uses when operating an already-chosen Vercel project from the CLI or its config file — preview versus production deploys, debugging builds, pushing and pulling env vars across…
Vercel is an agent skill from ericrisco/rsc-harness. Use when operating an already-chosen Vercel project from the CLI or its config file — preview versus production deploys, debugging builds, pushing and pulling env vars across environments, custom domains, function runtime, duration and regions, crons, rewrites and headers, and deployment protection. NOT host choice, Docker or CI (that is deployment), NOT Next.js app code or next.config (that is nextjs), NOT DNS records or registrar transfers (that is domains-dns).
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/cli-cookbook.md`).
It sits in DevOps & Cloud, covering Scheduled and recurring tasks, Containers and Deployment. It works with Vercel, Next.js and Docker. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 92fde8f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
vercelgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
openapi.vercel.shFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
STRIPE_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vercel loads about 3.5k tokens when it runs, and up to ~5.6k if it reads all its reference files. Until then it costs about 120 tokens; SKILL.md has 1,411 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
environments: `vercel env add|pull|ls`, `.env.local`, sensitiveprod env vars locally | `vercel env pull .env.local` (see env section — pick the env) |etch project settings + env into .vercel/.env.* for local buildsecho "STRIPE_SECRET=sk_live_..." >> .env && git add .env && git commitvercel env pull .env.local # .env.local is gitignored by Next/Vite defaultsvercel env pull .env.local # writes vars for the local-linked env into .env.localvercel env pull .env.local --environment=preview # pull a SPECIFIC environment**"`vercel env pull` doesn't update my `.env.local`"** is almost always the *environment*: pull2. Re-run `vercel env pull .env.local --environment=<env>` (it overwrites, doesn't merge).4. Dev server reads `.env.local` at boot — restart it.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 1,411 words, ~3,474 tokens.
.claude/skills/vercel/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.The operator's manual for a project that already lives on Vercel: the commands you run and the
config keys you set, with the 2025-2026 platform baked in — Fluid compute on by default, and
Edge Functions deprecated (folded into Vercel Functions). Every claim here maps to a CLI command
or a vercel.json key, not vibes.
This skill assumes the host decision is settled. If you are still asking where to run, or you need
a Dockerfile / CI pipeline, that is ../deployment/SKILL.md. If you are writing the app's route
handlers or next.config.js, that is ../nextjs/SKILL.md.
git push branch ──────────────▶ preview deployment (unique URL, protected on Hobby)
vercel ───────────▶ preview deployment from your machine
vercel --prod ───────────▶ production domain
vercel dev ───────────▶ local emulation of functions + routing
config: vercel.json (static) | vercel.ts (generated at build time)
env: scoped per environment → production / preview / developmentWhen to use:
vercel link), deploying (vercel, vercel --prod), or debugging a build.vercel.json / vercel.ts: functions, crons, rewrites, redirects,
headers, regions, cleanUrls, trailingSlash, framework, buildCommand.vercel env add|pull|ls, .env.local, sensitive
vars, vercel env pull round-trips that "don't update".vercel domains add), aliasing, deployment protection scopes.maxDuration / regions, choosing edge vs Node runtime, configuring crons.VERCEL_ENV, VERCEL_URL, VERCEL_GIT_* inside the running app.When NOT to use:
../deployment/SKILL.md. That skill
owns the host choice and containers; this one operates the chosen Vercel project.next.config.js, ISR logic → ../nextjs/SKILL.md.
This skill only touches the Vercel-side knobs (function config, env, ISR-as-a-function).../domains-dns/SKILL.md. Here we cover
only the vercel domains / vercel dns CLI surface for attaching a domain to a project.../cloudflare/SKILL.md.Three facts make Vercel predictable:
git push to a branch → a preview;
vercel --prod (or a push to the production branch) → production. You never "edit" a deployment;
you ship a new one and the domain points at it.{production, preview, development}. Pulling for the wrong environment is the #1 "my var is missing locally" cause.vercel.json is static; vercel.ts runs at
build time and can compute the same properties from env vars or an API call. Pick vercel.json
unless you genuinely need to generate config.| Situation | Do this |
|---|---|
| New project, never linked | vercel link (or first vercel run prompts to set it up), then vercel for a preview |
| Existing repo, just deploying | vercel for a preview URL, vercel --prod when ready |
| Only need the prod env vars locally | vercel env pull .env.local (see env section — pick the env) |
| Only attaching a domain | jump to Domains: vercel domains add example.com |
| Build failing | vercel --prod --debug, then read the build log; check buildCommand/installCommand/framework in vercel.json |
| Function times out | not a deploy bug — set maxDuration (and confirm your plan's ceiling) in functions |
vercel # deploy a PREVIEW from the current dir, prints a unique URL
vercel --prod # deploy to the PRODUCTION domain
vercel dev # run functions + routing locally (emulates the platform)
vercel link # associate this dir with a Vercel project (.vercel/ created)
vercel pull # fetch project settings + env into .vercel/.env.* for local builds
vercel --prod --debug # same prod deploy with verbose build output for debuggingSkip redundant builds with ignoreCommand — Vercel runs it and cancels the build when it exits
0 (yes, zero means skip). Useful in a monorepo where most pushes don't touch this project:
{ "ignoreCommand": "git diff --quiet HEAD^ HEAD -- ." }Bad → Good, the one that bites everyone:
# Bad: secrets committed so the build can read them
echo "STRIPE_SECRET=sk_live_..." >> .env && git add .env && git commit
# Good: secret lives in Vercel, never in git; pulled only for local dev
vercel env add STRIPE_SECRET production
vercel env pull .env.local # .env.local is gitignored by Next/Vite defaultsWhy scoping matters: the same key holds different values in production, preview, and
development, and the CLI treats development specially.
vercel env ls # list which vars exist in which environments
vercel env add API_URL production # add to production (prompts for the value)
vercel env add API_URL preview # separate command for preview
vercel env pull .env.local # writes vars for the local-linked env into .env.local
vercel env pull .env.local --environment=preview # pull a SPECIFIC environment
vercel env run -- npm run seed # run a command with the project's vars injectedGotchas, each with the reason:
development in the same command as production/preview. The API rejects
mixing the dev environment with the others — run a second vercel env add … development. (Run
vercel env add with no args for the interactive picker.)vercel env add for production/preview/custom defaults the var to sensitive (write-only;
you can't read it back, only overwrite). Fine for secrets, surprising for plain config.vercel env pull doesn't update my .env.local" is almost always the environment: pull
defaults to the linked environment (usually development). Pass --environment=preview (or
production) to get the values you actually mean. It overwrites the target file, so re-pull after
you change a var in the dashboard.NEXT_PUBLIC_ for Next.js, VITE_ for Vite). No prefix → server-only. Never prefix a
secret.System vars are read-only and prefixed VERCEL_ — read them in the app, never set them:
const env = process.env.VERCEL_ENV // 'production' | 'preview' | 'development'
const url = process.env.VERCEL_URL // deployment host, no protocol
const branch = process.env.VERCEL_GIT_COMMIT_REF // git branch that triggered the deployChecklist — "my var isn't showing up locally":
vercel env ls — does the var exist in the environment you expect?vercel env pull .env.local --environment=<env> (it overwrites, doesn't merge).NEXT_PUBLIC_/VITE_)..env.local at boot — restart it.Add the $schema line first — you get editor autocomplete and validation for free.
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"functions": {
"api/**/*.ts": {
"maxDuration": 30,
"regions": ["fra1"]
}
},
"crons": [{ "path": "/api/digest", "schedule": "0 * * * *" }],
"redirects": [{ "source": "/old", "destination": "/new", "permanent": true }],
"rewrites": [{ "source": "/proxy/:path*", "destination": "https://api.example.com/:path*" }],
"headers": [
{ "source": "/(.*)", "headers": [{ "key": "X-Frame-Options", "value": "DENY" }] }
],
"cleanUrls": true
}Whys:
maxDuration caps wall-clock per invocation. Defaults/ceilings are plan-bound (Hobby 60s, Pro
300s, Enterprise 900s). Setting 30 on Hobby is fine; setting 300 on Hobby silently can't apply.memory key here when Fluid is on (default for new projects since 2025-04-23). Under Fluid,
default function memory/CPU is a dashboard setting, not a vercel.json key — putting memory
in-file is ignored or rejected. See references/vercel-json.md.crons fire only on the production deployment. Each entry needs a path starting with / and
a schedule cron expression. They never run against preview. Don't expect a preview to tick.redirects change the URL the browser sees (permanent: true → 308, cacheable); rewrites
keep the URL and serve other content (proxying, framework routing); headers add response
headers by path. Reaching for the wrong one of these three is the classic mistake.functions cannot be combined with the legacy builds key — pick one; functions is current.vercel.ts exports the same shape but is code that runs at build time — use it only to generate
config (e.g. regions from an env var). Full top-level key catalog (21 keys), object shapes, and the
per-plan limit table live in references/vercel-json.md.
Edge Functions and Edge Middleware were deprecated and unified into Vercel Functions — the edge runtime now runs on Vercel Functions (changelog "Edge Middleware and Edge Functions are now powered by Vercel Functions", 2025-06). What this means for you:
runtime: 'edge'. Use the default Node runtime (Vercel
Functions). Reaching for the edge runtime for a fresh API route is the deprecated path.vercel domains add example.com # attach a domain to the current project
vercel domains ls # list domains
vercel domains inspect example.com # show config + nameserver/record status
vercel domains add example.com --force # move it off whatever project currently holds it
vercel alias set <deployment-url> staging.example.com # point an alias at a deploymentFor DNS records themselves (vercel dns add) beyond attachment, and for registrar/nameserver theory,
see ../domains-dns/SKILL.md.
Deployment Protection is per-project: a method (Vercel Authentication or Password) plus a
scope. On Hobby, Standard Protection covers preview deployments and the generated deployment
URLs; the production custom domain stays public. For CI that must hit a protected preview, use a
protection-bypass token rather than disabling protection — recipe in references/cli-cookbook.md.
| Anti-pattern | Why it's wrong | Do instead |
|---|---|---|
memory set inside functions on a Fluid project | Ignored/rejected — Fluid sets memory/CPU in the dashboard, not the file | Remove memory; set the default in project settings |
builds + functions together | Legacy builds is mutually exclusive with functions | Delete builds; express everything via functions |
Committing .env so the build can read secrets | Secret leaks into git history; rotates badly | vercel env add; vercel env pull for local only |
Expecting crons to run on a preview | Crons execute only on the production deployment | Test the handler with vercel dev; rely on prod for the schedule |
Cranking maxDuration to the plan ceiling to mask a slow query | Hides the real bug; burns compute; still hits the hard cap | Fix the query/timeout; set maxDuration to a sane headroom value |
runtime: 'edge' on a new standalone function | Edge Functions are deprecated → Vercel Functions | Use the default Node runtime; keep edge only for middleware |
Using redirect when you meant rewrite (or vice-versa) | Redirect changes the visible URL; rewrite keeps it | Redirect for moved URLs (308), rewrite for proxy/internal routing |
vercel env pull then surprised the value is stale | Pull overwrites for one environment at the moment you run it | Re-pull with --environment=<env> after any dashboard change |
references/vercel-json.md — every top-level key, the functions/crons/rewrites/redirects/
headers object shapes, the per-plan maxDuration/memory limit table, and a vercel.ts example.references/cli-cookbook.md — copy-paste CLI recipes (link, deploy, env round-trip, domains +
alias, promote a preview to production, protection-bypass for CI) and the full VERCEL_* system
env var table.© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/vercel of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
Vercel next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vercel this skillericrisco/rsc-harness | 156 | — | ~3.5k | Automated safety check: Notes | MIT | |
| CI/CD Pipeline Principlesirahardianto/awesome-agv | 157 | — | ~2.7k | Automated safety check: Notes | MIT | |
| Frontmcp Deploymentagentfront/frontmcp | 146 | — | ~9.2k | Automated safety check: Notes | Apache-2.0 | |
| Deploy To Tempsgotempsh/temps | 822 | — | ~1.3k | Automated safety check: Notes | Apache-2.0 | |
| Frontmcp Production Readinessagentfront/frontmcp | 146 | — | ~6.5k | Automated safety check: Pass | Apache-2.0 | |
| Deployment Automationaiskillstore/marketplace | 430 | 1 repos | ~3k | Automated safety check: Notes | None |
irahardianto/awesome-agv
Rules for designing CI/CD pipelines in layers: universal lint, test and scan stages, container builds with SBOM attestation, and GitOps for orchestrated deployments.
agentfront/frontmcp
A skill your agent uses when deploying, building for production, packaging, or shipping a FrontMCP server.
gotempsh/temps
Deploy applications to the Temps platform with automatic framework detection, Dockerfile generation, and container orchestration.
agentfront/frontmcp
Pre-production audit, hardening, and go-live checklists for FrontMCP servers.
aiskillstore/marketplace
Automate application deployment to cloud platforms and servers.
giuseppe-trisciuoglio/developer-kit
Provides comprehensive patterns for deploying Next.js applications to production.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Categories
A skill your agent uses when operating an already-chosen Vercel project from the CLI or its config file — preview versus production deploys, debugging builds, pushing and pulling env vars across…. Vercel is an agent skill from ericrisco/rsc-harness. Use when operating an already-chosen Vercel project from the CLI or its config file — preview versus production deploys, debugging builds, pushing and pulling env vars across environments, custom domains, function runtime, duration and regions, crons, rewrites and headers, and deployment protection.
Vercel fits situations like: operating an already-chosen Vercel project from the CLI; its config file — preview versus production deploys; debugging builds; pushing and pulling env vars across environments.
Run `npx skills add ericrisco/rsc-harness --skill vercel -a claude-code`. Or copy the skill folder (skills/vercel in ericrisco/rsc-harness) into .claude/skills/vercel in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill vercel -a codex`. Or copy the skill folder (skills/vercel in ericrisco/rsc-harness) into .agents/skills/vercel in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill vercel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vercel, .gemini/skills/vercel, .github/skills/vercel and .opencode/skills/vercel in your project.
Going by SKILL.md and its folder, Vercel needs a shell for the scripts in its folder, the command-line tools its instructions call (vercel and git) and credentials named STRIPE_SECRET. Our summary lists: A Bash shell; Docker; A credential in STRIPE_SECRET.
SKILL.md names 1 domain. In commands or code: openapi.vercel.sh; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Vercel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Vercel: CI/CD Pipeline Principles (irahardianto/awesome-agv, 157 stars), Frontmcp Deployment (agentfront/frontmcp, 146 stars), Deploy To Temps (gotempsh/temps, 822 stars) and Frontmcp Production Readiness (agentfront/frontmcp, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.