Files
geograsim/App/docs/crash-recovery.md
T
Adminator 9a61f55cb1 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>
2026-04-19 11:51:14 +02:00

185 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Crash-Recovery-Protokoll
Was tun, wenn Windows, VS Code oder der Rechner abstürzen und alle
Claude-Sessions weg sind? Hier die Schritt-für-Schritt-Anleitung.
## Was überlebt einen Absturz immer
- Alle **Code-Dateien** auf der Platte
- Alle **Inbox-Nachrichten** (Markdown in `App/sims/_inbox/`)
- Alle **Memory-Einträge** von Atlas (`~/.claude/projects/.../memory/`)
- Alle **DB-Inhalte** (MySQL)
- Alle **Git-Commits** (lokal im `.git/`-Ordner)
- Die **_status.md** jeder Instanz (siehe unten)
## Was verloren geht
- Der laufende Chat jeder Instanz
- Kontext, den eine Instanz im Kopf hatte (welche Dateien gerade gelesen,
welche Gedanken gerade offen)
---
## Wiederherstellung — Schritt für Schritt
### 1. Atlas (Plattform-Zentrale) reaktivieren
Starte eine neue Claude-Code-Session im Projektordner.
Erster Prompt:
```
Du bist Atlas, die Plattform-Zentrale. Lies als erstes:
1. ~/.claude/projects/c--xampp-htdocs-geograsim/memory/MEMORY.md
2. App/sims/_inbox/zentrale/ (neuste 10 Nachrichten)
Dann melde dich bei mir mit einem Statusbericht: Welche Module aktiv,
welche Aufträge offen, welche Probleme drohen.
```
### 2. Aktive Modul-Instanzen reaktivieren
Für jede Instanz (Klima, Fluss, Glossar, Lehrplan) — neue Session, erster
Prompt:
```
Du bist die {Name}-Instanz im GeoGraSim-Projekt. Lies als erstes:
1. App/sims/_inbox/{ordner}/_status.md (falls vorhanden — aktueller Stand)
2. App/sims/_inbox/{ordner}/ (neuste Nachrichten, chronologisch)
3. App/docs/module-interface.md (wenn du das Interface neu brauchst)
Melde dich dann bei Thomas mit: "Hier {Name}, habe Stand rekonstruiert,
arbeite an {Task}, als nächstes {Next-Step}."
```
Mapping Name → Ordner:
- **Atlas** → `_inbox/zentrale/`
- **Klima** → `_inbox/klima/`
- **Glossar** → `_inbox/glossar/`
- **Lehrplan** → `_inbox/content/`
- **Fluss** → `_inbox/fluss/`
### 3. Git-Stand prüfen
```bash
cd c:/xampp/htdocs/geograsim
git status
git log --oneline -10
```
Falls uncommittete Änderungen da sind: die Instanz, die dran war, muss
entscheiden, ob sie sie übernimmt oder verwirft. Im Zweifel **erst
committen**, dann Instanz Stand lesen lassen.
### 4. Prüfe auf laufende Background-Tasks
Manchmal laufen Python-Scripts (Audio-Generierung, DB-Seeds) im Hintergrund.
Nach Crash sind die tot — einfach neu starten.
---
## Status-Datei `_status.md`
Jede Instanz führt eine `_status.md` in ihrer eigenen Inbox. Struktur:
```markdown
---
instanz: klima
zuletzt_aktualisiert: 2026-04-18 22:45
session_id: informell (z.B. "engine-refactor-phase-1")
---
# Aktueller Stand
## Wo ich stehe
Schritt 2 fertig (Engine extrahiert, 2D umgestellt).
Schritte 3-5 (3D V2) offen.
## Zuletzt geänderte Dateien
- App/sims/klima/engine.js (neu)
- App/sims/klima/game-2d.html (refactored, 515 Zeilen)
## Als nächstes
Schritt 3: game-3d.html V2 aufbauen, Three.js per CDN, Three.js-Szene
aus V1 portieren.
## Offene Entscheidungen
- 2D/3D-Toggle auf modul-klima.php (mit Lehrplan abstimmen)
## Blocker
Keine.
```
**Updates:**
- Bei jedem grösseren Fortschritt überschreiben (nicht append)
- Am Session-Ende definitiv aktualisieren
- Bei Pause/Übergabe ebenfalls
**Atlas pflegt seine Status-Datei in `_inbox/zentrale/_status.md`.**
---
## Commit-Konvention
### Wer committet
- **Atlas** committet projektweite Änderungen (Design-System, APIs, Admin,
gemeinsame Docs)
- **Jede Modul-Instanz** committet ihre eigenen Änderungen
(App/sims/<modul>/*, App/pages/<modul>*.php, modul-spezifische Assets)
### Wann committen
**Pflicht:**
- Am Ende jeder Arbeits-Session (auch wenn unfertig)
- Nach jedem bedeutenden Meilenstein (neues Feature, Phase abgeschlossen)
- Vor jedem Kontext-Wechsel (neue Session übernimmt)
**Empfohlen:**
- Täglich mindestens einmal
- Nach grösseren Refactorings
- Bevor riskante Experimente starten
### Commit-Message-Format
```
<Instanz>: <Kurzbeschreibung>
<Längere Erklärung falls nötig — was und warum>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
```
Beispiele:
```
Klima: Engine extrahiert (Schritt 1-2)
Klima: WIP 3D V2, Three.js-Setup + Insel-Geometrie
Fluss: Phase 1 fertig - PHP-Wrapper + leeres Canvas
Atlas: Music-Registry erweitert um Drama-Slot
Glossar: 5 Repräsentationsbilder im Querformat
```
### Commit-Befehl
```bash
cd c:/xampp/htdocs/geograsim
git add <dateien>
git commit -m "<Instanz>: <Kurzbeschreibung>"
# Kein push — lokal reicht (kein Remote eingerichtet)
```
---
## Optional: Remote-Backup
Momentan **kein Remote** eingerichtet. Bei Festplatten-Defekt wäre alles
verloren. Möglichkeiten (entscheidet Thomas):
1. **Eigener Server** (geograsim.at hat SSH): Meister-Instanz kann ein
Bare-Repo in `/root/git/geograsim.git` einrichten. Dann `git push`
als Backup.
2. **Externe Platte**: `robocopy` nach USB-HDD, täglich.
3. **Keine Cloud-Dienste** (Thomas hat GitHub abgelehnt).
Atlas schlägt vor, irgendwann Option 1 einzurichten. Nicht akut, aber
planbar.