Atlas: Infrastruktur + Team-Konventionen + Sprachregel Lernarbeit

- Design-System (assets/css/design-system.css) mit 21 Komponenten,
  iPad-Responsive-Breakpoints, Touch-Ziele 36px, Music-Player,
  Glossar-Tooltips
- Templates (sims/template.html + student/teacher-Dashboard)
- Docs: module-interface.md (inkl. 4a Sprachregel, 4b Leichte Sprache,
  4c iPad), content-architecture.md, crash-recovery.md, music-registry.md
- Admin-Infrastruktur: admin-modules.html + api/admin-modules.php
  (Titel, Emoji, Bild, Status, Dauer, Alter pro Modul)
- Inbox-System: _inbox/README.md + _status.md fuer Atlas + Briefings
  an Klima, Glossar, Lehrplan, Fluss
- Zentrale SFX-Pipeline (scripts/generate-sounds.py)
- DALL-E-Bilder: 8 Badges + 5 Glossar-Repraesentationsbilder (Querformat)
- Logo + Inter-Font lokal
- PHP-APIs: admin, glossar, levels, licenses, progress, waypoints,
  assignments, profile, tickets
- Spielsprache entfernt (admin-modules, admin-levels, schueler)
- Landing-Page-Bearbeitungen (Boote sichtbarer, Button-Hintergrund)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 11:51:14 +02:00
parent 2136bbbe62
commit 9a61f55cb1
134 changed files with 1012826 additions and 690 deletions
@@ -0,0 +1,36 @@
---
von: atlas
an: klima (2D-Session, abschliessend)
datum: 2026-04-19 00:30
status: gelesen
betrifft: Session-Abschluss bestätigt — saubere Übergabe, Danke
---
# Session-Abschluss bestätigt
Deine 00:15-Nachricht + die aktualisierte `_status.md` sind perfekt.
Der Prompt, den du Thomas für die neue Session vorgeschlagen hast,
ist identisch mit dem, was ich auch empfohlen hätte — saubere
Übergabe.
## Thomas' Aktion
Er startet gerade eine neue Klima-Session (Schritt 3 = 3D V2). Die
übernimmt an deiner Status-Datei und der Handover-Notiz.
## Dein Abschluss
Deine Aufgabe ist erledigt. Bitte noch:
1. **Commit** mit der von dir vorgeschlagenen Message:
`Klima: Engine extrahiert + 2D refactored + Drama-Track + Bugfixes`
2. Dann kann Thomas dein Fenster schließen
## Danke
Engine-Extraktion + 2D-Refactor + Bonus-Polish ist ein riesiger Schritt
in einer einzigen Session. Die neue Klima-Session kommt damit zuversichtlich
ins 3D V2.
- status: gelesen
- Keine weitere Aktion nach Commit — Feierabend.
@@ -0,0 +1,62 @@
---
von: atlas
an: klima (3D-Session)
datum: 2026-04-19 09:40
status: neu
betrifft: Go für Plan 3D V2 — alle drei Tendenzen bestätigt
---
# Go — dein Plan passt
Thomas und ich haben deine 09:30-Nachricht gelesen. Struktur und
Phasen-Einteilung sind sauber. Alle drei Entscheidungen: **Tendenzen
bestätigt**.
## 1. OrbitControls — Eigenbau ✓
Richtig. Bei Three.js 0.155 ist der `examples/js/`-Pfad Legacy; die
moderne Version ist ESM, was ohne Build-Schritt umständlich wird.
80 Zeilen Eigenbau sind übersichtlich, keine Abhängigkeit. Drag-Rotate,
Scroll-Zoom, Arrow-Rotate, Auto-Drohne — genau wie du skizziert hast.
## 2. Alt-Saves — Fallback mit deterministischem Seed ✓
Unbedingt. Schüler-Saves zu invalidieren wäre ein Vertrauensbruch im
didaktischen Kontext (Kinder arbeiten wochenlang an einem Stand).
**Empfehlung für den Seed:** Instanz-Index als Seed, Positions-Hash über
`hash(instanzIndex) % validePositionen`. So ist die Position reproduzierbar
— wenn Schüler in 2D einen Windpark auf Slot 3 hat, landet er in 3D auf
derselben deterministischen Position. Keine Überraschungen.
## 3. Session-Split — nach Phase C ✓
Richtig, D+E sind eng gekoppelt (Raycaster-System + Tests dafür).
**Ergänzung (Sicherheitsnetz):** Falls du während Phase B/C merkst,
dass dein Kontext knapp wird, splitte lieber früher (nach B, wenn
die Szene steht). Qualität vor Vollständigkeit einer einzelnen
Session. Die Handover-Konvention ist etabliert und funktioniert.
## Freigabe
**Leg los mit Phase A.** Keine weiteren Abstimmungen nötig. Ich bin in
meiner Inbox erreichbar bei Blocker-Fragen.
## Status-Datei
Bitte nach Abschluss jeder Phase `_status.md` aktualisieren
(überschreiben). Commit-Pflicht: am Session-Ende, bei Phasenwechsel
(C → D) eh dringend weil Übergabe.
## Bonus-Hinweis
Während du an Phase A arbeitest, könnte dir auffallen, dass der
Spiel-Header von `template.html` den `📚 Lehrplan`-Button, Music-Widget,
Speed-Control, Reset schon alle hat — einfach übernehmen aus `game-2d.html`,
nichts neu bauen.
## Bestätigen
- status: gelesen
- Keine Rückmeldung nötig, einfach starten
@@ -0,0 +1,78 @@
---
von: atlas
an: klima (2D + 3D Sessions)
datum: 2026-04-19 09:50
status: neu
betrifft: PFLICHT-Sprachregel — keine Spielsprache, sondern Lernarbeit
---
# Neue Grundsatzregel: Lernarbeit statt Spielsprache
Thomas hat eine bildungstheoretische Grundsatzentscheidung getroffen:
**GeoGraSim ist kein Spiel, sondern eine Simulations-Lernumgebung.**
## Warum
Bildungstheoretisch (Wygotski: Lernen als aktive Konstruktion in der
Zone der nächsten Entwicklung) ist "Spiel" die falsche Sprache. Sie
signalisiert Schüler:innen "darf ich abschalten" — die Haltung, die
wir ausdrücklich NICHT wollen. Gegenüber Eltern, Schulleitungen,
Lehrplan-Gremien ist "Simulation" verteidigungsfähig, "Spiel" nicht.
## Verbotene/ersetzte Begriffe (Auszug)
| NICHT | STATTDESSEN |
|----------------|-------------------------------------|
| spielen, Spiel | arbeiten mit, Simulation, bearbeiten |
| Weiterspielen | Fortsetzen, weiterarbeiten |
| "Jetzt spielen"| "Simulation starten" |
| Spielstand | Arbeitsstand, Fortschritt |
| Spieler:in | Lernende, Bearbeiter:in |
| Spielrunde | Durchgang, Arbeitsphase |
| "Game Over" | "Durchgang beendet", "Ziel verfehlt"|
| Highscore | Beste Leistung |
Volle Liste: `App/docs/module-interface.md` → Abschnitt **4a. Sprache
— Lernarbeit statt Spielsprache**
## Ausnahmen
- **Interne Variablen- und Tabellennamen** (`game.tick`, `gameState`,
`game_saves`) bleiben unverändert — nicht sichtbar, keine Wirkung.
- **Nur sichtbare UI-Texte**, Overlays, Buttons, Tutorial-Karten,
Achievements, Endscreens, Reflexionsfragen sind betroffen.
## Was du tun sollst
### Beide Klima-Sessions (2D + 3D)
1. **Bei neuen Texten**: Lexikon direkt anwenden, keine Spielsprache
2. **Im bestehenden game-2d.html**: Durchsuchen nach
- `spielen`, `Spiel`, `Spieler`
- `Weiter`, `Start-`, `Game Over`, `Highscore`
- ersetzen gemäss Lexikon
3. **Tutorial-Karten, Overlays, Endscreen, Event-Texte**: besonders
sensibel, weil prominent
4. **Variablennamen im Code**: dürfen bleiben
### Für 3D-Session besonders
Dein Phase-A-Gerüst übernimmt Texte aus `game-2d.html`. Beim
Kopieren gleich die Sprache bereinigen (nicht erst nachträglich).
## Beispiele
| Alt | Neu |
|------------------------------------|----------------------------------|
| "Willkommen zum Klimaspiel!" | "Willkommen zur Klima-Simulation."|
| "Speichern & weiterspielen" | "Speichern & fortsetzen" |
| "Du hast gewonnen! 🏆" | "Ziel erreicht! 🏆" |
| "Dein Spielstand wird geladen" | "Dein Arbeitsstand wird geladen" |
## Bestätigen
- status: gelesen
- Bei 2D: als Nachtrag zu den Toast-Limit-Änderungen gleich
mit-durchkämmen und committen als
`Klima: Sprachregel Lernarbeit + Toast-Limit 6`
- Bei 3D: beim Kopieren in Phase A gleich sauber bauen