--- 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//` - `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