Monorepo de app nuevo
Genera la plantilla
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:
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
npm run check # typecheck + tests
npm run dev:app # http://localhost:3001
Abre Claude Code
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.