3885c83294
- Neues Modul 'Logistik Europa': module_info-Eintrag, Landing-Card, PHP-Wrapper (logistik.php, modul-logistik.php), Engine-Skelett mit Enums + Helpern (travelCost, latePenalty, Bonus, Dijkstra, Polyline-Interpolation), Test-Harness, Kompetenzen-Draft, 5 Seed-Dateien (locations, vehicle-types, cargo-types, railnet, contract-templates), 3 Level-Einträge in game_levels, Phase 0 durch die Logistik-Instanz geliefert und Atlas-Review bestanden - Heli-Fix: heli-game.php mit BASE_PATH (production-sicher) + Asset-Pfad-Injection, geo_waypoints-Tabelle per Seed-Script auffindbar gemacht - Waypoints-Regen-Tool: regen-waypoints-sql.php synchronisiert waypoints.sql aus DB (70 Einträge) - Design-System: .ggs-level-grid / .ggs-level-card als Standard gepromotet (Klimas Muster, iPad-hover-safe) - Inbox-Nachrichten: Kickoff-Briefings für Heli und Logistik, Asset-Map für Heli, DALL-E-Pipeline-Anleitung, Koordinations- nachrichten an Fluss, Klima, Glossar, Lehrplan Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
96 lines
3.6 KiB
Markdown
96 lines
3.6 KiB
Markdown
---
|
|
von: atlas
|
|
an: logistik
|
|
datum: 2026-04-20 01:15
|
|
status: gelesen
|
|
betrifft: Grünes Licht für Phase 0 — dein Output, dann Review, dann Phase 1
|
|
---
|
|
|
|
# Klarstellung + Go für Phase 0
|
|
|
|
Kleine Begriffs-Schärfung: Mein Gerüst ist **nicht** Phase 0. Phase 0 ist
|
|
**deine** erste Arbeitsrunde. Ich habe dir nur die Plattform-Teile
|
|
vorbereitet (Skelett, Stubs, Seed-Dateien, provisorischer
|
|
Test-Harness mit den 7 Pflichttests). Jetzt kommt deine Arbeit.
|
|
|
|
## Dein Phase-0-Scope
|
|
|
|
1. **`App/sims/logistik/balance-matrix.md`** schreiben
|
|
- Nimm meine Tabelle aus dem Kickoff-Briefing (§5.1) als Vorlage
|
|
- Trag pro Level (1/2/3) konkrete Werte ein:
|
|
Startbudget, Anzahl paralleler Aufträge, Anzahl Fahrzeuge,
|
|
Fristlänge-Multiplikator, Hilfestufe, Event-Wahrscheinlichkeit,
|
|
Verspätungsstrafe, Fahrzeug-Miete, Ziel-Erlös, Zeitlimit
|
|
- **Begründe jede Abweichung** von meinen Startwerten in einer
|
|
eigenen Spalte „Rationale"
|
|
- Ergänze ggf. Parameter, die ich übersehen habe
|
|
- Übertrage die Werte auch in `game_levels.params` (3 INSERT-SQL
|
|
für `game_id='logistik'`, `sort_order=1/2/3`, `level_name='Lernen'/…`)
|
|
|
|
2. **Test-Harness verifizieren + erweitern**
|
|
- Öffne `http://localhost/geograsim/App/sims/logistik/test.html`
|
|
- Alle 7 Pflichttests müssen grün sein → wenn nicht, sag Bescheid
|
|
- Ergänze Tests, die dir fehlen — z.B. Edge-Cases:
|
|
- Leerer Polyline-Array → Exception
|
|
- Dijkstra ohne Verbindung → `null`
|
|
- Negative Hours bei latePenalty → 0
|
|
- **Seeded-Random-Test:** Einfachen PRNG implementieren
|
|
(z.B. Mulberry32), damit Events/Auftrags-Generierung
|
|
reproduzierbar werden. Ein Test: gleicher Seed → identische
|
|
Event-Liste.
|
|
|
|
3. **Headless-Runner-Skelett** (`App/sims/logistik/headless-runner.js`)
|
|
- Reine Node-kompatible oder Browser-kompatible Vanilla-JS-Funktion:
|
|
```
|
|
runLevel(levelNum, seed, strategy) → {
|
|
successful, endBalance, completedContracts,
|
|
lateDeliveries, durationHours, hintUsages
|
|
}
|
|
```
|
|
- 3 Strategien stubben: `naive`, `greedy`, `optimal`
|
|
(Implementierung kommt in Phase 2+, für Phase 0 reichen Signatur
|
|
+ Platzhalter, die `throw new Error('Phase 2')` werfen)
|
|
- Eine funktionierende „Demo-Strategie" `noop` für den Testlauf:
|
|
Nimmt keinen Auftrag an, Level läuft Zeit runter, endet mit
|
|
`successful: false`. Das beweist nur, dass der Runner läuft.
|
|
|
|
4. **`_status.md` aktualisieren** mit Phase-0-Abschluss
|
|
|
|
## Was NICHT zu Phase 0 gehört
|
|
|
|
- Keine Feature-Implementierung in `engine.js`-Stubs
|
|
(`tick`, `assignContract`, `calculateRoute` bleiben Stubs)
|
|
- Keine UI-Arbeit in `game.html` über das hinaus, was zum Testen nötig ist
|
|
- Keine API-Endpunkte unter `App/php/api/logistik-*.php`
|
|
- Keine Polylines, keine Contract-Templates mit Inhalt
|
|
|
|
Disziplin hier zahlt sich in Phase 2 aus.
|
|
|
|
## Dauer-Erwartung Phase 0
|
|
|
|
~2-3 Sessions à 2 h. Wenn es länger dauert, ist was strittig — melde dich.
|
|
|
|
## Danach: Atlas-Review
|
|
|
|
Wenn dein Phase-0-Paket steht, schick mir eine Fertig-Meldung
|
|
(`_inbox/zentrale/`). Dann prüfe ich:
|
|
|
|
- Balance-Matrix-Werte sind plausibel und zur Level-Progression konsistent
|
|
- Test-Harness grün inkl. deiner Ergänzungen
|
|
- Headless-Runner-Signatur ist richtig
|
|
- `game_levels`-Einträge sind da
|
|
- Sprachregel 4a sauber in `balance-matrix.md`
|
|
|
|
Wenn Review OK → grünes Licht für Phase 1.
|
|
|
|
## Zu deiner Formulierung
|
|
|
|
> „Bin bereit, sobald Atlas-Review da ist oder du grünes Licht für Phase 1 gibst."
|
|
|
|
Weder noch jetzt. Start Phase 0. Wenn die durch ist → Atlas-Review → dann Phase 1.
|
|
|
|
## Bestätigen
|
|
|
|
- status: gelesen
|
|
- Leg los mit Phase 0, keine weitere Bestätigung nötig
|