# CapaKraken ## Ziel CapaKraken ist ein Ressourcenplanungs- und Projektbesetzungs-Tool fuer eine 3D-Produktionsumgebung. Der aktuelle Produktkern umfasst Timeline-Planung, Kapazitaets- und Budgetsicht, Rollenmanagement, Blueprint-basierte dynamische Felder, Skill-Matrix-Workflows und einen AI-unterstuetzten Staffing-/Profilbereich. ## Tech Stack - TypeScript mit strikten Compiler-Einstellungen - Next.js 15 App Router - tRPC v11 - PostgreSQL via Prisma - Auth.js v5 mit Argon2-basierter Passwortlogik - pnpm Workspaces + Turborepo - Tailwind CSS v4 - SSE/Redis-basierte Realtime-Infrastruktur - Vitest und Playwright ## Monorepo-Struktur ```text capakraken/ ├── apps/web ├── packages/shared ├── packages/db ├── packages/engine ├── packages/staffing ├── packages/application ├── packages/api └── packages/ui ``` ## Engineering-Regeln - Geld immer als Integer-Cents speichern - Prisma-Enums und JSONB-Felder an Paketgrenzen explizit casten - Nullable FKs defensiv behandeln - Nach Prisma-Schema-Aenderungen Client regenerieren und den Dev-Server sauber neu starten - Keine spekulativen Abstraktionen ## Quality Gates - `pnpm test:unit` - `pnpm --filter @capakraken/web exec tsc --noEmit` - `pnpm lint` ## Dokumente - Einstiegspunkt: [docs/README.md](docs/README.md) - Aktiver Backlog: [docs/product-roadmap.md](docs/product-roadmap.md) - Estimating-Design: [docs/estimating-extension-design.md](docs/estimating-extension-design.md) - Historische Entscheidungen: [LEARNINGS.md](LEARNINGS.md) ## Routing-Regeln Fuer Agenten **Parallel dispatch** nur wenn alle Bedingungen gelten: - 3+ unabhaengige Aufgaben oder Domaenen - kein geteilter State - klare Dateigrenzen ohne Ueberschneidung **Sequential dispatch** sobald eine Bedingung gilt: - Tasks haben Abhaengigkeiten - gemeinsame Dateien erzeugen Merge-Konflikt-Risiko - Scope ist noch unklar **Background dispatch** fuer: - Recherche oder Analyse ohne Datei-Aenderungen - Aufgaben, deren Ergebnis den aktiven Implementierungsfluss nicht blockiert ## Learnings Wichtige Entscheidungen und Problemloesungen werden zentral in [LEARNINGS.md](LEARNINGS.md) festgehalten.