style: replace em dashes with hyphens throughout codebase

Replace all — with - in all source files (JS, CSS, HTML, JSON,
Markdown) for consistency and readability.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Ulas
2026-04-03 17:04:39 +02:00
parent 6046cac7a8
commit 1122bd269b
56 changed files with 256 additions and 256 deletions
+12 -12
View File
@@ -1,4 +1,4 @@
# CLAUDE.md Audit Oikos
# CLAUDE.md Audit - Oikos
**Datum:** 2026-04-02
**Aktuelle Länge:** 109 Zeilen (exkl. Leerzeilen)
@@ -17,7 +17,7 @@
**Fehlend:**
- Kein expliziter Hard-Constraints-Block. "No SPA framework" ist in einen Fließtext-Absatz eingebettet statt als nicht-verhandelbare Regel markiert.
- `public/utils/ux.js` wird von 7 Seiten importiert kein Wort davon.
- `public/utils/ux.js` wird von 7 Seiten importiert - kein Wort davon.
- `public/i18n.js` wird als System erwähnt, aber nicht als kanonische Datei referenziert.
- `offline.html` fehlt im Architecture-Tree.
@@ -27,7 +27,7 @@
**Redundanzen mit CONTRIBUTING.md:**
- Project Structure: fast identischer Tree in beiden Dateien
- Code Conventions: ES modules, Semicolons, Header comments, try/catch alles doppelt
- Code Conventions: ES modules, Semicolons, Header comments, try/catch - alles doppelt
- Testing: identische Beschreibung in beiden
- Changelog: gleiche Anweisung in beiden
- Migration append-only: in beiden Dateien
@@ -37,9 +37,9 @@
### 1.3 Signalqualität
**Probleme:**
- "No SPA framework" ist deskriptiv formuliert statt imperativ ein LLM könnte es als Kontextinfo statt als harte Regel lesen.
- "No SPA framework" ist deskriptiv formuliert statt imperativ - ein LLM könnte es als Kontextinfo statt als harte Regel lesen.
- Security Model ist eine Faktenbeschreibung. Kein Satz sagt "tu X" oder "tu niemals Y".
- Backend-Dependency-Liste ist reines Inventar Claude kann `package.json` lesen.
- Backend-Dependency-Liste ist reines Inventar - Claude kann `package.json` lesen.
- Deployment-Dockerfile-Snippet: rein informativ, kein Handlungsbezug.
- `node:20-slim` im CLAUDE.md-Deployment-Block, aber Dockerfile verwendet tatsächlich `node:22-slim`**falsche Information**.
@@ -47,7 +47,7 @@
| Erwähnt in CLAUDE.md | Tatsächlicher Zustand | Problem |
|---|---|---|
| `public/assets/` (apple-touch-icon, favicons) | Verzeichnis existiert nicht Icons in `public/icons/` | **Falscher Pfad** |
| `public/assets/` (apple-touch-icon, favicons) | Verzeichnis existiert nicht - Icons in `public/icons/` | **Falscher Pfad** |
| `scripts/generate-icons.js` | Existiert ✅, aber `scripts/seed-demo.js` fehlt im Tree | Unvollständig |
| Dockerfile `node:20-slim` | Dockerfile nutzt `node:22-slim` | **Falsche Version** |
| Components: `modal.js`, `oikos-install-prompt.js` | Auch `oikos-locale-picker.js` existiert | Unvollständig |
@@ -64,7 +64,7 @@
|-----------|--------|------------|
| Nur verhaltenssteuernd, keine Spec-Duplikation | ⚠️ | Security Model, Deployment, Dependency-Liste sind rein informativ |
| Harte Constraints klar abgegrenzt | ❌ | Kein separater Block; "no framework" in Fließtext versteckt |
| Referenztabelle vollständig & aktuell | ❌ | Keine Referenztabelle vorhanden nur ein Einzeiler zu SPEC.md |
| Referenztabelle vollständig & aktuell | ❌ | Keine Referenztabelle vorhanden - nur ein Einzeiler zu SPEC.md |
| Pfade/Module korrekt | ❌ | `public/assets/` existiert nicht, Dockerfile-Version falsch |
| Keine Redundanz mit CONTRIBUTING.md | ❌ | ~40% Überlappung (Structure, Conventions, Testing, Changelog) |
| Keine Redundanz mit docs/ | ✅ | SPEC.md wird referenziert, nicht dupliziert |
@@ -96,12 +96,12 @@ Siehe `CLAUDE.md.proposed` im Repo-Root.
| Was | Warum verhaltensrelevant |
|-----|--------------------------|
| Expliziter Hard Constraints Block | Claude muss sofort wissen, was nicht verhandelbar ist nicht erst aus Fließtext erschließen. |
| Expliziter Hard Constraints Block | Claude muss sofort wissen, was nicht verhandelbar ist - nicht erst aus Fließtext erschließen. |
| `public/utils/ux.js` als kanonische Utility | Wird von 7 Pages importiert. Ohne dieses Wissen würde Claude Utility-Funktionen duplizieren. |
| `public/i18n.js` + `public/locales/` in Structure | Kanonische Orte für i18n Claude muss wissen, wo Locale-Keys definiert werden. |
| `public/i18n.js` + `public/locales/` in Structure | Kanonische Orte für i18n - Claude muss wissen, wo Locale-Keys definiert werden. |
| `offline.html` im Tree | Existiert, wird vom Service Worker referenziert, fehlte komplett. |
| Reference Documents Tabelle | Claude muss wissen, wo welche kanonische Wahrheit liegt, statt zu raten. |
| `oikos-locale-picker.js` in Components | Existierende Komponente fehlte Claude könnte sie unwissentlich neu bauen. |
| `oikos-locale-picker.js` in Components | Existierende Komponente fehlte - Claude könnte sie unwissentlich neu bauen. |
### Umformuliert
@@ -115,6 +115,6 @@ Siehe `CLAUDE.md.proposed` im Repo-Root.
| Was | Von | Nach | Grund |
|-----|-----|------|-------|
| Security Model Details | CLAUDE.md | Bereits in Code (middleware, auth.js) | Kein eigenes Dokument nötig Code ist die Wahrheit |
| Security Model Details | CLAUDE.md | Bereits in Code (middleware, auth.js) | Kein eigenes Dokument nötig - Code ist die Wahrheit |
| Deployment env vars, Dockerfile | CLAUDE.md | README.md (bereits dort vorhanden) | Ops-Information, nicht Entwicklungsverhalten |
| Detaillierter Project Structure Tree | CLAUDE.md | CONTRIBUTING.md (bereits dort vorhanden) | Duplikation eliminieren CONTRIBUTING.md hat den vollständigen Tree |
| Detaillierter Project Structure Tree | CLAUDE.md | CONTRIBUTING.md (bereits dort vorhanden) | Duplikation eliminieren - CONTRIBUTING.md hat den vollständigen Tree |