SLC_Game/PROJEKTSTAND.md
2026-06-07 15:02:35 +02:00

135 lines
8.3 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.

# Projektstand — SLC-Workshop Tabletop (Übergabe / Wiedereinstieg)
**Zweck dieses Dokuments:** Schneller, nahtloser Wiedereinstieg (auch in einem neuen
Chat). Hier steht, **wo wir stehen, was entschieden wurde, was offen ist** und wie man
App lokal startet/deployt.
**Stand:** 2026-06-06 · **Branch:** `feat/redesign-und-companion-app` · **HEAD:** `3647129`
**Remote:** `https://git.1789.cloud/patrick/SLC_Game.git`
---
## 1. Worum geht's
Haptisches Workshop-Format für Stadt Freiburg / DIGIT, das den **Service-Lifecycle**
(Design → Transition → Operation ⇄ Support → Review) erlebbar macht. Zielgruppe:
Operations/Service-Owner/Support. Mix aus **Vermittlung** (Lifecycle + Stationen) und
**Simulation** echter Change-Fälle. Spielelemente: **3D-Teile, Figuren, Companion-App**.
## 2. Repo-Überblick
| Ordner | Inhalt |
|--------|--------|
| `00_Konzept/` | Gesamtkonzept (`README_konzept.md`, v0.5) + Arbeitsstand-Notizen |
| `01_3D-Druck/` | Materialliste, OpenSCAD-Modelle, Board-Layout-Generator, Visual-Prompts |
| `02_Spielfiguren/` | Rollen-Figuren (38), Farbcodierung, Gate-Besetzung |
| `03_Karten/` | Action/Störungskarten + Artefakt-Katalog A1A15 (Service-Akte = App-Element) |
| `04_Tablet-Quiz/` | **Companion-App** (`app/` = deploybare PWA) + Konzept |
| `05_Workshop-Dokumentation/` | Logbuch, Reflexion, Debrief |
## 3. Aktueller Stand pro Bereich
### 3D / Hardware (`01_3D-Druck/`)
- **Bahn = runde Pucks Ø100 × 6 mm**, lose ausgelegt (keine Magnete, keine
Steckverbindung, keine Verankerung). **Ein Modell** `openscad/puck.scad` für
Station (Phasenfarbe) **und** Gate (rot) — Unterschied nur Farbe + Etikett.
Je Puck: **7 Figurenmulden Ø22** + **Mittenmulde Ø37,5** für ein **Rundetikett Ø37**.
- **Phasen-Ring:** 5 Segmente (Ø180/Ø84 × 6 mm), Bibliothek `phasen-ring.scad` +
5 druckfertige Einzeldateien `phasen-ring-<design|transition|operation|support|review>.scad`.
Graviert: Icon (oben) + Phasenname. Zusammengesteckt = Übersicht, einzeln = Bahn-Köpfe.
- **Aktiv-Feld (RACI):** quadratisch **2×2 (R|A / C|I), 130×130 mm**, Standfelder Ø22.
- **Entfernt** (Git-Historie): Action-Stein, Gate-Tor, Gate-Tile, eckige Tiles,
Ø60-Scheiben, Gate-Karte.
- **Etikett-Hinweis:** Ø37 ist **kein Avery-Standard** → Bezugsquelle vor Druck prüfen.
### Karten (`03_Karten/`)
- **Action Cards:** 24 finale Grafiken (Freiburg-digital-Layout) liegen in
`04_Tablet-Quiz/app/cards/s<service>-c<change>.png` (6 Services × 4 Change-Arten).
- **Service-Akte = App-Element:** Artefakte **A1A15** werden in der App per **Choice**
gesammelt; **harte Gate-Kopplung** (Gate öffnet nur mit den geforderten Artefakten,
Akte beim Einstieg vorbefüllt). Keine physischen Artefaktkarten / kein Tableau / kein 3D-Teil.
- **Gate-Entscheidung** (Go / Auflagen / Zurück / Ablehnung) trifft die zuständige Rolle
**in der App**; die entscheidende Rolle bleibt als Marker am Gate-Puck. **Keine Chips,
keine Gate-Karte mehr**.
### Companion-App (`04_Tablet-Quiz/app/`) — statische PWA
**Flow:** Karten-Raster (Action Card ziehen) → **Change-Art klassifizieren** (Legende,
„nochmal" bis richtig) → **Phasen-Einstieg** (Lebenszyklus-Phase anklicken, retry) →
**Stationen****Abschluss-Screen** („abgeschlossen" oder „abgelehnt").
- **Aktivitäts-Station, schrittweiser Mikro-Ablauf** (4 Fragen, je einzeln + Auflösung):
(1) Was steckt hinter der Überschrift? (2) Beteiligte Rollen → Figuren auf die
**Puck-Mulden**; (3) **RACI** → Figuren ins **Aktiv-Feld (R·A·C·I)** (mit RACI-Legende);
(4) **Artefakt als Choice** → in die App-Akte. Danach eigener **Abschluss-Screen**
(„✓ Aktivität abgeschlossen", an Phasengrenzen zusätzlich 🎉-Phasen-Feedback).
Aufgaben jeweils im farbigen Aufgaben-Kasten.
- **Gate-Station interaktiv:** Kriterien prüfen → Entscheidung → Konsequenz +
**Verzweigung**. **Echte Rückschleifen:** „Zurück an Build/Transition" springt
zurück, blendet einen Nacharbeits-Banner ein und legt das Gate danach **erneut**
vor (Hinweis „Erneute Vorlage"). „Ablehnung" → eigener **End-Screen** (SOR-Eskalation).
(z. B. Gate 1 „Konfiguration" → `tr_05`; SOR→DPM→Mission Board.)
- **Kein App-Debrief mehr:** Der Export-Dialog (Markdown/JSON) wurde entfernt; das
Workshop-**Debriefing am Tisch** bleibt (im Done-Screen erwähnt).
- **4 Change-Arten** (Major/Normal/Standard/Emergency), 24 Karten. Multiple-Choice
ist aus dem Hauptfluss raus (Daten liegen noch in `index.html`, ungenutzt).
- **Inhalte sind in `index.html` eingebettet** (noch keine YAML-Pipeline).
- **Deploy:** statisch, siehe `04_Tablet-Quiz/app/DEPLOY.md`.
### Figuren (`02_Spielfiguren/`)
38 Figuren (16 Rollen × 2 + 3 Teams × 2). **DPM** ist in der App-Rollenliste ergänzt.
## 4. Wichtige Entscheidungen & Arbeitsstände
**Kanonisch / stabil:**
- Puck-System statt Tiles; ein STL für die Bahn; Beschriftung via Etikett.
- Aktiv-Feld 2×2; Phasen-Ring; keine Magnete; kein Action-Stein.
- **Figuren-Regel (zweistufig):** Station-Puck-Mulden = „welche Rollen sind beteiligt?",
Aktiv-Feld (R·A·C·I) = „wie ist die RACI?". An Gates: Pflicht-Figuren am Gate-Puck.
**Workshop-Arbeitsstand — bewusst NICHT im Blueprint-YAML und NICHT im kanonischen
Konzept (`00_Konzept/README_konzept.md`), bis Rückkopplung mit Michael:**
- **Review-Phase = Franks 5 Aktivitäten** (Change-Enablement) statt bisher 6. Umgesetzt
in App + `materialliste.md` + `board-layout` (→ 39 statt 40 Positionen, 36 Station-Pucks
+1 Reserve). Konzept-README zeigt noch 6/40.
- **Change-Arten auf 4 zusammengeführt** (Top/Low Major → ein „Major"); Begründung
ITIL 4 (Major = Normal mit höherer Authority) + YASM (lean).
- **MB = Mission Board.** SOR-Routing am Change: **RUN / DPM / MB**. Eskalations-
Kriterium: Reicht die **Ressourcen-/Entscheidungshoheit der SOR** nicht → **Demand**
über DPM ans **Mission Board** (= DPM-Rücklauf).
- Details/Quelle: `00_Konzept/review-phase_arbeitsstand-frank.md`.
## 5. Offene Punkte / nächste Schritte
- [x] **Figuren-Regel festgezurrt** (zweistufig: Puck = beteiligte Rollen, Aktiv-Feld =
RACI). In der App umgesetzt. **Offen:** in `materialliste.md` / `board-layout` /
`README_konzept.md` nachziehen.
- [x] **Echte Gate-Rückschleifen** umgesetzt (Nacharbeits-Banner + erneute Gate-Vorlage;
Ablehnung → End-Screen). **Offen ggf.:** Auflagen-Pfad sichtbar vom reinen „Freigabe"
unterscheiden (verhält sich aktuell identisch = weiter).
- [x] **App-Debrief entfernt** (Punkt „Pfadlänge X/39" damit hinfällig).
- [ ] **MC-Quiz** optional als „Wissens-Check" reaktivieren? (Daten sind noch da.)
- [ ] **YAML→Inhalts-Pipeline** (Stationsdaten aus `service-lifecycle_*.yaml`) — **braucht Zugriff aufs Blueprint-Repo**.
- [ ] Nach **Michael-Freigabe:** kanonisches Konzept (`README_konzept.md`), YAML und ggf. `bauteile-masse.svg`/`visual-prompts` final nachziehen.
- [ ] Mit Frank/Michael klären: **Retirement/Außerbetriebnahme** (alt rv_06) in Franks Review, Vokabular-Abgleich, **RACI/Quiz der Review-Phase fachlich prüfen** (in App abgeleitet).
## 6. Workflow & Betrieb
### Git / Deploy
- Arbeit auf Branch **`feat/redesign-und-companion-app`** (direktes Pushen auf `main`
ist per Policy gesperrt → Feature-Branch + Merge).
- **Push** braucht deine Credentials (Git Credential Manager, interaktiv) — der Agent
kann nicht selbst pushen. Ablauf: *Agent committet → du `git push` → mergen → Server-Claude deployt.*
- **Deploy** macht die Claude-Instanz auf dem Server anhand `04_Tablet-Quiz/app/DEPLOY.md`
(statisches Hosting des Ordners `04_Tablet-Quiz/app/` über HTTPS).
### App lokal testen
```
python -m http.server 8099 --directory 04_Tablet-Quiz/app
# dann http://127.0.0.1:8099 (oder Preview-Config .claude/launch.json)
```
- **Bei Updates:** Service-Worker-Cache leeren bzw. in `app/sw.js` `CACHE`-Version
hochzählen, sonst lädt der Browser die alte Version.
### Hinweise für den (nächsten) Agenten
- **OpenSCAD** ist installiert → Modelle via CLI rendern/prüfen (`Simple: yes`).
- **Preview-Renderer (MCP)** kann in dieser Umgebung hängen → App-Änderungen sonst
per `node --check` (Syntax) + kleinen Node-Datenchecks verifizieren.
- Große Daten-/Funktionsänderungen in `app/index.html` wurden per **kleinen
Python-Splice-Skripten** gemacht (wegen vieler Sonderzeichen) — Muster im Chatverlauf.
- **Commit-Stil:** prägnante deutsche Messages; Footer `Co-Authored-By: Claude …`.