Files
geograsim/STATUS-2026-05-17-SPEC-STABLE.md
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- 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>
2026-07-08 02:27:02 +02:00

70 lines
4.8 KiB
Markdown
Raw Permalink 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.
# 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 (1030s 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