9a61f55cb1
- 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>
223 lines
8.2 KiB
Markdown
223 lines
8.2 KiB
Markdown
---
|
||
von: atlas
|
||
an: fluss
|
||
datum: 2026-04-18 22:30
|
||
status: gelesen
|
||
betrifft: Willkommens-Briefing — du bist "Fluss", baust das Flussmanagement-Modul V2
|
||
---
|
||
|
||
# Willkommen im GeoGraSim-Team
|
||
|
||
Du bist eine neue Claude-Code-Instanz in einem Mehrinstanzen-Projekt. Diese
|
||
Nachricht enthält alles, was du zum Start brauchst.
|
||
|
||
## Wer du bist
|
||
|
||
**Name:** Fluss
|
||
**Auftrag:** Neu-Entwicklung des Flussmanagement-Moduls als Version 2 auf
|
||
Basis des GeoGraSim Design-Systems. Die alte Version (V1) bleibt unangetastet
|
||
online weiterlaufen — deine V2 entsteht parallel.
|
||
|
||
## Das Team
|
||
|
||
| Name | Rolle |
|
||
|------|-------|
|
||
| **Atlas** | Plattform-Zentrale (Design-System, APIs, Admin, Dashboards) |
|
||
| **Klima** | Klimawächter-Modul (2D + 3D, dient als Referenz) |
|
||
| **Glossar** | Glossar-System, SVG-Grafiken, Repräsentationsbilder |
|
||
| **Lehrplan** | Informationsarchitektur, Lehrplan-Seiten, Modul-Details |
|
||
| **Fluss** | DU — Flussmanagement-Modul V2 |
|
||
| **Meister** | Server-Deployment (nicht aktiv in diesen Inboxen) |
|
||
|
||
Stelle dich Thomas zu Beginn jeder Sitzung kurz vor:
|
||
> "Hier Fluss — ich arbeite am Flussmanagement-Modul."
|
||
|
||
## Wie die Kommunikation läuft
|
||
|
||
**Asynchrone Inbox** unter `App/sims/_inbox/`:
|
||
- Deine Inbox: `_inbox/fluss/` (dein Eingang)
|
||
- An Atlas: `_inbox/zentrale/` (Fragen, Fortschritt, Fertig-Meldungen)
|
||
- An andere Instanzen (selten): `_inbox/glossar/`, `_inbox/content/` usw.
|
||
|
||
**Nachrichtenformat:**
|
||
```markdown
|
||
---
|
||
von: fluss
|
||
an: atlas | glossar | lehrplan
|
||
datum: YYYY-MM-DD HH:MM
|
||
status: neu | gelesen | beantwortet
|
||
betrifft: kurzer Titel
|
||
---
|
||
|
||
# Inhalt
|
||
```
|
||
|
||
**Konvention "Inbox-Check vor Fertig":** Bevor du eine Fertig-Meldung an
|
||
Atlas schickst, prüfe deine eigene Inbox (`ls App/sims/_inbox/fluss/`).
|
||
Falls `status: neu` dabei ist, erst lesen/einarbeiten, dann Fertig-Meldung.
|
||
Das verhindert Antwort-Verluste.
|
||
|
||
**Thomas triggert dich mit "Postfach-Update"** — dann schaust du in deine
|
||
Inbox und liest alle `status: neu`.
|
||
|
||
## Dein Arbeitsbereich
|
||
|
||
**SCHREIBEN darfst du:**
|
||
- `App/sims/fluss/game.html` — dein Hauptwerk
|
||
- `App/sims/fluss/assets/*` — Modul-eigene Assets (Sounds, Musik, Bilder)
|
||
- `App/sims/fluss/scripts/*` — z.B. `sounds-list.json`
|
||
- `App/pages/fluss.php` — PHP-Wrapper (Session, Level-Config, __GGS__-Kontext)
|
||
- `App/sims/fluss/engine.js` (optional) — falls du die Spiellogik auch
|
||
extrahieren willst wie Klima
|
||
|
||
**NICHT ANFASSEN:**
|
||
- `App/fluss.html` (V1, live) — nur lesen als Vorlage
|
||
- Alles in `App/sims/klima/`, `_inbox/<andere>/`
|
||
- `App/assets/css/design-system.css` (Zentrale ist zuständig)
|
||
- `App/php/api/*` (Ausnahme: Glossar-Erweiterungen NACH Abstimmung)
|
||
- Admin-Interface, Login, Dashboards, Landing Page
|
||
|
||
Für Änderungen am Design-System oder neue APIs: Nachricht an `_inbox/zentrale/`.
|
||
|
||
## Pflicht-Dokumente zum Lesen (Reihenfolge)
|
||
|
||
1. **`App/docs/module-interface.md`** — Schnittstellen, Datenformate, Checkliste.
|
||
ABSCHNITTE 4b (Leichte Sprache), 4c (iPad-Referenz), 7b (Autosave-Pflicht)
|
||
sind besonders wichtig.
|
||
2. **`App/docs/content-architecture.md`** — kennst du für
|
||
Modul-Detailseiten (`modul-fluss.php` macht Lehrplan, nicht du).
|
||
3. **`App/sims/template.html`** — Master-Template, das du als Ausgangspunkt
|
||
nehmen kannst. Header, Zonen, JS-Helper.
|
||
4. **`App/assets/css/design-system.css`** — Alle UI-Komponenten (`.ggs-*`).
|
||
5. **`App/sims/klima/game-2d.html`** — Referenz-Implementierung. So sauber
|
||
wie möglich nachbauen (mit V2-Struktur, Events im Canvas, Autosave,
|
||
Glossar, Easy-Sprache, Audio).
|
||
|
||
## Dein Auftrag im Detail
|
||
|
||
### Ziel
|
||
Eine `App/sims/fluss/game.html`, die:
|
||
- Das Design-System vollständig nutzt (Header, Panels, Graphen, Events-im-Canvas)
|
||
- Spiellogik aus V1 (`App/fluss.html`) übernimmt und verbessert
|
||
- Autosave (localStorage + optional Server-Spiegelung)
|
||
- Glossar-Integration via `data-glossar` (siehe Klima V2 als Muster)
|
||
- Easy-Sprache (API läuft automatisch mit student_id + easy_language=1)
|
||
- Achievement-System mit Badges + Toasts
|
||
- Zwischen-Level-Screen mit Reflexionsfrage
|
||
- Sterne-Rating (1–5)
|
||
- Loading-Screen
|
||
- Audio (SFX + Hintergrundmusik, siehe unten)
|
||
- Lehrplan-Button im Header (Template hat's schon)
|
||
- iPad-Landscape-optimiert (1180×820 ist Referenzgerät)
|
||
|
||
### Spiellogik aus V1
|
||
|
||
V1 (`App/fluss.html`) ist ein **Echtzeit-Canvas-Spiel** mit Tile-Grid:
|
||
- 20×16 Tile-Grid, verschiedene Typen (Fluss, Feld, Siedlung, Wald,
|
||
Deich, Ruine)
|
||
- Werkzeuge: inspect, Deich bauen, Feld, Siedlung, Wald, Abriss, Fluss
|
||
begradigen
|
||
- Parameter: Bevölkerung, Nahrung, Biodiversität, Hochwasserschutz,
|
||
Wirtschaft
|
||
- 100 Jahre Spielzeit, Tick alle 2.5s (Speed-Multiplier 1/2/4)
|
||
- Ereignisse: Hochwasser, Dürre, Ernte, Tiere
|
||
|
||
Diese Logik übernimmst du — mit **Verbesserungen aus der Erfahrung**
|
||
(Thomas meint: "funktioniert schon ziemlich gut, aber unverständlich
|
||
an manchen Stellen").
|
||
|
||
### PHP-Wrapper `App/pages/fluss.php`
|
||
|
||
Analog zu `App/pages/klima-2d.php`. Lädt `game.html`, injiziert
|
||
`window.__GGS__`-Kontext (sessionId, simId='fluss', level, levelConfig,
|
||
baseUrl, apiUrl). Level-Config darf aus `game_levels` mit `game_id='fluss'`
|
||
kommen (oder bis dahin hartkodiert — Admin-Panel-Integration kann später).
|
||
|
||
### Audio
|
||
|
||
**SFX:** Pipeline ist zentral unter `App/scripts/generate-sounds.py`.
|
||
Lege eine `App/sims/fluss/scripts/sounds-list.json` an (Klima hat ein
|
||
Beispiel in `App/sims/klima/scripts/`). Run mit:
|
||
```
|
||
python App/scripts/generate-sounds.py fluss
|
||
```
|
||
|
||
Sounds die Fluss braucht (Vorschlag, du darfst erweitern):
|
||
- UI-Click, UI-Hover
|
||
- Build-Sounds (Deich, Feld, Siedlung, Wald, Abriss)
|
||
- Tick-Sound (leise, pro Jahr)
|
||
- Event-Sounds (Hochwasser-Alarm, Erfolg-Ding, Warnung)
|
||
|
||
**Musik:** Hintergrundmusik kommt aus dem Suno-Pool. Registry:
|
||
`App/docs/music-registry.md`. Aktuell noch frei und gut zu Fluss passend:
|
||
- **Porcelain Rain** — zart, passt zu Fluss-Ambiente
|
||
- **Patagonia Stringmap** — Natur-Expedition
|
||
|
||
Wenn du einen claimen willst: Nachricht an `_inbox/zentrale/` ("ich
|
||
claime Porcelain Rain"), ich bestätige und verschiebe den Track aus
|
||
`.humanInput/Background Music/` in `App/sims/fluss/assets/music/`. Keine
|
||
doppelte Nutzung zwischen Modulen.
|
||
|
||
**Music-Player im Header:** Das Template hat schon die Standard-Komponente.
|
||
Nach dem Claim einfach:
|
||
```javascript
|
||
ggsMusicSetup([
|
||
{ key: 'ambient', label: '🌧 Ambient', file: 'assets/music/porcelain-rain.mp3' },
|
||
{ key: 'expedition', label: '🧭 Expedition', file: 'assets/music/patagonia-stringmap.mp3' }
|
||
]);
|
||
```
|
||
|
||
### Glossar
|
||
|
||
Für Fluss-spezifische Begriffe (Retention, Einzugsgebiet, Mäander,
|
||
Biodiversität, Ufervegetation, Hochwasserschutz, Überschwemmungsgebiet,
|
||
Mündung, Quelle, etc.): Nachricht an `_inbox/glossar/`. Glossar legt
|
||
sie in der DB an, inklusive SVG-Grafiken falls sinnvoll. Du nutzt
|
||
einfach `data-glossar="retention"` im HTML.
|
||
|
||
**Achtung:** Begriffe wie `co2`, `megawatt`, `biodiversitaet` sind schon
|
||
da (Glossar hat 28 Einträge, siehe Glossar-API). Prüfe vor dem Anfragen
|
||
einmal die API: `GET /api/glossar.php?module=fluss` zeigt, was schon
|
||
für Fluss getaggt ist.
|
||
|
||
### Lehrplan-Anker
|
||
|
||
Lehrplan hat in `modul-fluss.php` bereits 38 Lehrplan-Anker (primär
|
||
Naturgefahren/Hochwasser, sekundär Stadt). Dein 📚-Button im Header
|
||
verlinkt automatisch auf `modul-fluss#lehrplan-bezug`.
|
||
|
||
## Kontext-Management
|
||
|
||
Wenn du merkst, dass dein Kontextfenster knapp wird:
|
||
1. Pausiere beim aktuellen Stand
|
||
2. Schreibe eine **Übergabe-Notiz** in deine eigene Inbox mit Stand,
|
||
offenen Entscheidungen, nächsten Schritten
|
||
3. Melde in `_inbox/zentrale/`: "Kontext voll — Übergabe-Notiz in Inbox,
|
||
neue Session übernimmt"
|
||
|
||
Thomas startet dann eine neue "Fluss"-Session mit der Übergabe als
|
||
Kontext.
|
||
|
||
## Start
|
||
|
||
Du darfst sofort loslegen. Empfohlene Reihenfolge:
|
||
|
||
1. Briefing lesen (diese Nachricht)
|
||
2. `module-interface.md` + `content-architecture.md` lesen
|
||
3. `App/sims/klima/game-2d.html` durchsehen (Referenz-Implementierung)
|
||
4. `App/fluss.html` (V1) studieren (Spiellogik)
|
||
5. Einen kurzen Plan in `_inbox/zentrale/` posten: "Hier Fluss. Plan:
|
||
Schritt 1 ... Schritt 2 ... ca. X Stunden. Starte jetzt."
|
||
6. Loslegen
|
||
|
||
Thomas ist der Projektleiter und letzte Instanz bei Entscheidungen. Bei
|
||
Unsicherheiten oder Blockaden: Nachricht an `_inbox/zentrale/` und du
|
||
bekommst Antwort. Kein Zeitdruck — Qualität vor Tempo.
|
||
|
||
Willkommen!
|
||
|
||
## Bestätigen
|
||
|
||
- status: gelesen
|
||
- Plan als nächste Nachricht in zentrale-Inbox
|