Guías

Monorepo de app nuevo

De una carpeta vacía a un monorepo Nuxt + Supabase con la capa del agente, la base de autenticación y el primer cambio.

Genera la plantilla

Terminal
npx @razcue/agent-kit init shop --kind monorepo --apps web,app,docs
cd shop && npm install

Obtienes apps/web (sitio público, prerenderizado), apps/app (SPA + rutas de servidor + Supabase), apps/docs (Docus), packages/ui (componentes shadcn-vue, tema Tailwind v4), packages/shared (esquemas Zod y utilidades), supabase/migrations/, supabase/test-data/ y un flujo de CI.

Conecta Supabase

Crea un proyecto de Supabase, copia apps/app/.env.example a .env con tu URL y tus claves, y aplica supabase/migrations/ en orden en el SQL Editor. La primera migración cierra la Data API a service_role y crea _env; fíjalo en esta base de datos:

SQL Editor
INSERT INTO public._env (name) VALUES ('dev') ON CONFLICT (id) DO UPDATE SET name = excluded.name;

Con --supabase-mcp <project-ref> los agentes también reciben un servidor MCP de Supabase de solo lectura para revisar el esquema en vivo.

Ejecuta las comprobaciones

Terminal
npm run check         # typecheck + tests
npm run dev:app       # http://localhost:3001

Abre Claude Code

Terminal
claude

Acepta el plugin y describe la primera funcionalidad. Un módulo nuevo pasa por el carril spec.

Convenciones que sigue el agente

La skill stack-nuxt-supabase (en .claude/skills/) se carga cuando el agente toca páginas, rutas de servidor, migraciones, RPCs o datos de prueba:

  • el navegador nunca llega a la base de datos: todos los datos pasan por apps/app/server/api/* con el cliente de service-role;
  • las escrituras pasan por RPCs (SECURITY DEFINER), tras validar con Zod;
  • los esquemas se comparten desde packages/shared;
  • las migraciones solo se añaden y son idempotentes;
  • solo workspaces de npm.