Corrige el conocimiento desactualizado del LLM sobre la plataforma Vercel e introduce sus productos nuevos. Se inyecta al inicio de la sesión.
- Costo de contexto al activarse
- 1.8k tok
- Tamaño del paquete
- 1 archivo
- Última actualización
- el mes pasado
Escenarios avanzados de benchmark para agentes de IA que ponen a prueba Workflow SDK, AI Gateway, MCP, Chat SDK, Queues, Flags, Sandbox y orquestación multi-agente de Vercel.
Reemplaza a: `claude --print` o scripts de eval automatizados, `Bun.spawn(["claude", ...])`
en todo el repo
0–100, la ruta de este skill
último commit aquí
últimos 90 días
65 tok en reposo
26 KB
Funciona con cualquier agente que lea SKILL.md
npx -y skills add vercel/vercel-plugin --skill benchmark-agents --agent claude-codeSe instala solo en este repositorio.
Este skill makes network requests, reads environment config.
Di cualquiera de estas frases y el agente debería cargar este skill.
Launch real Claude Code sessions with the plugin installed, verify skill injection, monitor PostToolUse validation catches, and produce a coverage report. This skill covers the full eval loop: setup → launch → monitor → verify → fix → release → repeat.
Evals are run by you, in this conversation, not by scripts. The process is:
wezterm cli spawn — each pane runs an independent Claude Code interactive session/release, and spawn more evalsNever use claude --print, eval scripts, or Bun.spawn(["claude", ...]). These do not work because:
--print mode generates text without executing tools — no files are created, no deps installed, no dev servers startedsession_id means dedup, profiler, and claim files don't workThe WezTerm interactive approach is the only method that exercises the plugin correctly. Every eval in our history (60+ sessions) used this approach.
These are absolute prohibitions. Violating any of them wastes the entire eval run:
claude --print or -p flag — hooks don't fire, no files created--dangerously-skip-permissions — changes agent behavior/tmp/ — always use ~/dev/vercel-plugin-testing/settings.local.json or wire hooks by hand — use npx add-pluginCLAUDE_PLUGIN_ROOT manually — the plugin manages thisbash -c or bash -lc in WezTerm — always use /bin/zsh -icx alias (it's configured in zsh)debug.log files with stderr redirects — debug logs go to ~/.claude/debug/git init or create package.json manually — npx add-plugin + the WezTerm session handle all scaffoldingT in timestamps breaks create-next-app)Copy the exact commands below. Do not improvise.
Always append a timestamp to directory names so reruns don't overwrite old projects:
<slug>-<yyyymmdd>-<hhmm>
Example: tarot-card-deck-20260309-1227, interior-designer-20260309-1227
Generate the timestamp with: date +%Y%m%d-%H%M
TS=$(date +%Y%m%d-%H%M)
SLUG="my-app-$TS"
mkdir -p ~/dev/vercel-plugin-testing/$SLUG
cd ~/dev/vercel-plugin-testing/$SLUG
npx add-plugin https://github.com/vercel/vercel-plugin -s project -y
wezterm cli spawn --cwd /Users/johnlindquist/dev/vercel-plugin-testing/$SLUG -- /bin/zsh -ic \
"unset CLAUDECODE; VERCEL_PLUGIN_LOG_LEVEL=debug x '<PROMPT>' --settings .claude/settings.json; exec zsh"
Key flags:
unset CLAUDECODE — prevents nested session detection errorVERCEL_PLUGIN_LOG_LEVEL=debug — enables hook debug output in ~/.claude/debug/x — alias for claude CLI--settings .claude/settings.json — loads project-level plugin settingsfind ~/.claude/debug -name "*.txt" -mmin -2 -exec grep -l "$SLUG" {} +
Create dirs and install plugin in a loop, then spawn each WezTerm pane:
TS=$(date +%Y%m%d-%H%M)
cd ~/dev/vercel-plugin-testing
for name in tarot-deck interior-designer superhero-origin; do
d="${name}-${TS}"
mkdir -p "$d" && (cd "$d" && npx add-plugin https://github.com/vercel/vercel-plugin -s project -y)
done
# Then spawn each (these run in separate terminal panes)
wezterm cli spawn --cwd .../tarot-deck-$TS -- /bin/zsh -ic "unset CLAUDECODE; VERCEL_PLUGIN_LOG_LEVEL=debug x '...' --settings .claude/settings.json; exec zsh"
wezterm cli spawn --cwd .../interior-designer-$TS -- /bin/zsh -ic "unset CLAUDECODE; VERCEL_PLUGIN_LOG_LEVEL=debug x '...' --settings .claude/settings.json; exec zsh"
wezterm cli spawn --cwd .../superhero-origin-$TS -- /bin/zsh -ic "unset CLAUDECODE; VERCEL_PLUGIN_LOG_LEVEL=debug x '...' --settings .claude/settings.json; exec zsh"
TMPDIR=$(node -e "import {tmpdir} from 'os'; console.log(tmpdir())" --input-type=module)
CLAIMDIR="$TMPDIR/vercel-plugin-<session-id>-seen-skills.d"
# List all injected skills
ls "$CLAIMDIR"
# Count
ls "$CLAIMDIR" | wc -l
# Check specific skill
ls "$CLAIMDIR/workflow" && echo "YES" || echo "NO"
LOG=~/.claude/debug/<session-id>.txt
# SessionStart hooks
grep -c 'SessionStart.*success' "$LOG"
# PreToolUse calls and injections
grep -c 'executePreToolHooks' "$LOG" # total calls
grep -c 'provided additionalContext' "$LOG" # actual injections
# PostToolUse validation catches
grep 'VALIDATION' "$LOG" | head -10
# UserPromptSubmit
grep -c 'UserPromptSubmit.*success' "$LOG"
TMPDIR=$(node -e "import {tmpdir} from 'os'; console.log(tmpdir())" --input-type=module 2>/dev/null)
for label_id in "slug1:SESSION_ID_1" "slug2:SESSION_ID_2" "slug3:SESSION_ID_3"; do
label="${label_id%%:*}"
id="${label_id##*:}"
claimdir="$TMPDIR/vercel-plugin-$id-seen-skills.d"
echo "=== $label ==="
count=$(ls "$claimdir" 2>/dev/null | wc -l | tr -d ' ')
claims=$(ls "$claimdir" 2>/dev/null | sort | tr '\n' ', ')
echo "Skills ($count): $claims"
done
After sessions build, verify these patterns in the generated projects:
echo -n "src/: "; test -d "$base/src" && echo YES || echo NO # Should be NO for Workflow SDK projects
echo -n "workflows/: "; test -d "$base/workflows" && echo YES || echo NO
echo -n "withWorkflow: "; grep -q "withWorkflow" "$base"/next.config.* && echo YES || echo NO
echo -n "components.json: "; test -f "$base/components.json" && echo YES || echo NO
# Should use gemini-3.1-flash-image-preview, NOT dall-e-3 or older gemini models
grep -rn "gemini.*image\|dall-e\|experimental_generateImage\|result\.files" "$base/workflows/" "$base/app/" 2>/dev/null | grep "\.ts"
# Should use gateway() or plain "provider/model" strings, NOT openai("gpt-4o") directly
grep -rn "from.*@ai-sdk/openai\|openai(" "$base" 2>/dev/null | grep "\.ts" | grep -v node_modules
grep -rn "gateway(\|model:.*\"openai/" "$base" 2>/dev/null | grep "\.ts" | grep -v node_modules
find "$base" -path "*/ai-elements/*.tsx" 2>/dev/null | grep -v node_modules | wc -l
wf=$(find "$base" -name "*.ts" -path "*/workflow*" 2>/dev/null | grep -v node_modules | head -1)
head -5 "$wf" # Should show: import { getWritable } from "workflow"
Describe products, not technologies. Let the plugin infer which skills to inject. This tests whether the plugin's pattern matching and prompt signals work from natural language.
"Link the project to my vercel-labs team so we can deploy it later. Skip any planning and just build it. Get the dev server running."
create-next-app bash pattern| Issue | Cause | Plugin Fix (version) |
|---|---|---|
| Workflow not triggered from natural language | promptSignals too narrow | Broadened phrases, lowered minScore 6→4 (v0.9.5) |
Agent uses openai("gpt-4o") instead of gateway |
Agent's training data defaults to openai | PostToolUse validate warns "your knowledge is outdated" (v0.9.9) |
Agent uses dall-e-3 for images |
Agent doesn't know about gemini image gen | PostToolUse validate warns, capabilities table in ai-sdk (v0.9.7) |
Agent uses experimental_generateImage |
Old API | PostToolUse validate warns, recommend generateText + result.files (v0.9.9) |
Raw markdown rendering (**bold** visible) |
Agent skips AI Elements | MessageResponse documented as universal renderer (v0.9.2) |
@/../../workflows/ broken import |
Workflows outside @ alias root |
Canonical structure docs: no src/ for Workflow SDK (v0.8.3) |
withWorkflow missing from next.config |
Agent skipped setup step | Marked as "Required" in workflow skill (v0.8.1) |
defineHook but no resume route |
Agent didn't wire the 3-piece pattern | Documented as 3 required pieces (v0.9.3) |
generateObject() used (removed in v6) |
Agent's training data | PostToolUse validate catches as error (v0.9.3) |
getWritable() in workflow scope |
Sandbox violation | Strengthened warning in skill (v0.8.1) |
Missing vercel link + vercel env pull |
No OIDC credentials | Added as "Required" setup step (v0.9.1) |
getStepMetadata().retryCount undefined on first attempt |
Workflow SDK quirk | Documented: guard with ?? 0 (v0.9.1) |
| shadcn not installed | No trigger for scaffolding | Added create-next-app bashPattern to shadcn (v0.8.0) |
| Skill cap too low (3) | Only 3 skills injected per tool call | Raised to 5 with 18KB budget (v0.8.0) |
After dev server starts, verify with agent-browser. Note: agents currently DO NOT self-verify despite the skill being injected. You must launch verification manually:
agent-browser open http://localhost:<port>
agent-browser wait --load networkidle
agent-browser screenshot
agent-browser snapshot -i
Write results to .notes/COVERAGE.md with:
The standard improvement cycle:
bun run typecheck && bun test && bun run validatebun run build, commit, push| # | Slug | Prompt Summary | Expected Skills |
|---|---|---|---|
| 01 | doc-qa-agent | PDF Q&A with embeddings, citations, multi-step reasoning | ai-sdk, nextjs, vercel-storage, ai-elements |
| 02 | customer-support-agent | Durable support agent, escalation, confidence tracking | ai-sdk, workflow, nextjs, ai-elements |
| 03 | deploy-monitor | Uptime monitoring, AI incident responder, durable investigation | workflow, cron-jobs, observability, ai-sdk |
| 04 | multi-model-router | Side-by-side model comparison, parallel streaming, cost tracking | ai-gateway, ai-sdk, nextjs, ai-elements |
| 05 | slack-pr-reviewer | Multi-platform chat bot, PR review, threaded conversations | chat-sdk, ai-sdk, nextjs |
| 06 | content-pipeline | Durable multi-step content production with image generation | workflow, ai-sdk, satori, nextjs |
| 07 | feature-rollout | Feature flags, A/B testing, AI experiment analysis | vercel-flags, ai-sdk, nextjs |
| 08 | event-driven-crm | Event-driven CRM, churn prediction, re-engagement emails | vercel-queues, workflow, ai-sdk, email |
| 09 | code-sandbox-tutor | AI coding tutor with sandbox execution, auto-fix | vercel-sandbox, ai-sdk, nextjs, ai-elements |
| 10 | multi-agent-research | Parallel sub-agents, durable orchestration, streaming synthesis | workflow, ai-sdk, ai-elements, nextjs |
| 11 | discord-game-master | RPG bot, persistent game state, scene illustration generation | chat-sdk, ai-sdk, vercel-storage, nextjs |
| 12 | compliance-auditor | Scheduled AI audits, durable approval workflow, deploy blocking | workflow, cron-jobs, ai-sdk, vercel-firewall |
--quick)Scenarios 01, 04, 09 — AI SDK, Gateway, Sandbox, AI Elements without durable workflows.
Scenarios 02, 03, 06, 10 — Workflow SDK, multi-step durability, agent orchestration.
Scenarios 05, 07, 08, 11, 12 — Chat SDK, Queues, Flags, Firewall, cross-platform messaging.
All 12 scenarios, ~3-4 hours.
rm -rf ~/dev/vercel-plugin-testing
Reproducido de vercel/vercel-plugin bajo licencia NOASSERTION. Leer esta página en markdown.
2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.
Requiere WezTerm, el alias `x` configurado en zsh, y el plugin instalado vía `npx add-plugin` en ~/dev/vercel-plugin-testing/.
Necesita en el PATH:nodenpx
Variables de entorno:CLAIMDIRSLUG
Este repo incluye 43 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack vercel-plugin entero y su comando de instalación
Corrige el conocimiento desactualizado del LLM sobre la plataforma Vercel e introduce sus productos nuevos. Se inyecta al inicio de la sesión.
Guía experta de Vercel Connect: obtén tokens OAuth con permisos limitados para servicios de terceros (Slack, GitHub, servidores MCP, OAuth, Snowflake) en nombre de apps o usuarios vía Vercel OIDC.
Depura el caching de la CDN de Vercel: tasa de aciertos, contenido obsoleto, revalidación, ISR + PPR, cacheReason, ppr_state y costos.
Guía experta sobre Vercel Functions: Serverless Functions, Edge Functions, Fluid Compute, streaming, Cron Jobs y configuración de runtime para código server-side en Vercel.
Guía de arquitectura backend: úsala para planear, construir o migrar una API o backend, elegir entre Functions, Services, contenedores, Workflow, Queues y bases de datos de Marketplace, o seleccionar framework y runtime.
Guía de eve, el framework para agentes de IA duraderos: runtime basado en filesystem, sesiones, tools, skills, canales, sandboxes, subagentes, schedules, evals y observabilidad con Agent Runs.
Suite de benchmark end-to-end para vercel-plugin: ejecuta proyectos reales con inyección de skills, verifica servidores dev, analiza logs y genera un reporte de mejora.
Corre escenarios de eval de vercel-plugin en Vercel Sandboxes en vez de paneles locales de WezTerm: aprovisiona microVMs con Claude Code, ejecuta prompts y genera reportes de cobertura.
Crea y lanza proyectos de prueba de benchmark para ejercitar la inyección de skills de vercel-plugin en escenarios realistas, usando directorios aislados y paneles de WezTerm con Claude Code.