From 5043e9ac7b83da81d067fb1bad7be2be2bcd3a53 Mon Sep 17 00:00:00 2001 From: breitenbach76 Date: Sat, 30 May 2026 16:02:13 +0200 Subject: [PATCH] m --- 04_Tablet-Quiz/README.md | 46 ++++++- 04_Tablet-Quiz/prototype/index.html | 181 +++++++++++++++++++++++++--- 2 files changed, 207 insertions(+), 20 deletions(-) diff --git a/04_Tablet-Quiz/README.md b/04_Tablet-Quiz/README.md index cc9f491..6d80563 100644 --- a/04_Tablet-Quiz/README.md +++ b/04_Tablet-Quiz/README.md @@ -93,9 +93,53 @@ Plättchenrückseite stand. - **Inhalt:** Aktivitäten/Gates/Rollen = Brett-Elemente (`../00_Konzept/`). - **Ausgang:** Debrief-Daten → Workshop-Dokumentation (`../05_Workshop-Dokumentation/`). -## 8. Offene Punkte +## 8. Companion-Chatbot (optional · Nachschlage-Begleiter) + +Idee: Teilnehmende stellen spontane Verständnisfragen, die das feste Quiz nicht +abdeckt — z. B. „Was ist das Service Design Document?" oder „Wer ist an Gate 2 +accountable?". Der Bot beantwortet sie aus dem Blueprint. + +### Rolle & Grenzen (didaktisch) +- **Nachschlagen, nicht führen.** Der Bot ersetzt **nicht** die Stationsführung. + Das Lernprinzip (erst Gruppendiskussion → Tipp → App-Auflösung) bleibt das + Rückgrat; ein frei führender Bot würde das „produktive Ringen" aushebeln. +- **Freischaltung gated:** pro Station erst **nach dem „Auflösen"** verfügbar + (oder als klar getrennter „Frag nach"-Knopf), damit er das Diskutieren-zuerst + nicht kurzschließt. +- **Scope-begrenzt:** antwortet nur aus dem Blueprint, keine freie Beratung; + bei Unklarheit Verweis auf den „Unklar"-Marker → Debrief. + +### Datengrundlage +- Der Lifecycle-Blueprint ist klein (~2.000 Zeilen YAML). **Kein RAG/Vektor-Setup + nötig** — alle `service-lifecycle_*.yaml` + `spm_rollen.yaml` passen in einen + einzigen System-Prompt-Kontext. +- Single Source of Truth bleibt der Blueprint (keine Doppelpflege). + +### Wiederverwendung statt Neubau +- Im Repo existiert bereits ein Bot: `#099_tools/digitom-bot/` mit Knowledge-Base + (`SPM_service-lifecycle_*.md`) und Dify-Upload. **Vor Neubau prüfen**, ob dieser + als Begleiter angedockt werden kann. + +### Offene Architektur-Entscheidung: Offline vs. Cloud +Ein Laufzeit-LLM braucht einen API-Aufruf → Internet/Endpoint/Key. Das steht im +**Konflikt zur Konzept-Bedingung** (offline, Kiosk, keine Cloud, kein Login; +vgl. Abschnitt 6). Optionen: + +| Variante | Pro | Contra | +|----------|-----|--------| +| **(a) Cloud-LLM** (Dify / Anthropic / Azure-OpenAI) | geringster Aufwand, beste Qualität | Online-Pflicht, Datenschutz-/Beschaffungsfreigabe | +| **(b) Lokales LLM** (z. B. Ollama auf dem Gerät) | offline-konform | Hardware-/Setup-Aufwand, schwächere Qualität | +| **(c) Statische FAQ** (vorab generierte Q&A aus Blueprint) | voll offline, keine Kosten | keine Freitextfragen, begrenzte Abdeckung | + +Empfehlung für den Pilot: mit **(a)** als separater, optionaler Begleiter starten +und im Pilot evaluieren, ob der Mehrwert die Online-Pflicht rechtfertigt. + +## 9. Offene Punkte - [ ] Format `questions.json` spezifizieren. - [ ] Entscheidung Framework vs. Vanilla. - [ ] Wer pflegt/baut? (intern DIGIT vs. extern) - [ ] Datenschutz: rein lokal, keine personenbezogenen Daten — bestätigen. +- [ ] Companion-Chatbot: Entscheidung Offline vs. Cloud (Abschnitt 8). +- [ ] Prüfen, ob `digitom-bot`/Dify als Begleiter wiederverwendbar ist. +- [ ] Freischalt-Logik des Bots festlegen (nach „Auflösen" vs. jederzeit). diff --git a/04_Tablet-Quiz/prototype/index.html b/04_Tablet-Quiz/prototype/index.html index 382dab7..537780c 100644 --- a/04_Tablet-Quiz/prototype/index.html +++ b/04_Tablet-Quiz/prototype/index.html @@ -145,6 +145,16 @@ .pickerItem .dot { width:10px; height:10px; border-radius:50%; flex:none; } .pickerItem .id { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; } .pickerItem .gate { margin-left:auto; font-size:11px; font-weight:700; color:#fff; background:var(--ink); padding:1px 8px; border-radius:999px; } + .pickerItem.correct { border-color:var(--ok); background:#f1faf4; } + .pickerItem.wrongPick { border-color:var(--bad); background:#fdf3f3; } + .recBox { border:1px solid var(--line); border-left:4px solid var(--ok); border-radius:10px; padding:14px 16px; margin:14px 0; } + .recBox h4 { margin:0 0 6px; font-size:13px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); } + /* Geführte Tour */ + .tourBanner { background:#fff7f7; border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:10px; padding:10px 14px; margin-bottom:16px; font-size:13px; line-height:1.45; } + .tourBanner b { color:var(--ink); } + .tourProg { font-size:12px; color:var(--muted); margin-bottom:8px; font-variant-numeric:tabular-nums; } + .tourNarr { background:#eef4fb; border-radius:12px; padding:16px 18px; margin:14px 0; font-size:16px; line-height:1.55; } + .tourNarr h4 { margin:0 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.6px; color:var(--design); } @@ -178,6 +188,65 @@