# Gemini CLI: Project Context & Engineering Mandates ## Project Identity - **Name:** Dennis Konkol Portfolio (dk0.dev) - **Aesthetic:** "Liquid Editorial Bento" (Premium, minimalistisch, hoch-typografisch). - **Core Palette:** Creme (`#fdfcf8`), Stone (`#0c0a09`), Emerald (`#10b981`), Sky, Purple. ## Tech Stack - **Framework:** Next.js 15 (App Router), Tailwind CSS 3.4. - **CMS:** Directus (primär für Texte, Hobbies, Tech-Stack, Projekte). - **Database:** PostgreSQL (Prisma) als lokaler Cache/Mirror für Projekte. - **Animations:** Framer Motion (bevorzugt für alle Übergänge). - **i18n:** `next-intl` (Locales: `en`, `de`). ## Engineering Guidelines (Mandates) ### 1. UI Components - **Bento Grid:** Neue Features sollten immer in das bestehende Grid integriert werden. Keine schwebenden Overlays. - **Skeletons:** Jede asynchrone Komponente benötigt einen passenden `Skeleton` Ladezustand. - **Typography:** Headlines immer uppercase, tracking-tighter, mit Akzent-Punkt am Ende. ### 2. Implementation Rules - **TypeScript:** Keine `any`. Nutze bestehende Interfaces in `lib/directus.ts` oder `app/_ui/`. - **Resilience:** Alle API-Calls müssen Fehler abfangen und sinnvolle Fallbacks (oder Skeletons) anzeigen. - **Next.js Standalone:** Das Projekt nutzt den `standalone` Build-Mode. Docker-Builds müssen immer verifiziert werden. ### 3. Agent Instructions - **Codebase Investigator:** Nutze dieses Tool für Architektur-Fragen. - **Testing:** Führe `npm run test` nach UI-Änderungen aus. Achte auf JSDOM-Einschränkungen (Mocking von `window.matchMedia` und `IntersectionObserver`). - **CMS First:** Texte sollten nach Möglichkeit aus der `messages` Collection in Directus kommen, nicht hartcodiert werden. ## Current State - **Branch:** `dev` (pushed) - **Status:** Design Overhaul abgeschlossen, Build stabil, Docker verifiziert.