This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
No test framework is configured yet.
Next.js 16 App Router with Supabase auth, a LangGraph.js AI agent, and a Notion-style task table.
src/app/(dashboard)/— Protected routes (tasks, settings). Layout checks Supabase session; redirects to/auth/loginif unauthenticated. Includesdashboard/(stats/analytics) andtasks/[id]/(single task detail).src/app/auth/— Login, signup, OAuth callback. Layout has decorative left panel.src/app/api/— API routes:sync/(POST triggers AI sync),sync/task/(POST single-task sync),sync/status/(GET),settings/(GET/POST),cron/sync/(GET, bearer-token protected).src/app/privacy/— Privacy policy (public page).
- Browser client (
lib/supabase/client.ts):createBrowserClient— used in hooks and client components. - Server client (
lib/supabase/server.ts):createServerClientwithcookies()— used in server components and API routes. - Middleware (
lib/supabase/middleware.ts):updateSessionrefreshes auth on every request.src/middleware.tsredirects unauthed users to login and authed users away from auth pages.
LangGraph StateGraph that loops over tasks: fetchGithubData → advanceOrFinish → (loop or END). Each iteration fetches GitHub issue/PR/comments/reviews/events, calls Claude with a system prompt defining the 12-status taxonomy, and returns {suggestedStatus, confidence, summary}. Runner applies updates at confidence ≥ 0.6 (summary only) or ≥ 0.75 (status change).
Notion-style inline-editable table. Cell components in cells/ subfolder (status-cell, url-cell, text-cell, date-cell, amount-cell, note-cell). Each cell handles its own edit mode. The table uses useTasks and useCustomColumns hooks for CRUD with optimistic updates and Supabase Realtime subscriptions.
Chrome extension (Manifest V3) surfacing Tasker on GitHub issue/PR pages. Structure, build, and message protocol: extension/CLAUDE.md.
- UI primitives are Base UI (
@base-ui/react), NOT Radix. Userenderprop for composition (e.g.,<PopoverTrigger render={<button />}>), NOTasChild. - shadcn/ui style:
base-nova. Components use CVA for variants, Tailwind CSS variables for theming (bg-primary,text-foreground), anddata-slotattributes. - Path alias:
@/*maps tosrc/*. - Status system: 12 statuses in 3 groups (todo/in_progress/complete). Config in
lib/status.ts. - Encryption: AES-256-GCM for API keys and tokens. Format:
base64(iv):base64(authTag):base64(ciphertext). Seelib/encryption.ts. - GitHub URL parsing:
lib/github.tshasparseIssueUrl()andparsePrUrl()— extract owner/repo/number from URLs. - Tailwind CSS v4 with PostCSS. CSS variables for dark/light theming.