New app monorepo
Scaffold
npx @razcue/agent-kit init shop --kind monorepo --apps web,app,docs
cd shop && npm install
You get apps/web (public site, prerendered), apps/app (SPA + server routes + Supabase), apps/docs (Docus), packages/ui (shadcn-vue components, Tailwind v4 theme), packages/shared (Zod schemas and utils), supabase/migrations/, supabase/test-data/ and a CI workflow.
Connect Supabase
Create a Supabase project, copy apps/app/.env.example to .env with your URL and keys, and apply supabase/migrations/ in order in the SQL Editor. The first migration locks the Data API to service_role and creates _env; set it on this database:
INSERT INTO public._env (name) VALUES ('dev') ON CONFLICT (id) DO UPDATE SET name = excluded.name;
With --supabase-mcp <project-ref> agents also get a read-only Supabase MCP server to check the live schema.
Run the checks
npm run check # typecheck + tests
npm run dev:app # http://localhost:3001
Start Claude Code
claude
Accept the plugin, then describe the first feature. A new module goes through the spec lane.
Conventions the agent follows
The stack-nuxt-supabase skill (in .claude/skills/) loads when the agent touches pages, server routes, migrations, RPCs or test data:
- the browser never reaches the database — all data goes through
apps/app/server/api/*with the service-role client; - writes go through RPCs (SECURITY DEFINER), after Zod validation;
- schemas are shared from
packages/shared; - migrations are append-only and idempotent;
- npm workspaces only.