- Fix character portrait crops and version assets to portrait_v2, ensuring correct identities (resolving Nat/Verena mismatch) - Update Schankraum scene image and configure Nginx cache-control to prevent stale asset caching - Make secret beer tap completely invisible in tavern until clicked - Reposition room hotspots in Act III to eliminate overlapping click targets - Add exit button [✕] to Bavarian Gstanzl duel minigame - Implement localStorage persistence in gameStore to maintain progress across page reloads - Enable clean game state and storage reset when clicking "Nochmal spielen" - Expand automated playtest script to cover Nat dialogue, duel exit, reload persistence, and game restart
4.8 KiB
4.8 KiB
AGENTS.md
Note
Infrapuzzle is the monorepo for my personal infrastructure, encompassing Kubernetes cluster provisioning, workload deployment, DNS management, and IoT monitoring.
Repository Structure & Documentation
This repository is divided into distinct domains, each with its own AGENTS.md or specialized documentation.
1. Bootstrap (bootstrap/)
- Purpose: Provisioning the single-node Kubernetes cluster (Haumdaucher).
- Tool: Kubespray (Ansible).
- Key File:
init.sh(Source of Truth for versioning). - Read: bootstrap/AGENTS.md
2. Kubernetes Workloads (k8s/)
- Purpose: Deploying applications and services to the cluster.
- Method: GitOps-style directory structure (Namespace = Folder).
- Constraints: Enforces
ingress-nginx,cert-manager(Let's Encrypt), andgit-cryptfor secrets. - OpenClaw: For OpenClaw AI agent deployment and troubleshooting, see k8s/openclaw/AGENTS.md and k8s/openclaw/TROUBLESHOOTING.md.
- Read: k8s/AGENTS.md
3. Terraform (terraform/)
- Purpose: Infrastructure as Code for external resources, primarily DNS.
- Provider: OVH (
ovh/ovh). - Scope:
- DNS Zones:
haumdaucher.de,moritzgraf.de,ameliegraf.de, and others. - Mail Config: Google Workspace MX/SPF/DKIM records.
- Cluster IP: Points domains to the Haumdaucher node IP (
136.243.23.215).
- DNS Zones:
- Usage:
cd terraform terraform init terraform apply
4. Monitoring (monitoring/)
- Purpose: IoT and physical device monitoring, separate from K8s metrics.
- Tool: ESPHome.
- Devices: Temperature sensors, plant monitors (Xiaomi/BLE), ESP32 bridges.
- Usage:
cd monitoring # Flash or update a device esphome run config/<device>.secret.yml - Network: Devices typically operate on static IPs in the
192.168.x.xrange.
5. Knowledge Wiki & OpenClaw Tasks (knowledge-wiki/)
- Purpose: Shared personal knowledge wiki and task dispatch between OpenClaw (mobile/Telegram concierge) and Antigravity (local pair programming agent).
- Location: Git submodule
knowledge-wiki/at root ofinfrapuzzle(Git repo:https://git.moritzgraf.de/moritz/knowledge-wiki.git, branchmain). - Queue File:
knowledge-wiki/tasks/antigravity.md. - Workflow for Antigravity:
- When the user asks to check tasks or pick up work from OpenClaw:
- Pull latest:
git submodule update --remote knowledge-wiki(orgit -C knowledge-wiki pull --rebase origin main) - Read
knowledge-wiki/tasks/antigravity.mdto see pending items. - Implement the chosen task in the appropriate repository files.
- Move the task to
## ✅ Completed Taskswith completion details and commit info. - Push back:
git -C knowledge-wiki commit -am "chore(tasks): complete <task>" && git -C knowledge-wiki push origin main.
- Pull latest:
- When Antigravity needs knowledge about family, home, servers, or setup:
- When the user asks to check tasks or pick up work from OpenClaw:
6. Architecture Decision Records (docs/adr/)
- Purpose: Formal record of architectural decisions, technical trade-offs, and design standards across the monorepo.
- Format: MADR (Markdown Architectural Decision Records).
- Consulting ADRs: AI agents MUST consult
docs/adr/before designing or altering system architecture, agent topologies, or tool integration patterns. - Key Records:
7. Saschas Kronkorken Kreuzzug (projects/sasch40/)
- Purpose: Mobile-first 2.5D retro birthday adventure game for King Sascha's 40th jubilee (
https://sasch40.haumdaucher.de). - Key Rules: Prequel landing screen for QR codes, dynamic GameBoy arcade vs RPG layouts, real-photo character portraits, pure Web Audio synthesizer, competitive certificate scoring.
- Read: projects/sasch40/AGENTS.md
Global Constraints
- Secrets:
git-cryptis used extensively. Ensure you have the unlock key before editing*.secretfiles. - Identity:
- Cluster:
haumdaucher - Primary Domain:
haumdaucher.de - User Identity:
moritzgraf.de
- Cluster: