diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..47a3c32
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,65 @@
+# DOGFATHER UNIVERSE — Arbeitsanweisungen
+
+Lies zuerst die ausführliche Projekt-Doku im Vault: `DogFather Website.md` und
+`DogFather Website - Offene Punkte.md` (falls von dort aus zugreifbar). Dieses File ist die
+kompakte, technische Checkliste für direkte Arbeit in diesem Ordner.
+
+## Perfektions-Anspruch (ausdrücklicher Wunsch, 02.08.2026)
+
+Nicht nur das explizit Genannte umsetzen, sondern mitdenken und proaktiv vervollständigen —
+auch das, was der Nutzer vergisst zu erwähnen, aber offensichtlich zur Aufgabe gehört.
+Kontinuierlich verbessern, nicht nur einmalig abhaken. Bei jedem "Tagescheck" auch die eigene
+zuletzt geleistete Arbeit fachlich re-auditieren, nicht nur Uptime prüfen.
+
+## Vor jeder neuen Aufgabe kurz durchgehen
+
+1. **i18n ist Pflicht bei jedem sichtbaren Text**: alle 5 Sprachen sofort mitliefern — de,
+ de-CH (ECHTER Schweizerdeutscher Dialekt, nicht nur ß→ss), en, fr, pt. Gilt auch für Texte,
+ die nur per JS gesetzt werden (`window.dogiUebersetzen()` / `window.dogiFeld()` in
+ `assets/js/main.js` nutzen), nicht nur `data-i18n`-Attribute.
+ - **Bekannter Bug-Klassiker**: `
` in Karten-Grids ohne `data-i18n` (nur `
` darunter
+ übersetzt) → gemischtsprachige Anzeige. Vor Abschluss IMMER:
+ `grep -noP ']*>[^<]*' .html | grep -v data-i18n` — jeden Treffer
+ bewusst freigeben (Eigenname/dynamisch `${...}`) oder fixen.
+2. **Validieren vor jedem Deploy**: `node --check` je geänderter `.js`, plus Key/Sprachen-Check:
+ ```bash
+ node -e "
+ const fs=require('fs');
+ const html=fs.readFileSync('.html','utf8');
+ const keysInHtml=[...new Set([...html.matchAll(/data-i18n=\"([^\"]+)\"/g)].map(m=>m[1]))];
+ global.window = {};
+ eval(fs.readFileSync('assets/js/i18n-.js','utf8'));
+ const dict = window.I18N_PAGE;
+ let missingLang=[];
+ for(const k of keysInHtml){ for(const lang of ['de','de-CH','en','fr','pt']){ if(!dict[k] || !dict[k][lang]) missingLang.push(k+':'+lang); } }
+ console.log('Keys HTML:', keysInHtml.length, 'Keys dict:', Object.keys(dict).length, 'Fehlende Sprachen:', missingLang);
+ "
+ ```
+ Muss `Fehlende Sprachen: []` zeigen. Bei HTML-Edits zusätzlich Tag-Balance prüfen (öffnende
+ == schließende `div`/`section`/`a`/`p`/`h1-h3`).
+3. **Nach jedem Deploy live verifizieren** (nicht nur der "Success"-Meldung von `wrangler`
+ glauben): headless Chrome via CDP starten, Sprache umschalten, tatsächlichen Text auslesen.
+4. **Chrome-Testprozesse NIE mit `taskkill /F /IM chrome.exe`** — killt alle echten Chrome-
+ Fenster des Nutzers. Immer nur per exakter PID oder `--user-data-dir`-Profilname gezielt
+ beenden (z.B. `Get-CimInstance Win32_Process -Filter "Name='chrome.exe'" | Where-Object {
+ $_.CommandLine -match '' } | Stop-Process`).
+5. Wenn der Nutzer "Screen"/"screen" sagt, ist immer "Screenshot" gemeint.
+6. Nach Verifikation aufräumen: temporäre Dateien/Chrome-Profile entfernen.
+7. Nach größeren Batches (viele Seiten parallel via Subagenten): eigenständigen Nachaudit-Sweep
+ über das GESAMTE Projekt fahren, nicht nur die zuletzt bearbeiteten Dateien — Fehler stecken
+ erfahrungsgemäß auch in älteren, scheinbar fertigen Seiten (Muster/Konvention entstand erst
+ später).
+8. Commit-Nachrichten immer auf Deutsch, präzise, mit Begründung ("warum", nicht nur "was").
+
+## Projekt-Fakten (Kurzfassung)
+
+- Statisches HTML/CSS/Vanilla-JS, kein Build-Tool, kein Bundler.
+- Deploy: `npx wrangler deploy` aus diesem Ordner (Cloudflare Workers Static Assets).
+- i18n-Engine in `assets/js/main.js`: `I18N_CORE` (sitewide), `window.I18N_PAGE` (pro Seite aus
+ `assets/js/i18n-.js`), `t()`/`window.dogiUebersetzen()`/`window.dogiFeld()`.
+- Personendaten (Scouts/Modis/Creator) in `assets/js/data-*.js` — role/bio/bioHtml/intro/quote
+ sind mehrsprachige Objekte `{ de, "de-CH", en, fr, pt }`, aufgelöst über `window.dogiFeld()`.
+- Nur Persona-Namen öffentlich (Dogfather/Dogi) — keine echten bürgerlichen Daten ohne
+ ausdrückliche Freigabe.
+- Fotos/Bilder nur nach expliziter Freigabe verwenden, nicht eigenständig in privaten Ordnern
+ suchen.