3.9 KiB
AGENTS.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 addor./deploy.shbefore 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-filterand 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
- Full Name:
- 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.vueusing standardrefhooks. - Theming System:
- Driven by
data-themeattribute on:root. - Defined in
src/assets/styles/global.css. - Themes:
Classic(Light),Dark(Premium Charcoal/Gold),NAT(Boar Easter Egg).
- Driven by
- Localization:
- Centralized in
src/locales/i18n.ts. - Language:
de(Standard German) only.
- Centralized in
🚢 Deployment & DevOps
Deployment is automated via the ./deploy.sh script.
Workflow Details:
- Cloud Sync: Script ensures the
haumdauchernamespace exists in Kubernetes. - Config Extraction: Fetches Firebase credentials directly from Terraform outputs (
terraform output -json firebase_config). - Build Pipeline: Docker build passes Firebase credentials as
--build-arg(VITE_FIREBASE_*). - Distribution: Pushes the image to
registry.haumdaucher.de/haumdaucher-website:latest. - K8s Update: Applies
k8s-manifests.yamland triggers akubectl rollout restartto fetch the new image.
🤖 Sub-module Documentation
Certain independent sub-modules contain their own highly specific operational guidelines. Always consult them when working in those directories:
user_creation/AGENTS.md: Contains critical safeguards and architectural details for the declarative Google Apps Script that provisions Firebase users from Google Sheets.
🕹 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 modeinto 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.