Communitygithub.com

PhuongDeveloper/landingpage

Despliega aplicaciones y sitios web en Vercel. Úsalo cuando el usuario solicite acciones de despliegue como "despliega mi app", "despliega y dame el enlace", "sube esto a producción" o "crea un despliegue de vista previa".

¿Qué es landingpage?

Esta habilidad está diseñada para que agentes de IA como Claude Code, Cursor o Codex desplieguen proyectos en Vercel. Su objetivo principal es guiar al agente para que primero evalúe el estado del proyecto (si tiene repositorio git, si ya está vinculado a Vercel, si el CLI de Vercel está autenticado) y luego elija el método de despliegue más adecuado: push mediante git, despliegue directo con el CLI, o un script de respaldo sin autenticación. La habilidad prioriza siempre configurar el proyecto para despliegues automáticos por git push, y despliega como vista previa a menos que el usuario pida explícitamente producción. Es compatible con entornos de terminal (Claude Code), sandbox de claude.ai y sandbox de Codex. La implementación se basa en un flujo de decisión paso a paso que revisa la existencia de un remote git, archivos de vinculación (.vercel/project.json o .vercel/repo.json), autenticación del CLI y equipos disponibles. Dependiendo de estos factores, ejecuta comandos como `vercel link`, `vercel deploy` o el script de respaldo. También maneja casos de error como restricciones de red y autenticación, solicitando permisos elevados o redirigiendo al método sin autenticación.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/PhuongDeveloper/landingpage/tree/HEAD/.agents/skills/deploy-to-vercel

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Desplegar en Vercel

Despliega cualquier proyecto en Vercel. Siempre despliega como vista previa (no producción) a menos que el usuario pida explícitamente producción.

El objetivo es llevar al usuario a la mejor configuración a largo plazo: su proyecto vinculado a Vercel con despliegues automáticos mediante git push. Cada método a continuación intenta acercar al usuario a ese estado.

Paso 1: Recopilar el estado del proyecto

Ejecuta las cuatro comprobaciones antes de decidir qué método usar:

# 1. Verifica si hay un remote git
git remote get-url origin 2>/dev/null

# 2. Verifica si está vinculado localmente a un proyecto de Vercel (cualquier archivo significa vinculado)
cat .vercel/project.json 2>/dev/null || cat .vercel/repo.json 2>/dev/null

# 3. Verifica si el CLI de Vercel está instalado y autenticado
vercel whoami 2>/dev/null

# 4. Lista los equipos disponibles (si está autenticado)
vercel teams list --format json 2>/dev/null

Selección de equipo

Si el usuario pertenece a varios equipos, presenta todos los slugs de equipo disponibles como una lista con viñetas y pregunta a cuál desplegar. Una vez que el usuario elija un equipo, procede inmediatamente al siguiente paso — no pidas confirmación adicional.

Pasa el slug del equipo mediante --scope en todos los comandos posteriores del CLI (vercel deploy, vercel link, vercel inspect, etc.):

vercel deploy [path] -y --no-wait --scope <team-slug>

Si el proyecto ya está vinculado (existe .vercel/project.json o .vercel/repo.json), el orgId en esos archivos determina el equipo — no es necesario preguntar de nuevo. Si solo hay un equipo (o solo una cuenta personal), omite la pregunta y úsalo directamente.

Acerca del directorio .vercel/: Un proyecto vinculado tiene:

  • .vercel/project.json — creado por vercel link (vinculación de proyecto único). Contiene projectId y orgId.
  • .vercel/repo.json — creado por vercel link --repo (vinculación basada en repositorio). Contiene orgId, remoteName y un array projects que mapea directorios a IDs de proyectos de Vercel.

Cualquiera de los dos archivos significa que el proyecto está vinculado. Verifica ambos.

NO uses vercel project inspect, vercel ls o vercel link para detectar el estado en un directorio no vinculado — sin un archivo de configuración .vercel/, estos comandos mostrarán un prompt interactivo (o con --yes, vincularán silenciosamente como efecto secundario). Solo vercel whoami es seguro de ejecutar en cualquier lugar.

Paso 2: Elegir un método de despliegue

Vinculado (.vercel/ existe) + tiene remote git → Git Push

Este es el estado ideal. El proyecto está vinculado y tiene integración con git.

  1. Pregunta al usuario antes de hacer push. Nunca hagas push sin aprobación explícita:

    Este proyecto está conectado a Vercel mediante git. Puedo hacer commit y push para
    activar un despliegue. ¿Quieres que proceda?
    
  2. Haz commit y push:

    git add .
    git commit -m "deploy: <descripción de los cambios>"
    git push
    

    Vercel construye automáticamente a partir del push. Las ramas que no son de producción obtienen despliegues de vista previa; la rama de producción (normalmente main) obtiene un despliegue de producción.

  3. Recupera la URL de vista previa. Si el CLI está autenticado:

    sleep 5
    vercel ls --format json
    

    La salida JSON tiene un array deployments. Encuentra la entrada más reciente — su campo url es la URL de vista previa.

    Si el CLI no está autenticado, dile al usuario que revise el panel de control de Vercel o los checks de estado de commit en su proveedor de git para la URL de vista previa.


Vinculado (.vercel/ existe) + sin remote git → vercel deploy

El proyecto está vinculado pero no hay repositorio git. Despliega directamente con el CLI.

vercel deploy [path] -y --no-wait

Usa --no-wait para que el CLI regrese inmediatamente con la URL del despliegue en lugar de bloquear hasta que la compilación termine (las compilaciones pueden tardar). Luego verifica el estado del despliegue con:

vercel inspect <deployment-url>

Para despliegues de producción (solo si el usuario lo pide explícitamente):

vercel deploy [path] --prod -y --no-wait

No vinculado + CLI autenticado → Vincular primero, luego desplegar

El CLI funciona pero el proyecto aún no está vinculado. Esta es la oportunidad para llevar al usuario al mejor estado.

  1. Pregunta al usuario a qué equipo desplegar. Presenta los slugs de equipo del Paso 1 como una lista con viñetas. Si solo hay un equipo (o solo una cuenta personal), omite este paso.

  2. Una vez seleccionado un equipo, procede directamente a vincular. Dile al usuario lo que sucederá, pero no pidas confirmación por separado:

    Vinculando este proyecto a <nombre del equipo> en Vercel. Esto creará un proyecto
    en Vercel para desplegar y habilitará despliegues automáticos en futuros pushes de git.
    
  3. Si existe un remote git, usa vinculación basada en repositorio con el ámbito del equipo seleccionado:

    vercel link --repo --scope <team-slug>
    

    Esto lee la URL del remote git y la empareja con proyectos existentes de Vercel que se despliegan desde ese repositorio. Crea .vercel/repo.json. Esto es mucho más confiable que vercel link (sin --repo), que intenta emparejar por nombre de directorio y a menudo falla cuando la carpeta local y el proyecto de Vercel tienen nombres diferentes.

    Si no hay remote git, recurre a la vinculación estándar:

    vercel link --scope <team-slug>
    

    Esto le pide al usuario que seleccione o cree un proyecto. Crea .vercel/project.json.

  4. Luego despliega usando el mejor método disponible:

    • Si existe un remote git → haz commit y push (ver método git push arriba)
    • Si no hay remote git → vercel deploy [path] -y --no-wait --scope <team-slug>, luego vercel inspect <url> para verificar el estado

No vinculado + CLI no autenticado → Instalar, autenticar, vincular, desplegar

El CLI de Vercel no está configurado en absoluto.

  1. Instala el CLI (si aún no está instalado):

    npm install -g vercel
    
  2. Autentica:

    vercel login
    

    El usuario completa la autenticación en su navegador. Si se ejecuta en un entorno no interactivo donde no es posible iniciar sesión, pasa al respaldo sin autenticación más abajo.

  3. Pregunta a qué equipo desplegar — presenta los slugs de equipo de vercel teams list --format json como una lista con viñetas. Si solo hay un equipo / cuenta personal, omite. Una vez seleccionado, procede inmediatamente.

  4. Vincula el proyecto con el ámbito del equipo seleccionado (usa --repo si existe un remote git, o vercel link simple en caso contrario):

    vercel link --repo --scope <team-slug>   # si existe remote git
    vercel link --scope <team-slug>          # si no hay remote git
    
  5. Despliega usando el mejor método disponible (git push si existe remote, de lo contrario vercel deploy -y --no-wait --scope <team-slug>, luego vercel inspect <url> para verificar el estado).


Respaldo sin autenticación — sandbox de claude.ai

Cuándo usarlo: Último recurso cuando el CLI no se puede instalar o autenticar en el sandbox de claude.ai. Esto no requiere autenticación — devuelve una URL de vista previa (sitio en vivo) y una URL de reclamo (transfiere a tu cuenta de Vercel).

bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh [path]

Argumentos:

  • path - Directorio a desplegar, o un archivo .tgz (por defecto el directorio actual)

Ejemplos:

# Desplegar el directorio actual
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh

# Desplegar un proyecto específico
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh /path/to/project

# Desplegar un tarball existente
bash /mnt/skills/user/deploy-to-vercel/resources/deploy.sh /path/to/project.tgz

El script detecta automáticamente el framework desde package.json, empaqueta el proyecto (excluyendo node_modules, .git, .env), lo sube y espera a que la compilación termine.

Dile al usuario: "Tu despliegue está listo en [previewUrl]. Reclámalo en [claimUrl] para gestionar tu despliegue."


Respaldo sin autenticación — sandbox de Codex

Cuándo usarlo: En el sandbox de Codex donde el CLI puede no estar autenticado. Codex se ejecuta en un entorno limitado por defecto — prueba el CLI primero y recurre al script de despliegue si falla la autenticación.

  1. Verifica si el CLI de Vercel está instalado (no se necesita escalación para esta verificación):

    command -v vercel
    
  2. Si vercel está instalado, intenta desplegar con el CLI:

    vercel deploy [path] -y --no-wait
    
  3. Si vercel no está instalado, o el CLI falla con "No se encontraron credenciales existentes", usa el script de respaldo:

    skill_dir="<ruta-hacia-el-skill>"
    
    # Desplegar el directorio actual
    bash "$skill_dir/resources/deploy-codex.sh"
    
    # Desplegar un proyecto específico
    bash "$skill_dir/resources/deploy-codex.sh" /path/to/project
    
    # Desplegar un tarball existente
    bash "$skill_dir/resources/deploy-codex.sh" /path/to/project.tgz
    

El script maneja la detección del framework, el empaquetado y el despliegue. Espera a que la compilación termine y devuelve JSON con previewUrl y claimUrl.

Dile al usuario: "Tu despliegue está listo en [previewUrl]. Reclámalo en [claimUrl] para gestionar tu despliegue."

Acceso de red escalado: Solo escala el comando de despliegue real si el sandbox bloquea la llamada de red (sandbox_permissions=require_escalated). No escales la verificación command -v vercel.


Notas específicas por agente

Claude Code / agentes de terminal

Tienes acceso completo al shell. NO uses la ruta /mnt/skills/. Sigue el flujo de decisión anterior usando el CLI directamente.

Para el respaldo sin autenticación, ejecuta el script de despliegue desde la ubicación instalada del skill:

bash ~/.claude/skills/deploy-to-vercel/resources/deploy.sh [path]

La ruta puede variar según dónde haya instalado el usuario el skill.

Entornos limitados (claude.ai)

Probablemente no puedas ejecutar vercel login ni git push. Ve directamente al respaldo sin autenticación — sandbox de claude.ai.

Codex

Codex se ejecuta en un sandbox. Primero verifica si el CLI está disponible, luego recurre al script de despliegue. Ve al respaldo sin autenticación — sandbox de Codex.


Salida

Siempre muestra al usuario la URL del despliegue.

  • Git push: Usa vercel ls --format json para encontrar la URL de vista previa. Si el CLI no está autenticado, dile al usuario que revise el panel de control de Vercel o los checks de estado de commit.
  • CLI deploy: Muestra la URL devuelta por vercel deploy --no-wait. Usa vercel inspect <url> para verificar el estado de la compilación e informar al usuario.
  • Respaldo sin autenticación: Muestra tanto la URL de vista previa como la URL de reclamo:
    ¡Despliegue exitoso!
    
    URL de vista previa: https://my-app-abc123.vercel.app
    URL de reclamo:      https://vercel.com/claim-deployment?code=...
    
    Visita tu sitio en la URL de vista previa.
    Para transferir este despliegue a tu cuenta de Vercel, visita la URL de reclamo.
    

No hagas curl ni fetch a la URL desplegada para verificar que funciona. Solo devuelve el enlace.


Solución de problemas

Error de salida de red (claude.ai)

Si el despliegue falla debido a restricciones de red en claude.ai, dile al usuario:

El despliegue falló debido a restricciones de red. Para solucionarlo:

1. Ve a https://claude.ai/settings/capabilities
2. Agrega *.vercel.com a los dominios permitidos
3. Intenta desplegar de nuevo

Acceso de red escalado (Codex / entornos limitados)

Si el despliegue falla debido a problemas de red (timeouts, errores DNS, reinicios de conexión) en un entorno limitado, vuelve a ejecutar con permisos escalados (sandbox_permissions=require_escalated). No escales la verificación inicial de disponibilidad del CLI — solo escala el comando de despliegue real.

Ejemplo de orientación al usuario:

El despliegue necesita acceso de red escalado para desplegar en Vercel. Puedo volver a ejecutar
el comando con permisos escalados — ¿quieres que proceda?

Fallo de autenticación del CLI

Si vercel login o vercel deploy falla con errores de autenticación, recurre al script de despliegue sin autenticación (variante claude.ai o Codex, según el entorno).

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

PhuongDeveloper/landingpage

Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pg_cron, pgmq), vector/semantic search (pgvector), and restoring dumps (pg_restore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.

PhuongDeveloper/landingpage

Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, declarative schemas, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector); debugging and troubleshooting errors or unexpected behavior on Supabase projects (HTTP errors, Postgres errors, RLS surprises, permission denied, schema cache issues, timeouts, Edge Function crashes, Realtime drops, Storage failures) and reading or querying logs (Logs Explorer, ClickHouse).

PhuongDeveloper/landingpage

Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".

PhuongDeveloper/landingpage

React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.

Skills relacionados