--- description: Repo-wide conventions for the Echodo monorepo alwaysApply: true --- # Echodo monorepo (always-on) The authoritative agent guide for this repo is [AGENTS.md](mdc:AGENTS.md). Read it before doing anything non-trivial. This rule only restates the load-bearing constraints. ## Stack at a glance - pnpm 9 + Turborepo + TypeScript 5.7, Node >= 20. ESM only. - `apps/web` — Next.js 15 App Router, React 19, tRPC, NextAuth v5, Drizzle, TipTap + Yjs + Hocuspocus, Tailwind + Radix. - `apps/collab-server` — Hocuspocus (Yjs) over Postgres + Redis. - `apps/mcp-server` — Model Context Protocol server. - `packages/database` — Drizzle schema, client, migrations, markdown-backlog importer. - `packages/shared` — Cross-app types and zod schemas. No React, no Node-only APIs, no DB. - `packages/ai` — Vercel AI SDK wrappers and prompts. ## Hard rules - Use `pnpm` (never `npm`/`yarn`) and filter by workspace: `pnpm --filter @tasks/