From 83c731053303ab763c71de4b002515ef4b916676 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Sun, 2 Aug 2026 14:47:17 +0200 Subject: [PATCH] =?UTF-8?q?CLAUDE.md:=20Arbeitsanweisungen/Qualit=C3=A4ts-?= =?UTF-8?q?Checkliste=20f=C3=BCr=20dieses=20Projekt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auf Wunsch von Dogi dauerhaft festgehalten: Perfektionsanspruch, i18n- Pflicht für jeden Text (inkl. JS-gerenderte Strings), Validierungs- und Verifikations-Workflow vor/nach jedem Deploy, Chrome-Test-Sicherheits- regel, Nachaudit-Pflicht nach größeren Batches. Spiegelt die ausführlichere Fassung im Vault (DogFather Website.md). --- CLAUDE.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 CLAUDE.md 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.