# CLAUDE.md — Docs chatbot (RAG) ## Stack - Next.js (App Router, TypeScript) - AI SDK (`ai` package) for streaming chat and embeddings - Supabase Postgres + pgvector (`supabase/schema.sql`) - OpenAI `text-embedding-3-small` (1536 dimensions) for embeddings ## Rules - The AI SDK changes often. Before writing AI SDK code, use the Context7 MCP to read the current docs ("use context7"). - Secrets live in `.env.local` only: `OPENAI_API_KEY`, `NEXT_PUBLIC_SUPABASE_URL`, `SUPABASE_SERVICE_ROLE_KEY`. The service role key is server-only; never import it into client components. - Ingestion is a script (`scripts/ingest.ts`), not an API route. - Chunks: about 800 tokens with 100 tokens overlap, split on headings first. - Answers must come from retrieved chunks. If nothing relevant is found, say so. Always list the sources used. - After each step run `npm run build` and fix all errors.