refactor to AGENTS.md
This commit is contained in:
parent
a16ebd641e
commit
84edb1d074
60
GEMINI.md
60
GEMINI.md
|
|
@ -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`.
|
||||
Loading…
Reference in New Issue