This file provides guidance to AI agents when working with code in this repository.
Single source of truth: This file is a concise pointer document. All authoritative architecture, coding rules, and conventions live in CLAUDE.md at the project root. Read that file first. Use
Makefile,package.json, andpnpm-workspace.yamlas the source of truth for the full command list.
Go backend + monorepo frontend (pnpm workspaces + Turborepo) with shared packages.
server/- Go backend (Chi router, sqlc, gorilla/websocket)apps/web/- Next.js frontend (App Router)apps/desktop/- Electron desktop apppackages/core/- Headless business logic (Zustand stores, React Query hooks, API client)packages/ui/- Atomic UI components (shadcn/Base UI, zero business logic)packages/views/- Shared business pages/componentspackages/tsconfig/- Shared TypeScript config
- React Query owns all server state (issues, members, agents, inbox, workspace list)
- Zustand owns client/view state (view filters, drafts, modals, desktop tab state); current workspace identity is route-driven and only mirrored for platform plumbing
- All Zustand stores live in
packages/core/- never inpackages/views/or app directories - WS events update React Query for server data; store writes are only for clearing client-owned pointers with a single responder/self-event guard
packages/core/- zero react-dom, zero localStorage, zero process.envpackages/ui/- zero@multica/coreimportspackages/views/- zeronext/*, zeroreact-router-dom, useNavigationAdapterfor routingapps/web/platform/- only place for Next.js APIs
- Never add database foreign keys or cascading actions. Enforce relationships and perform dependent cleanup explicitly in the application layer, using transactions when the operation must be atomic.
- Every index created by a migration, including unique indexes and indexes on new tables, must use
CREATE [UNIQUE] INDEX CONCURRENTLY. Keep each concurrent index build in its own single-statement migration file.
make dev # Auto-setup + start everything
pnpm typecheck # TypeScript check
pnpm test # TS unit tests (Vitest)
make test # Go tests
make check # Full verification pipelineSee CLAUDE.md for the authoritative rules and common commands.