Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ORQUESTADOR REAL para el ciclo completo de desarrollo Full-Stack. Conecta a Supabase, genera migrations SQL ejecutables, y guía paso a paso. Integración con Vercel para deployment automático.
.claude/skills/leoyeai-next-supabase-vercel-bundle/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 248% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -11% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 235% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 260% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 495% | 0% |
ORQUESTADOR REAL para Next.js + Supabase + Vercel Development
Este skill no es solo scaffolding básico. Es un AUTOMATIZADOR COMPLETO del ciclo de desarrollo full-stack:
Value Prop: 3+ horas → 30 segundos
bash# Crear proyecto con auth + database (RECOMENDADO) snv init my-app --template auth-db # Configurar database (auto-conecta + genera migrations) cd my-app snv db:setup # Configurar authentication (genera SQL + guía) snv auth:setup # Configurar storage (genera SQL + guía) - opcional snv storage:setup --buckets avatars,documents # Iniciar desarrollo local snv dev # Deployar automáticamente a Vercel snv deploy
snv init <project-name> - Crear y Configurar Proyectobashsnv init my-app snv init my-app --template auth-db
Qué hace:
.env.local y .env.example con placeholderssupabase/migrations/package.json con dependencias pre-configuradastsconfig.json para TypeScriptFlags:
--template <name>: Template a usarminimal - Básico (Next.js + Supabase client)auth-db - RECOMENDADO - Auth + Databaseauth - Con authenticationfull - Completo (Auth + DB + Storage)--no-typescript: Deshabilitar TypeScript--no-tailwind: Deshabilitar Tailwind CSS--no-eslint: Deshabilitar ESLintOutput:
✅ Proyecto my-app creado exitosamente!
Siguientes pasos:
1. Editar .env.local con tus credenciales de Supabase
2. Ejecutar: snv db:setup (configura DB + migrations)
3. (Opcional) Ejecutar: snv auth:setup (configura Auth)
4. (Opcional) Ejecutar: snv storage:setup (configura Storage)
5. Ejecutar: snv dev (iniciar desarrollo)
Para comenzar:
cd my-app
snv devsnv db:setup - Configurar Database (ORQUESTADOR)bashsnv db:setup
Qué hace:
NEXT_PUBLIC_SUPABASE_URL y SUPABASE_SERVICE_KEYsupabase/migrations/ por archivos .sqlsupabase/migrations-summary.md con lista de migrationsMigrations SQL generadas: El skill crea migraciones con SQL real y ejecutable:
Migration de Auth:
sql-- Habilitar Authentication en Supabase -- 1. Habilitar Email Auth alter schema auth.users enable row level security; -- 2. Crear tabla de usuarios (ejemplo) create table if not exists public.users ( id uuid default gen_random_uuid() primary key, email text unique not null, created_at timestamp with time zone default timezone('utc', now()) not null, updated_at timestamp with time zone default timezone('utc', now()) not null ); -- 3. Configurar RLS para usuarios alter table public.users enable row level security; create policy "Usuarios pueden ver su propio perfil" on public.users for select using (auth.uid()) with check (auth.uid() = id); grant select;
Ejemplos de migrations:
Output:
🔌 Checking environment variables...
📝 Loading credentials...
🌐 Connecting to Supabase...
✅ Connection to Supabase successful!
📋 Checking for migrations...
📦 Found 2 migration(s):
1. 001_initial_schema.sql
2. 002_enable_auth.sql
⚠️ NOTE: Las migrations deben ejecutarse en Supabase Dashboard
ABRIR: https://supabase.com/dashboard/project/_/sql/new
✅ Database setup completado!
Estado de la base de datos:
URL: https://xxx.supabase.co
Service Key: eyJhbGcOiJIUz...
Archivo creado: supabase/migrations-summary.md
Usa este archivo como guía para ejecutar las migrations en el dashboard.snv auth:setup - Configurar Authentication (ORQUESTADOR)bashsnv auth:setup
Qué hace:
002_enable_auth.sql con:userssrc/app/auth/login/page.tsxsrc/app/auth/signup/page.tsxsrc/lib/auth.ts con utilitiesEjemplo de migration SQL generado:
sql-- Habilitar Authentication en Supabase -- 1. Habilitar Email Auth alter schema auth.users enable row level security; -- 2. Crear tabla de usuarios create table if not exists public.users ( id uuid default gen_random_uuid() primary key, email text unique not null, created_at timestamp with time zone default timezone('utc', now()) not null, updated_at timestamp with time zone default timezone('utc', now()) not null ); -- 3. Configurar RLS para usuarios alter table public.users enable row level security; create policy "Usuarios pueden ver su propio perfil" on public.users for select using (auth.uid()) with check (auth.uid() = id); grant select;
Output:
🔐 Checking authentication setup...
✅ Authentication enabled in Supabase
📋 Creating auth migration...
✅ Migration creada: 002_enable_auth.sql
📄 Creating auth pages...
src/app/auth/login/page.tsx
src/app/auth/signup/page.tsx
src/lib/auth.ts
📋 Pasos para completar configuración:
ABRIR el Supabase Dashboard: https://supabase.com/dashboard/project/_/auth/providers
1. Habilita Email Auth (Authentication > Providers > Email)
2. (Opcional) Agrega Google OAuth (Authentication > Providers > Google)
Luego ejecuta la migration 002_enable_auth.sql en SQL Editor:
https://supabase.com/dashboard/project/_/sql/new
✅ Auth setup completado!
Notas importantes:
- Las páginas de login/signup ya existen en tu proyecto
- Revisa src/lib/supabase.ts para la configuración de Auth
- Los RLS policies (Row Level Security) se aplican automáticamentesnv storage:setup - Configurar Storage (ORQUESTADOR)bashsnv storage:setup snv storage:setup --buckets avatars,documents
Qué hace:
003_enable_storage.sql con:Ejemplo de migration SQL generado:
sql-- Habilitar Storage en Supabase -- 1. Crear buckets de ejemplo insert into storage.buckets (id, name, public, file_size_limit, allowed_mime_types) values ('avatars', 'avatars', true, 5242880, 'image/jpeg,image/png,image/gif'), ('documents', 'documents', true, 52428800, 'application/pdf,application/msword,text/plain') on conflict (id) do nothing; -- 2. Configurar políticas RLS -- NOTA: Las políticas deben configurarse manualmente en el Dashboard -- URL: https://supabase.com/dashboard/project/_/storage/policies -- Ejemplo de política para acceso público a avatars create policy "Acceso público a avatars" on storage.objects for select using (bucket_id) with check (bucket_id in ('avatars')) grant select;
Output:
📦 Checking storage configuration...
✅ Storage enabled in Supabase
📋 Creating storage migration...
✅ Migration creada: 003_enable_storage.sql
📋 Pasos para completar configuración:
ABRIR el Supabase Dashboard: https://supabase.com/dashboard/project/_/storage/buckets
1. Ejecuta la migration 003_enable_storage.sql en SQL Editor
2. Configura las políticas RLS (Row Level Security) para cada bucket
3. Ajusta límites de tamaño de archivos según tus necesidades
✅ Storage setup completado!
Notas importantes:
- Los buckets se crean automáticamente
- Los RLS policies deben configurarse manualmente en el Dashboard
- Revisa los límites de file_size_limit en el Dashboardsnv dev - Iniciar Desarrollo Localbashsnv dev snv dev --port 3000
Qué hace:
.env.local existenpm run devhttp://localhost:3000Output:
🚀 Starting development server...
✅ Dev server iniciado en: http://localhost:3000
Presiona Ctrl+C para detenersnv deploy - Deploy a Vercel (ORQUESTADOR)bashsnv deploy snv deploy --prod
Qué hace:
vercel link --yesnpm run buildvercel deploy o vercel deploy --prodOutput:
🔍 Checking Vercel CLI...
✅ Vercel CLI listo
🔨 Building project...
✅ Build completado
🚀 Deploying to Vercel...
✅ Deploy completado!
🌐 Deployment URL:
https://my-app.vercel.app
📝 Environment variables en Vercel:
DEBES CONFIGURARLAS MANUALMENTE EN EL DASHBOARD DE VERCEL:
https://vercel.com/dashboard
Variables requeridas:
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_KEY
⚠️ NOTA: Asegúrate de configurar estas variables en Vercel para que funcione en producción| Template | Descripción | Features | |----------|-------------|------------| | minimal | Básico | Next.js + Supabase client | | auth-db | RECOMENDADO | Auth + Database | | auth | Con Auth | Login/Signup páginas + utilities | | full | Completo | Auth + DB + Storage |
Para todos los proyectos:
bash# .env.local NEXT_PUBLIC_SUPABASE_URL=https://yourproject.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key_here # Service role key (requerido para snv db:setup) SUPABASE_SERVICE_KEY=your_service_role_key_here
Obtén tus credenciales en:
snv init)snv db:setup).env.localsnv auth:setup, snv storage:setup)snv dev)snv deploy)El skill genera migrations con SQL VALIDO y ejecutable:
Migration de Auth (002_enable_auth.sql):
sql-- Habilitar Authentication en Supabase -- 1. Habilitar Email Auth alter schema auth.users enable row level security; -- 2. Crear tabla de usuarios create table if not exists public.users ( id uuid default gen_random_uuid() primary key, email text unique not null, created_at timestamp with time zone default timezone('utc', now()) not null, updated_at timestamp with time zone default timezone('utc', now()) not null ); -- 3. Configurar RLS para usuarios alter table public.users enable row level security; create policy "Usuarios pueden ver su propio perfil" on public.users for select using (auth.uid()) with check (auth.uid() = id); grant select;
Migration de Storage (003_enable_storage.sql):
sql-- Habilitar Storage en Supabase -- 1. Crear buckets de ejemplo insert into storage.buckets (id, name, public, file_size_limit, allowed_mime_types) values ('avatars', 'avatars', true, 5242880, 'image/jpeg,image/png,image/gif'), ('documents', 'documents', true, 52428800, 'application/pdf,application/msword,text/plain') on conflict (id) do nothing; -- 2. Nota: Las políticas RLS deben configurarse manualmente -- En Dashboard: https://supabase.com/dashboard/project/_/storage/policies
Solución: Actualizar Node.js a v22.22.0+
bash# Verificar versión node --version # Actualizar NVM nvm install 22.22.0 nvm alias default 22.22.0 # O actualizar symlink de sistema (Linux) sudo ln -sf ~/.nvm/versions/node/v22.22.0/bin/node /usr/local/bin/node
Solución: Ejecutar snv init primero
Solución:
.env.localSolución:
bashnpm install -g vercel
Solución:
bashvercel link
bash# 1. Crear proyecto snv init my-app --template auth-db # 2. Configurar credenciales cd my-app # Editar .env.local con: # NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co # NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ... # SUPABASE_SERVICE_KEY=eyJ... # 3. Configurar database (auto-conecta + migrations) snv db:setup # 4. Configurar authentication (genera SQL) snv auth:setup # 5. Ejecutar migrations en Supabase Dashboard # ABRE: https://supabase.com/dashboard/project/_/sql/new # Copia y ejecuta 002_enable_auth.sql # 6. Iniciar desarrollo snv dev
bash# 1. En desarrollo cd my-app # 2. Build y deploy snv deploy --prod # 3. Configurar env vars en Vercel Dashboard # ABRE: https://vercel.com/dashboard # Agrega: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_KEY
bash# 1. En desarrollo cd my-app # 2. Configurar storage (genera SQL) snv storage:setup --buckets avatars # 3. Ejecutar migration en Supabase Dashboard # ABRE: https://supabase.com/dashboard/project/_/sql/new # Copia y ejecuta 003_enable_storage.sql # 4. Configurar políticas RLS en Supabase Dashboard # ABRE: https://supabase.com/dashboard/project/_/storage/policies
npm i -g vercelSkills individuales:
Nuestra skill:
Antfarm:
Nuestra skill:
Este skill es open source. Para mejorar:
Mejoras bienvenidas en:
ORQUESTADOR REAL para Next.js + Supabase + Vercel - De la idea al deploy en 30 segundos. 🚀
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 56,263 | 2,877 | -95% | 1 | 1 | 0% | 6,057 | 5,408 | -11% | 0 | 0 | — |
case-02 | pass→pass | 7,595 | 2,416 | -68% | 1 | 1 | 0% | 1,565 | 5,237 | +235% | 0 | 0 | — |
case-03 | fail→pass | 8,544 | 3,848 | -55% | 1 | 1 | 0% | 1,631 | 5,681 | +248% | 0 | 0 | — |
case-04 | pass→pass | 15,299 | 5,479 | -64% | 1 | 1 | 0% | 1,629 | 5,861 | +260% | 0 | 0 | — |
case-05 | pass→pass | 5,068 | 4,139 | -18% | 1 | 1 | 0% | 915 | 5,448 | +495% | 0 | 0 | — |
case-06 | pass→pass | 2,161 | 2,354 | +9% | 1 | 1 | 0% | 322 | 5,182 | +1509% | 0 | 0 | — |
case-07 | pass→pass | 8,201 | 48,336 | +489% | 1 | 1 | 0% | 1,659 | 5,821 | +251% | 0 | 0 | — |
case-08 | pass→pass | 7,704 | 8,426 | +9% | 1 | 1 | 0% | 1,567 | 6,587 | +320% | 0 | 0 | — |
case-09 | pass→pass | 5,217 | 50,238 | +863% | 1 | 1 | 0% | 929 | 5,442 | +486% | 0 | 0 | — |
case-10 | pass→pass | 2,899 | 3,054 | +5% | 1 | 1 | 0% | 492 | 5,355 | +988% | 0 | 0 | — |
case-11 | pass→pass | 7,958 | 5,757 | -28% | 1 | 1 | 0% | 1,641 | 6,033 | +268% | 0 | 0 | — |
case-12 | pass→pass | 8,730 | 7,921 | -9% | 1 | 1 | 0% | 1,678 | 6,465 | +285% | 0 | 0 | — |
case-13 | pass→pass | 5,295 | 67,740 | +1179% | 1 | 1 | 0% | 1,062 | 6,019 | +467% | 0 | 0 | — |
case-14 | pass→pass | 2,194 | 3,430 | +56% | 1 | 1 | 0% | 401 | 5,483 | +1267% | 0 | 0 | — |
case-15 | pass→pass | 7,727 | 5,611 | -27% | 1 | 1 | 0% | 1,552 | 5,867 | +278% | 0 | 0 | — |
case-16 | pass→pass | 8,403 | 5,070 | -40% | 1 | 1 | 0% | 1,619 | 5,810 | +259% | 0 | 0 | — |
case-17 | pass→pass | 4,923 | 4,099 | -17% | 1 | 1 | 0% | 934 | 5,580 | +497% | 0 | 0 | — |
case-18 | pass→pass | 10,024 | 6,890 | -31% | 1 | 1 | 0% | 1,935 | 6,219 | +221% | 0 | 0 | — |
case-19 | pass→pass | 7,042 | 6,308 | -10% | 1 | 1 | 0% | 1,412 | 6,041 | +328% | 0 | 0 | — |
case-20 | pass→pass | 3,329 | 2,797 | -16% | 1 | 1 | 0% | 658 | 5,355 | +714% | 0 | 0 | — |
case-21 | pass→pass | 8,399 | 5,380 | -36% | 1 | 1 | 0% | 1,703 | 5,845 | +243% | 0 | 0 | — |
case-22 | pass→pass | 2,047 | 52,343 | +2457% | 1 | 1 | 0% | 290 | 5,256 | +1712% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.