1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
70 lines
4.8 KiB
Markdown
70 lines
4.8 KiB
Markdown
# Spec v1.0-stable — 2026-05-17
|
||
|
||
Alle [REVIEW]-Punkte mit Thomas geklärt, Spec einbau-fertig für
|
||
Modul-Instanzen.
|
||
|
||
## Was sich seit gestern geändert hat
|
||
|
||
### Spec-Files: alle [REVIEW]-Stellen durch konkrete Entscheidungen ersetzt
|
||
|
||
| File | Entscheidung |
|
||
|---|---|
|
||
| [README.md](v2-modules/_spec/README.md) | Status v1.0-stable, neue Sektion „Geklärt mit Thomas" mit allen 11 Kernentscheidungen |
|
||
| [module-manifest.md](v2-modules/_spec/module-manifest.md) | `adminFieldsFile` als Pflicht-Feld, Difficulty-Level frei pro Modul |
|
||
| [input-api.md](v2-modules/_spec/input-api.md) | Neue API `/api/runtime-config`, Profil liefert `nachteilsausgleich` + `levelUnlocks`, drei Modi mit Override |
|
||
| [output-api.md](v2-modules/_spec/output-api.md) | Lehrplan-Codes mit Land-Prefix, Klarnamen bestätigt, Level-Unlock-Auto-Update server-seitig |
|
||
| [telemetry-api.md](v2-modules/_spec/telemetry-api.md) | Heartbeat-Frequenz aus runtime-config (10–30s default), Stuck zentral konfiguriert |
|
||
| [delivery-format.md](v2-modules/_spec/delivery-format.md) | Hybrid-Konformitäts-Check (PHP+Headless), Versionierungs-Update-Logik (Patch auto / Major Atlas-Review) |
|
||
| [platform-standards.md](v2-modules/_spec/platform-standards.md) | API-Keys nur lokal, UI-Tokens strikt, Sound-Library Phase 2, Stimmen-Pool Atlas-gepflegt |
|
||
| [migration-from-v1.md](v2-modules/_spec/migration-from-v1.md) | Wellen-Reihenfolge bestätigt, V1 bleibt parallel, kein Daten-Bridge (cleaner Schnitt) |
|
||
| **NEU** [level-unlock-konzept.md](v2-modules/_spec/level-unlock-konzept.md) | Anhang: Drei Modi (frei / Auftrag / Nachteilsausgleich-Override), Auto-Unlock-Logik |
|
||
|
||
**Total**: 9 Files, 2026 Zeilen Spec.
|
||
|
||
### Plattform-Code (V2): neue Tabellen + APIs
|
||
|
||
DB-Schema in [v2-platform/db/init.sql](v2-platform/db/init.sql):
|
||
- **`platform_config_v2`** — 8 Default-Konfig-Einträge (Heartbeat, Token-TTL, Rate-Limits etc.) für Admin-Board-Tuning
|
||
- **`health_metrics_v2`** — Antwortzeit-Statistiken pro Endpoint (Vorbereitung für Phase-2-Auto-Tuning)
|
||
- **`class_assignments_v2`** — V2-Aufträge mit `difficulty` + `custom_params` (V3-Vorbereitung)
|
||
- **`student_level_unlock_v2`** — pro Schüler*in × Modul (`highest_unlocked_level`, `highest_completed_level`, `best_score_per_level`, `attempts_per_level`)
|
||
- **`students.nachteilsausgleich`** — neue Spalte additiv
|
||
|
||
APIs:
|
||
- **NEU**: [v2-platform/php/api/runtime-config.php](v2-platform/php/api/runtime-config.php) + Mock — liefert Plattform-Tuning-Werte
|
||
- **erweitert**: `/api/student/me` liefert jetzt `nachteilsausgleich` + `levelUnlocks` (Map pro Modul)
|
||
- **Mock**: dritte Test-Schüler*in Sofia hat `nachteilsausgleich = true` für Tests
|
||
|
||
### Globale Begriffsänderung: Lehrkraft → Lehrperson
|
||
|
||
Alle V2-Spec-Files, Plattform-Code, Mock-Code, Briefings und Hallo-Welt-Modul auf „Lehrperson" umgestellt (Sed-Lauf über bekannte Pfade). V1-Code unverändert — alte Begriffe bleiben dort.
|
||
|
||
Plus neue Memory-Datei [feedback_lehrperson_nicht_lehrkraft.md](memory/feedback_lehrperson_nicht_lehrkraft.md) — Konvention dauerhaft festgehalten.
|
||
|
||
## Was als nächstes ansteht
|
||
|
||
Aus deinem Auftragsstapel, Reihenfolge nach Sinn:
|
||
|
||
1. **Konformitäts-Check-Skript** bauen (PHP + Headless-Chrome) — damit Modul-Instanzen ihre Lieferungen selbst prüfen können bevor sie an Atlas schicken
|
||
2. **Telemetry-Client-JS-Lib** (`v2-platform/lib/telemetry-client.js`) — nimmt Modul-Instanzen Boilerplate ab (Heartbeat-Loop, Token-Refresh, Stuck-Detection)
|
||
3. **V2-Cockpit + Login** — Lehrer-Live-Dashboard, Schüler-Cockpit mit Lerngeschichte, Modul-Auswahl, Admin-Board mit Plattform-Config-Sektion
|
||
4. **Meister informieren** — sobald V2-Cockpit substantiv steht, briefen für `/v2beta`-Apache-Alias
|
||
|
||
Reihenfolge ist mein Vorschlag — du entscheidest. Mein Tipp: 1 + 2 sind klein und konkret (jeweils paar Stunden), 3 ist groß (Tage), 4 ist nur eine Inbox-Mail.
|
||
|
||
## Offene Detail-Fragen für später
|
||
|
||
Drei Punkte, die jetzt entschieden sind, aber bei der Implementierung wahrscheinlich nochmal auftauchen:
|
||
|
||
- **Admin-Board-Konfig-UI**: ich integriere sie ins bestehende V1-Admin-Board oder baue V2-eigenes Admin? V1 hat schon das `admin-fields.json`-Pattern, das wir wiederverwenden.
|
||
- **Konformitäts-Check Headless-Chrome**: brauchen wir eine Node-Dependency oder können wir Playwright als Standalone-Binary nutzen? Ich tendiere zu Node-frei.
|
||
- **Token-Auto-Refresh-Logik**: in der Telemetry-Client-Lib einbauen — Modul muss nichts machen. Lib pollt 5min vor Ablauf einen Refresh-Endpoint und tauscht Token transparent.
|
||
|
||
Diese Punkte muss ich nicht heute klären — kommt bei der Implementierung.
|
||
|
||
## Test der Live-Mock (immer noch wie gestern)
|
||
|
||
Lokal: `http://localhost/geograsim/v2-modules/hallo-welt/tests/mock-platform.html` — funktioniert weiter, plus Sofia (Student 44) ist jetzt mit `nachteilsausgleich = true` markiert.
|
||
|
||
— Atlas, 2026-05-17
|