From 84edb1d0740a8a02be5398d02d81bbc651065c27 Mon Sep 17 00:00:00 2001 From: Moritz Graf Date: Sun, 26 Apr 2026 18:39:26 +0200 Subject: [PATCH] refactor to AGENTS.md --- GEMINI.md | 60 ------------------------------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 GEMINI.md diff --git a/GEMINI.md b/GEMINI.md deleted file mode 100644 index 2a310c6..0000000 --- a/GEMINI.md +++ /dev/null @@ -1,60 +0,0 @@ -# GEMINI.md - Haumdaucher Project Handbook - -## 🚨 Rules -**1. Infrastructure as Code is rule #1.** Manual creation of resources (e.g., via `gcloud` or Console) is forbidden. The use of Terraform/Tofu is mandatory. - -**2. Agental Protocol (Git & Deployment):** -- Never perform `git add` or `./deploy.sh` before the user has formally accepted the **Walkthrough** artifact. -- Once accepted, the agent is responsible for committing changes and triggering the deployment script. - -This document serves as the "Source of Truth" for the Haumdaucher website. It outlines the design principles, technical architecture, and specialized features to ensure consistent future development. - -## 🦢 Project Essence -**Haumdaucher** is a community project from Regensburg, Germany. The website represents the "HAUMDAUCHER Wurst und Spezialitäten n.e.V." (nicht eingetragener Verein). It is designed to be humorous, culturally rich, and technically "surprising." - -## 🎨 Design Principles -- **Vibrant Aesthetics**: Each theme must feel like a completely different app. -- **Glassmorphism**: Use `backdrop-filter` and semi-transparent backgrounds for a premium feel. -- **Micro-interactions**: Subtle entrance animations and consistent hover states. -- **Accessibility**: Mobile-first design with safe-area support for PWA usage on iOS/Android. - -## ⚖️ Legal & Compliance (n.e.V.) -Maintaining the legal section is critical for German compliance (§ 5 DDG). -- **Entity Type**: The club is a **nicht eingetragener Verein (n.e.V.)**. Do NOT add Registry data (Registergericht/Nummer). -- **Mandatory Impressum Fields**: - - Full Name: `HAUMDAUCHER Wurst und Spezialitäten n.e.V.` - - Vertretungsberechtigter: `Moritz Graf (1. Vorstand)` - - Ladungsfähige Anschrift: `Grabengasse 7, 93059 Regensburg` - - Kontakt: `Telefon: 094183065717, E-Mail: info@haumdaucher.de` -- **Privacy (DSGVO)**: The website uses **Google Firebase Authentication**. The privacy policy must disclose the data processing by Google Ireland Limited and the US data transfer details. - -## 🛠 Technical Specifications -- **Framework**: Vue 3 (Composition API) + Vite + TypeScript. -- **State Management**: Centralized in `App.vue` using standard `ref` hooks. -- **Theming System**: - - Driven by `data-theme` attribute on `:root`. - - Defined in `src/assets/styles/global.css`. - - Themes: `Classic` (Light), `Dark` (Premium Charcoal/Gold), `NAT` (Boar Easter Egg). -- **Localization**: - - Centralized in `src/locales/i18n.ts`. - - Language: `de` (Standard German) only. - -## 🚢 Deployment & DevOps -Deployment is automated via the `./deploy.sh` script. - -**Workflow Details:** -1. **Cloud Sync**: Script ensures the `haumdaucher` namespace exists in Kubernetes. -2. **Config Extraction**: Fetches Firebase credentials directly from Terraform outputs (`terraform output -json firebase_config`). -3. **Build Pipeline**: Docker build passes Firebase credentials as `--build-arg` (VITE_FIREBASE_*). -4. **Distribution**: Pushes the image to `registry.haumdaucher.de/haumdaucher-website:latest`. -5. **K8s Update**: Applies `k8s-manifests.yaml` and triggers a `kubectl rollout restart` to fetch the new image. - -## 🕹 The Haumdaucher Game -- **Engine**: HTML5 Canvas rendering. Game style changes dynamically based on the site's active theme. -- **Unlocking NAT Mode**: - - **Natural**: Reach Level 10. - - **Backdoor**: Single 1x1 pixel in the bottom-left corner. Type `nat mode` into the prompt. - -## 📝 Ongoing Maintenance -- **Assets**: Static images should be placed in `public/images/`. -- **Style Overrides**: Mobile-first approach is mandatory. Always test with `max-width: 375px`.