wiki/c-work/2-build/2026-04-investor-demo-tuesday.md
2026-04-13 01:37:33 +02:00

539 lines
28 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.

<!-- status: plan -->
<!-- started: 2026-04-12 -->
<!-- component: gateway | frontend-nyla | platform -->
# Investor-Demo Dienstag — Live Product Demo (20 Min)
## Beschreibung und Kontext
**Was:** 20-Minuten Live-Demo von PowerON PORTA für Investoren und Treuhänder am Dienstag.
**Wer präsentiert:** Kollegen präsentieren Keynotes (Use Cases), Patrick (CTO/CEO) zeigt die Plattform live.
**Publikum:** Investoren (ROI, Skalierbarkeit, Marktdifferenzierung) + Treuhänder (Praxisnutzen, Datenschutz, Zeitersparnis).
**Business-Treiber:** Die Demo muss in 20 Min zeigen, dass PowerON kein Konzept ist, sondern ein funktionierendes Produkt mit echtem Kundennutzen. Investoren wollen Traktion sehen, Treuhänder wollen sich wiedererkennen.
**Abhängigkeiten:**
- Trustee-Tooling-Plan: `c-work/1-plan/2026-04-customer-trustee-tooling-and-demo-prep.md` (Phase 13 erledigt ✅)
- Customer Demo Enablement: `c-work/1-plan/2026-04-customer-demo-enablement.md` (Analyse vorhanden)
- UI-Enhancements: `c-work/1-plan/2026-04-porta-ui-enhancements-team-meeting.md`
**Risiko bei Nicht-Umsetzung:** Demo scheitert live, Investoren sehen nur Slides statt funktionierendes Produkt. Vertrauensverlust.
---
## Fokus und kritische Details
### Was die Audienz überzeugt (Schritt 1 — gemeinsam klären)
**Investoren wollen sehen:**
1. **Funktionierendes Produkt** — kein Mockup, echte Datenverarbeitung
2. **Marktdifferenzierung** — warum nicht ChatGPT/Copilot/Langdock?
3. **Wiederholbarkeit** — keine Einmal-Demo, sondern konfigurierbare Workflows
4. **Skalierbarkeit** — Multi-Tenant, Multi-LLM, Usage-Based
5. **Internationalisierung** — neue Sprache in 5 Min, AI-übersetzt, kein Redeploy
**Treuhänder wollen sehen:**
1. **Zeitersparnis** — vorher 515 Min/Beleg → nachher Sekunden
2. **Datenschutz** — keine Kundendaten an OpenAI/Google
3. **Integration** — Abacus/Bexio/SharePoint ohne Systemwechsel
4. **Kontrolle** — Audit-Trail, Nachvollziehbarkeit
### Drei Live Use Cases (aus Keynote-Deck)
| # | Use Case | Dauer | Wow-Effekt | Technische Basis |
|---|----------|-------|------------|------------------|
| UC1 | **Treuhand: Automatisierte Spesenverarbeitung** | 6 Min | Beleg → OCR → Kontierung → Export in Sekunden | Trustee-Feature, Graph-Editor Workflow, SharePoint-Nodes |
| UC2 | **Immobilien: Automatisierte Machbarkeitsstudie** | 4 Min | Grundstück eingeben → 6 Min statt 4 Std. Recherche | RealEstate-Feature, Agent + webSearch + readUrl |
| UC3 | **Enterprise: AI Knowledge Workspace** | 4 Min | Frage stellen → sofortige Antwort mit Quellenangabe | AI Workspace (nicht Chatbot), RAG auto-indexiert, Neutralisierung |
| UC4 | **Sprach-Deployment: Neue Sprache in 5 Minuten** | 3 Min | Sprache anlegen → AI uebersetzt → UI sofort mehrsprachig | i18n-System, AI-Batch-Translation, Admin-UI |
| UC5 | **Integrationen: Architektur-Visualisierung** | 1 Min | Komplette Integrationslandschaft auf einen Blick | Neue Systemseite, Custom React-Komponente |
| — | **Neutralisierung (Querschnitt)** | 3 Min | PII live entfernen + Re-Personalisierung | Neutralisierung-Feature, Private LLM |
### Kritische Stellen
- **Graph-Editor Performance:** Workflow muss flüssig laufen (keine 15s-Wartezeiten)
- **Neutralisierung live zeigen:** Muss am AI-Gate greifen, nicht nur im Playground
- **Stabile Testdaten:** Jeder Demo-Lauf muss identische Ergebnisse liefern
- **Internet-Abhängigkeit:** UC2 (webSearch) braucht stabiles Internet — Fallback vorbereiten
- **LLM-Latenz:** Multi-LLM-Routing muss schnell sein — bevorzugt Azure OpenAI (geringste Latenz)
---
## Ziel und Nicht-Ziele
**Ziel:**
- Drei Use Cases end-to-end live lauffähig auf einer Demo-Instanz
- Bootstrap-Modul `demo` das den kompletten Demo-Zustand idempotent aufbaut
- Detailliertes Drehbuch mit Timing, Talking Points und Fallbacks
- Automatisiertes Testdrehbuch (pytest) das die Demo-Schritte verifiziert
- Alles auf INT-Umgebung deployt und getestet bis Montag Abend
**Explizit NICHT:**
- Keine neuen Features bauen (nutzen was da ist)
- Kein neues Frontend (UI-Enhancements separat)
- Keine neuen Connector-Implementierungen
- Keine Änderung am Billing für die Demo
---
## Betroffene Module
- **Gateway:** `modules/demoConfigs/` (neu — Demo-Config-System), `modules/routes/routeAdminDemoConfig.py` (neu), `modules/system/mainSystem.py` (Nav-Eintrag), `features/trustee/`, `features/workspace/` (RAG fuer UC3), `features/neutralization/`, `features/graphicalEditor/`
- **Frontend:** `pages/admin/AdminDemoConfigPage.tsx` (neu), `IntegrationsOverviewPage.tsx` (erledigt), `config/pageRegistry.tsx` (Eintrag), `App.tsx` (Route)
- **DB-Migration:** nein (nur Daten-Seeding)
- **Config:** `gateway/config.ini` (Demo_RMA_* Credentials)
- **Andere Komponenten:** Testdaten (PDF, Excel, CSV) in `gateway/demoData/`, Demo-Skript (Markdown), Test-Suite (pytest)
---
## Entscheidungen
| Datum | Entscheidung | Begründung |
|-------|-------------|------------|
| 2026-04-12 | Bootstrap-Modul statt manuellem Setup | Idempotent, reproduzierbar, jeder kann die Demo aufsetzen |
| 2026-04-12 | UC2 (Immobilien) als Agent-Demo statt RealEstate-Feature voll nutzen | RealEstate-Feature ist noch Shell; Agent + webSearch zeigt dieselbe Story |
| 2026-04-12 | Neutralisierung als Querschnitt in UC1 + UC3 einbauen, nicht als eigenen Block | Natürlicher Flow, keine "Feature-Parade" |
| 2026-04-12 | Testdrehbuch als pytest-Suite unter `gateway/tests/demo/` | Automatisch prüfbar, CI-fähig, reproduzierbar |
| 2026-04-12 | Fallback-Screenshots für UC2 (Internet-abhängig) | Demo darf nicht an WLAN scheitern |
| 2026-04-13 | UC3 nutzt AI Workspace statt Chatbot fuer RAG | Chatbot hat kein eigenes RAG (nur SQL + Tavily). Workspace hat vollstaendiges RAG: Upload → auto-Indexing (Extraktion + Embeddings) → semantische Suche via `buildAgentContext`. Einfacher, staerker, ein Interface fuer alles. |
---
## Umsetzungs-Checkliste
### Phase 0: Klärung — Was zeigen wir? (So Abend / Mo Morgen)
- [ ] **Use-Case-Auswahl bestätigen** mit Kollegen (Keynote-Alignment)
- UC1: Treuhand Spesenverarbeitung → zeigt Plug&Play + Workflow
- UC2: Immobilien Machbarkeitsstudie → zeigt AI-Agent-Power + Zeitersparnis
- UC3: AI Knowledge Workspace → zeigt RAG + Enterprise-Readiness (via Workspace, nicht Chatbot)
- UC4: Sprach-Deployment → zeigt Skalierbarkeit + Enterprise-Readiness (neue Sprache in 5 Min)
- UC5: Integrationen → zeigt Plug&Play-Architektur visuell (Datenquellen → PORTA → Services)
- Querschnitt: Neutralisierung → zeigt Privacy-First
- [ ] **Demo-Storyline abstimmen:** Reihenfolge, Übergänge, wer was sagt
- [ ] **Fallback-Strategie:** Was wenn ein UC live hängt? (→ vorbereitete Screenshots/Video)
### Phase 0.5: Demo-Config System (erledigt ✅)
- [x] **`gateway/modules/demoConfigs/`** — Modulares Demo-Config-System
- `_baseDemoConfig.py` — Abstrakte Basisklasse mit `load()` / `remove()`
- `__init__.py` — Auto-Discovery aller Config-Files im Ordner
- `investorDemo2026.py` — Investor-Demo Konfiguration:
- Mandant **HappyLife AG** (`happylife`): workspace (RAG fuer UC3), trustee(RMA), graphicalEditor, chatbot (inaktiv — UC3 nutzt Workspace), neutralization
- Mandant **Alpina Treuhand AG** (`alpina-treuhand`): workspace, trustee(RMA), graphicalEditor, neutralization
- User **Patrick Helvetia** (`p.motsch@poweron.swiss`): SysAdmin, Mitglied beider Mandanten
- RMA-Credentials aus `config.ini` (Demo_RMA_*)
- Billing, Neutralization-Config automatisch
- [x] **Admin UI** unter `/admin/demo-config` (SysAdmin-only)
- Listet alle verfuegbaren Demo-Configs
- Pro Config: "Load" + "Remove" Buttons
- API: `GET/POST /api/admin/demo-config`
- [x] **`gateway/demoData/`** — Ordnerstruktur fuer Testdaten (Files manuell bereitstellen)
- `invoices/`, `expenses/`, `knowledge-base/`
### Phase 1: Demo-Daten vorbereiten (Mo Vormittag)
- [ ] **RMA-Credentials** in `gateway/config.ini` eintragen (Demo_RMA_ApiBaseUrl, Demo_RMA_ClientName, Demo_RMA_ApiKey)
- [ ] **Demo-Config laden** via Admin UI → `/admin/demo-config` → "Load"
- [ ] **Demo-Testdaten** in `gateway/demoData/` bereitstellen:
- `invoices/` — 3 Muster-Rechnungen (PDF): Handwerker, Bueromaterial, Versicherung
- `expenses/` — 2 Spesenbelege (PDF): Reisekosten, Bewirtung
- `tenant-dossier.pdf` — Fiktives Mieterdossier fuer Neutralisierung
- `knowledge-base/` — 3-4 Firmen-Dokumente (Handbuch, FAQ, Prozessbeschreibung) fuer RAG
### Phase 2: Demo-Konfiguration pro Use Case (Mo Nachmittag)
#### UC1: Treuhand — Spesenverarbeitung
- [ ] **Trustee-Instanz konfigurieren** (Connector: RMA — Credentials via Demo-Config Bootstrap)
- [ ] **Graph-Editor Workflow erstellen/aktivieren:**
Trigger (manual) → SharePoint listFiles → Loop → downloadFile → extractFromFiles → processDocuments → syncToAccounting
(System-Template "Treuhand: PDF-Klassifizierung & Trustee-Import" als Basis nutzen)
- [ ] **SharePoint-Demo-Ordner** mit 3 Musterbelegen befüllen (oder lokaler Upload-Pfad)
- [ ] **Demo-Prompt** vorbereiten: "Verarbeite die Belege im Eingangsordner und erstelle die Buchungen"
- [ ] **Erwartetes Ergebnis dokumentieren:** Beleg → extrahierte Positionen → MWST-Code → Kontierung
#### UC2: Immobilien — Machbarkeitsstudie
- [ ] **Workspace-Instanz** mit RealEstate-Kontext konfigurieren
- [ ] **Demo-Prompt** vorbereiten: "Erstelle eine Machbarkeitsstudie für das Grundstück an der Musterstrasse 42, 8001 Zürich. Analysiere Zonierung, Baurecht und Nutzungspotential."
- [ ] **Agent-Tools sicherstellen:** `webSearch`, `readUrl`, `createChart` verfügbar
- [ ] **Fallback:** Vorbereitete Ergebnis-Screenshots falls Internet ausfällt
- [ ] **Erwartetes Ergebnis dokumentieren:** Automatische Datensammlung → BZO-Analyse → Zusammenfassung
#### UC3: Enterprise — AI Knowledge Workspace
> **Entscheidung:** UC3 nutzt den **AI Workspace** (nicht den Chatbot). Der Chatbot hat kein eigenes RAG-System
> (er arbeitet mit SQL + Tavily). Der Workspace hat vollstaendiges RAG: Upload → automatisches Indexing
> (Extraktion + Embeddings) → semantische Suche im Workspace-Chat via `buildAgentContext`.
- [ ] **Workspace-Instanz** in HappyLife AG verwenden (bereits via Bootstrap erstellt)
- [ ] **Knowledge-Base befuellen:** Im Workspace-Dashboard (`/mandates/<id>/workspace/<instanceId>/dashboard`)
die 4 Dokumente aus `gateway/demoData/knowledge-base/` hochladen (Drag & Drop oder + Button):
- `investor-summary.md`
- `2025-10-investor-detail.md`
- `platform-overview.html`
- `referenzen.html`
RAG-Indexing laeuft **automatisch** nach Upload (async Pipeline: Pre-Scan → Extraktion → Chunking → Embeddings).
Status pruefen unter **RAG Insights** (`/mandates/<id>/workspace/<instanceId>/rag-insights`).
- [ ] **Demo-Fragen vorbereiten** (im Workspace-Chat stellen, nicht im Chatbot):
- "Wie ist unser Reklamationsprozess?" (→ Antwort mit Quellenangabe)
- "Welche Fristen gelten fuer Nebenkostenabrechnungen?" (→ zeigt domaenenspezifisches Wissen)
- "Erstelle eine Zusammenfassung der Q1-Ergebnisse" (→ zeigt Analyse-Faehigkeit)
- [ ] **Neutralisierung aktivieren** und in einer Frage live demonstrieren
- [ ] **Erwartetes Ergebnis dokumentieren:** Frage → Antwort mit Quellenangabe + Audit-Trail
#### UC5: Integrationen — Architektur-Visualisierung (erledigt ✅)
- [x] **Systemseite `page.system.integrations`** implementiert
- Route: `/integrations`, Navigation in `mainSystem.py`, Icon `FaProjectDiagram`
- [x] **`IntegrationsOverviewPage.tsx`** mit 3-Schichten-Layout (Daten, PORTA, Organisation)
- [x] **API `GET /api/system/integrations-overview`** aggregiert alle Daten
- [ ] **Demo-Daten sicherstellen:** Mindestens 2 Connections, 2 System-Connectors, 3 Workflows, 2 Mandanten
#### UC4: Sprach-Deployment — Neue Sprache in 5 Minuten
- [ ] **Sicherstellen:** i18n Admin-UI erreichbar unter `/admin/languages`
- [ ] **Bestehende Sprachen pruefen:** DE, EN, FR vorhanden und vollstaendig
- [ ] **Demo-Sprache vorbereiten:** Spanisch (es) NICHT vorinstalliert lassen — wird live angelegt
- [ ] **AI-Uebersetzungs-Pipeline testen:** `POST /api/i18n/sets` mit `code: "es"` → async Translation → Ergebnis in <5 Min
- [ ] **Sprachwechsel im UI testen:** Nach Anlage Sprachselektor zeigt "es" UI komplett auf Spanisch
- [ ] **Fallback:** Falls AI-Translation zu lang dauert Sprache vorher anlegen, live nur den Wechsel zeigen
- [ ] **Billing sicherstellen:** Demo-Mandant hat genuegend Credits fuer AI-Batch-Translation
#### Querschnitt: Neutralisierung
- [ ] **Demo-Flow vorbereiten:**
1. Fiktives Mieterdossier (PDF) im Workspace öffnen
2. Neutralisierung aktivieren PII wird zu Platzhaltern
3. AI-Analyse auf neutralisierten Daten ausführen
4. Re-Personalisierung zeigen (Platzhalter Originaldaten)
- [ ] **NeutralizationPanel** im Frontend vorbereiten (Mappings sichtbar)
### Phase 3: Drehbuch der Demo (Mo Nachmittag)
- [ ] **Detailliertes Drehbuch erstellen** (siehe unten, Abschnitt "Demo-Drehbuch")
- [ ] **Talking Points** für jede Szene (was sagen, was zeigen, was klicken)
- [ ] **Timing-Markers** (Minute 0-20) mit Puffer
### Phase 4: Testdrehbuch — automatisiertes Testing (Mo Abend)
- [ ] **Test-Suite `gateway/tests/demo/`** erstellen
- [ ] **`conftest.py`** mit Demo-Fixtures (Mandant, User, Feature-Instanzen)
- [ ] **`test_demo_uc1_trustee.py`** Trustee-Pipeline end-to-end
- [ ] **`test_demo_uc2_realestate.py`** Agent-basierte Machbarkeitsstudie
- [ ] **`test_demo_uc3_chatbot.py`** Knowledge-Chatbot mit RAG
- [ ] **`test_demo_uc4_i18n.py`** Sprach-Deployment + AI-Translation + UI-Wechsel
- [ ] **`test_demo_neutralization.py`** Neutralisierung roundtrip
- [ ] **`test_demo_bootstrap.py`** Bootstrap idempotent + Demo-Zustand korrekt
- [ ] **Alle Tests grün** auf INT-Umgebung
### Phase 5: Generalprobe (Di Vormittag)
- [ ] **Komplette Demo 1x durchspielen** auf INT mit echtem Browser
- [ ] **Timing messen** muss in 20 Min passen (Ziel: 18 Min mit Puffer)
- [ ] **Edge Cases testen:** Was wenn LLM langsam? Was wenn SharePoint-Timeout?
- [ ] **Backup-Plan:** Browser-Tab mit vorbereiteten Ergebnissen für jeden UC
---
## Demo-Drehbuch (20 Minuten)
### Szene 0: Setup (vor der Demo, nicht sichtbar)
- Demo-Config geladen via Admin UI (`/admin/demo-config` "Investor Demo April 2026" Load)
- Browser auf: PORTA Dashboard (eingeloggt als `p.motsch@poweron.swiss` / `patrick.helvetia`)
- Mandanten: HappyLife AG + Alpina Treuhand AG
- Tabs vorbereitet: Dashboard, Workspace (mit indexierten Knowledge-Docs), Graph-Editor, Trustee
- SharePoint-Demo-Ordner mit Belegen befuellt
- Neutralisierung aktiviert
- Knowledge-Base indexiert
### Szene 1: Intro & Integrationslandschaft (0:00 3:00)
**Was zeigen:** PORTA Dashboard Integrationsseite die Architektur auf einen Blick
**Talking Points:**
- "Das ist PORTA unsere AI Execution Layer. Ein Login, alle AI-Workflows."
- "Jeder Mandant hat seine eigenen Features, Daten, Berechtigungen komplett getrennt."
**Klick-Sequenz:**
1. Dashboard Mandanten-Übersicht
2. Feature-Store aktivierte Features zeigen (Treuhand, Chatbot, Neutralisierung)
3. **Integrationen öffnen** "Hier sehen Sie die komplette Architektur auf einen Blick."
4. **Schicht für Schicht erklären:**
- Unten: "Das sind die Datenquellen Microsoft, Google, Abacus, Bexio. Die stecken wir an wie Stecker."
- Mitte: "Hier laufen die Workflows visuell gebaut, AI-gesteuert. System-Templates und individuelle."
- Oben: "Die Services pro Mandant jeder bekommt nur, was er braucht."
5. "50+ Konnektoren, keine Seat-Lizenzen, Bezahlung pro Workflow-Ausführung."
6. Überleitung: "Schauen wir uns an, wie das konkret funktioniert."
### Szene 2: UC1 — Treuhand Spesenverarbeitung (3:00 9:00)
**Was zeigen:** Beleg OCR KI-Kontierung Export in Sekunden statt Minuten
**Talking Points:**
- "Treuhänder verbringen 5-15 Min pro Beleg mit manueller Erfassung."
- "PowerON automatisiert das: Beleg hochladen oder aus SharePoint holen, KI extrahiert und kontiert."
**Klick-Sequenz:**
1. Graph-Editor öffnen Demo-Workflow "Treuhand: Belegverarbeitung" zeigen
2. "Das ist ein visueller Workflow kein Code nötig. SharePoint Loop Extraktion Kontierung."
3. Workflow manuell starten Live-Ausführung zeigen
4. Trustee-Bereich öffnen extrahierte Positionen zeigen (Beleg, MWST, Konto)
5. "Das lief gerade in Sekunden. Vorher: 15 Minuten pro Beleg. Das ist 98% Zeiteinsparung."
6. Audit-Trail zeigen: "Jeder Schritt ist nachvollziehbar für Revision und Compliance."
**Transition:** "Und das Beste: Die Kundendaten verlassen nie die Schweiz. Schauen wir uns das an."
### Szene 3: Neutralisierung live (9:00 12:00)
**Was zeigen:** PII-Schutz in Echtzeit Daten werden vor dem LLM-Call anonymisiert
**Talking Points:**
- "Treuhänder, Anwälte, Gesundheitssektor die können keine Kundendaten an OpenAI senden."
- "PowerON löst das architektonisch: PII wird entfernt, BEVOR Daten zum Modell gehen."
**Klick-Sequenz:**
1. Workspace öffnen Mieterdossier (PDF) hochladen
2. Neutralisierungs-Panel zeigen: "Hier sehen Sie die Mappings jeder Name, jede Adresse wird durch Platzhalter ersetzt."
3. AI-Analyse starten: "Analysiere das Mieterdossier und erstelle eine Risikobewertung"
4. Ergebnis zeigen: Analyse ist inhaltlich korrekt, aber keine echten Namen im LLM-Call
5. Re-Personalisierung: "Im Ergebnis stehen wieder die echten Namen der Platzhalter-Roundtrip ist transparent."
6. "Das ist keine opt-in Checkbox. Das ist Architektur. PII kann physisch nicht zum Modell-Anbieter gelangen."
**Transition:** "Jetzt zeigen wir, wie die KI auch ausserhalb der Treuhand arbeitet."
### Szene 4: UC2 — Immobilien Machbarkeitsstudie (12:00 15:00)
**Was zeigen:** Grundstück automatische Recherche Analyse in Minuten statt Stunden
**Talking Points:**
- "Immobilienfirmen recherchieren 2-4 Stunden pro Grundstück. Manuell, über verschiedene Quellen."
- "PowerON automatisiert die Recherche und erstellt eine Machbarkeitsstudie."
**Klick-Sequenz:**
1. Workspace öffnen Prompt eingeben: "Erstelle eine Machbarkeitsstudie für Musterstrasse 42, 8001 Zürich"
2. Agent arbeitet live: "Der Agent sucht jetzt automatisch in öffentlichen Quellen swisstopo, Zonenpläne, ÖREB."
3. Ergebnis zeigen: Zusammenfassung mit Zonierung, Baurecht, Nutzungspotential
4. Chart zeigen (falls generiert): Flächenaufteilung, Nutzungsmix
5. "6 Minuten statt 4 Stunden. 92% Zeiteinsparung. Und das funktioniert für jedes Grundstück in der Schweiz."
**Transition:** "Letztes Beispiel wie die KI als Firmen-Wissensbasis funktioniert."
### Szene 5: UC3 — AI Knowledge Workspace (15:00 17:00)
**Was zeigen:** Firmenwissen sofort abrufbar mit Quellenangabe, alles im AI Workspace
**Talking Points:**
- "Informationssilos sind der Produktivitätskiller Nr. 1. ERP, CRM, SharePoint Daten überall."
- "PowerON gibt ein einheitliches Interface auf alle Datenquellen."
- "Dokumente hochladen der Workspace indexiert automatisch. Fragen stellen sofortige Antwort mit Quelle."
**Klick-Sequenz:**
1. Workspace oeffnen (HappyLife AG) Dokumente sind bereits hochgeladen und indexiert
2. Optional: RAG Insights zeigen "Hier sehen Sie den Index-Status alle Dokumente sind verarbeitet."
3. Im Workspace-Chat fragen: "Wie ist unser Reklamationsprozess?"
4. Antwort zeigen: Strukturiert, mit Quellenangabe (Dokument + Abschnitt)
5. Follow-up: "Welche Fristen gelten fuer Nebenkostenabrechnungen?"
6. Antwort mit Rechtsgrundlage zeigen
7. "Sofortige Antworten statt 10 Minuten Suche. Rollenbasierter Zugriff jeder sieht nur, was er sehen darf."
### Szene 6: UC4 — Sprach-Deployment live (17:00 20:00)
**Was zeigen:** Neue Sprache in Minuten AI uebersetzt das komplette UI automatisch
**Talking Points:**
- "European customers need multi-language support. German, French, English and tomorrow maybe Spanish or Portuguese."
- "With PowerON you create a new language, AI translates all UI texts, and in 5 minutes the system is fully available in the new language. No code change, no redeploy."
- "This is not Google Translate. The AI understands context 'Open' as status vs. 'Open' as action is translated correctly."
**Klick-Sequenz:**
1. Administration System UI-Sprachen oeffnen bestehende Sprachen zeigen (DE, EN, FR)
2. "Neue Sprache anlegen" klicken **Spanisch** (es) waehlen
3. AI-Uebersetzung startet Fortschritt zeigen (Batch-Pipeline)
4. Sprache wechseln komplettes UI ist sofort auf Spanisch
5. "That just took 5 minutes. For an entire enterprise platform. No developer needed."
6. Optional: "Update All" zeigen scannt die Codebase, synchronisiert neue Keys, uebersetzt automatisch
**Transition:** "Das war PowerON PORTA zurück zu den Zahlen."
### Szene 7: Closing (im Keynote-Deck, nicht in PORTA)
- Zurück zu den Keynote-Slides: Pricing, Roadmap, Next Steps
- CTA für Investoren / Treuhänder
---
## Testdrehbuch (automatisiert)
### Architektur
```
gateway/tests/demo/
├── conftest.py # Demo-Fixtures, DB-Setup
├── test_demo_bootstrap.py # Bootstrap idempotent, Demo-Zustand korrekt
├── test_demo_uc1_trustee.py # UC1: Beleg → Extraktion → Kontierung
├── test_demo_uc2_realestate.py # UC2: Agent → Web-Recherche → Analyse
├── test_demo_uc3_chatbot.py # UC3: Frage → RAG → Antwort + Quelle
├── test_demo_uc4_i18n.py # UC4: Sprache anlegen → AI-Translation → UI-Wechsel
├── test_demo_neutralization.py # Neutralisierung: PII → Platzhalter → Roundtrip
└── README.md # Ausführungshinweise
```
### Test-Szenarien (Given-When-Then)
#### T-BOOT: Bootstrap
```
Given keine Demo-Daten in der DB
When bootstrapDemoEnvironment(db) ausgeführt wird
Then Demo-Mandant existiert mit allen Feature-Instanzen
AND Demo-User existiert mit korrekten Rollen
AND Demo-Testdaten sind im Workspace geladen
AND Neutralisierung ist aktiviert
AND Graph-Editor hat Demo-Workflows
Given Demo-Daten bereits vorhanden
When bootstrapDemoEnvironment(db) erneut ausgeführt wird
Then kein Fehler (idempotent)
AND Zustand ist identisch
```
#### T-UC1: Treuhand Spesenverarbeitung
```
Given Demo-Mandant mit Trustee-Instanz und 3 Musterbelegen im Workspace
When Graph-Editor Workflow "Treuhand: Belegverarbeitung" gestartet wird
Then alle 3 Belege werden extrahiert
AND jeder Beleg hat mindestens 1 extrahierte Position
AND jede Position hat: Betrag, MWST-Satz, Konto-Vorschlag
AND Workflow-Status = completed
AND Audit-Trail enthält alle Schritte
Given extrahierte Positionen vorhanden
When syncToAccounting aufgerufen wird
Then Positionen werden an Connector übergeben (Mock: Bexio-Sandbox)
AND Sync-Status = "synced" für alle Positionen
```
#### T-UC2: Immobilien Machbarkeitsstudie
```
Given Demo-Mandant mit Workspace-Instanz
When Agent-Prompt "Erstelle Machbarkeitsstudie für Musterstrasse 42, 8001 Zürich" ausgeführt wird
Then Agent nutzt webSearch und/oder readUrl Tools
AND Ergebnis enthält: Zonierung, Baurecht-Infos, Flächenanalyse
AND Ergebnis ist strukturiert (Abschnitte, ggf. Chart)
AND Antwortzeit < 120 Sekunden
```
#### T-UC3: AI Knowledge Workspace
```
Given Demo-Mandant mit Workspace-Instanz und indexierter Knowledge-Base (3+ Dokumente)
AND Dokumente via Workspace-Dashboard hochgeladen (auto-indexiert via _autoIndexFile Pipeline)
When im Workspace-Chat "Wie ist unser Reklamationsprozess?" gestellt wird
Then Antwort referenziert mindestens 1 Quell-Dokument (via buildAgentContext → semanticSearch)
AND Antwort ist inhaltlich korrekt (enthält Prozessschritte)
AND Antwortzeit < 15 Sekunden
Given Workspace mit RAG-Index
When Frage zu Thema ausserhalb der Knowledge-Base gestellt wird
Then Antwort zeigt an, dass keine relevante Quelle gefunden wurde (kein Halluzinieren)
```
#### T-UC4: Sprach-Deployment
```
Given Demo-Mandant mit i18n Admin-Zugriff und bestehenden Sprachen DE, EN, FR
AND Sprache "es" (Spanisch) existiert NICHT
When POST /api/i18n/sets mit code "es" ausgefuehrt wird
Then AI-Batch-Translation startet
AND nach Abschluss enthaelt das es-Set alle Keys aus dem de-Master-Set
AND Uebersetzungen sind kontextuell korrekt (Stichprobe: "Speichern" -> "Guardar", "Abbrechen" -> "Cancelar")
AND Gesamtdauer < 5 Minuten
Given Sprache "es" vollstaendig uebersetzt
When User die Sprache im UI auf "es" wechselt
Then alle UI-Elemente zeigen spanische Texte
AND kein Fallback auf deutsche Keys sichtbar (ausser bei fehlenden Uebersetzungen)
```
#### T-NEU: Neutralisierung
```
Given Demo-Mandant mit aktivierter Neutralisierung
AND Mieterdossier-PDF mit PII (Name: "Hans Muster", Adresse: "Bahnhofstrasse 1")
When PDF hochgeladen und Neutralisierung ausgeführt wird
Then neutralisierter Text enthält Platzhalter statt "Hans Muster"
AND Mapping-Tabelle enthält Zuordnung Platzhalter → Original
AND resolveText() stellt Originaldaten korrekt wieder her
Given neutralisierter Text
When AI-Analyse "Erstelle Risikobewertung" ausgeführt wird
Then LLM erhält nur neutralisierten Text (kein PII im Request)
AND Ergebnis nach Re-Personalisierung enthält "Hans Muster"
```
### Ausführung
```bash
cd gateway/
# Alle Demo-Tests:
pytest tests/demo/ -v -m "not expensive"
# Nur Bootstrap:
pytest tests/demo/test_demo_bootstrap.py -v
# Nur UC1:
pytest tests/demo/test_demo_uc1_trustee.py -v
# Mit Live-AI-Calls (expensive, für Generalprobe):
pytest tests/demo/ -v -m ""
```
---
## Akzeptanzkriterien
| # | Kriterium (Given-When-Then) | Prio |
|---|---------------------------|------|
| 1 | Given Demo-Mandant, When Bootstrap ausgeführt wird, Then alle Features aktiv + Testdaten geladen + Neutralisierung an | must |
| 2 | Given 3 Musterbelege, When Trustee-Workflow läuft, Then Belege extrahiert + kontiert + Audit-Trail vorhanden | must |
| 3 | Given Workspace mit Agent, When Machbarkeitsstudie-Prompt, Then strukturierte Analyse mit Quellen in <2 Min | must |
| 4 | Given AI Workspace mit Knowledge-Base (auto-indexiert), When Frage im Workspace-Chat gestellt, Then Antwort mit Quellenangabe in <15s | must |
| 5 | Given Mieterdossier-PDF, When Neutralisierung aktiv + AI-Analyse, Then PII nie an LLM gesendet + Re-Personalisierung korrekt | must |
| 6 | Given i18n Admin-UI, When neue Sprache "es" angelegt wird, Then AI uebersetzt alle Keys in <5 Min und UI zeigt Spanisch nach Sprachwechsel | must |
| 7 | Given komplettes Drehbuch, When Demo komplett durchgespielt, Then Timing 20 Min mit Puffer | must |
| 8 | Given pytest-Suite, When `pytest tests/demo/` ausgeführt, Then alle Tests grün (ohne expensive: Bootstrap + Struktur; mit expensive: Live AI) | should |
## Testplan
| ID | AC | Art | Automatisiert | Repo-Pfad | Status |
|----|----|-----|--------------|-----------|--------|
| T1 | 1 | integration | ja | gateway/tests/demo/test_demo_bootstrap.py | pending |
| T2 | 2 | e2e | ja (teilweise, AI=expensive) | gateway/tests/demo/test_demo_uc1_trustee.py | pending |
| T3 | 3 | e2e | ja (expensive) | gateway/tests/demo/test_demo_uc2_realestate.py | pending |
| T4 | 4 | e2e | ja (expensive) | gateway/tests/demo/test_demo_uc3_chatbot.py (Workspace-RAG, nicht Chatbot) | pending |
| T5 | 5 | e2e | ja (expensive) | gateway/tests/demo/test_demo_neutralization.py | pending |
| T6 | 6 | e2e | ja (expensive) | gateway/tests/demo/test_demo_uc4_i18n.py | pending |
| T7 | 7 | manual | nein | (Generalprobe Di Morgen) | pending |
| T8 | 8 | ci | ja | `pytest tests/demo/ -v` | pending |
## Links
- Keynote Use Cases: `local/notes/use-cases-DEMO-TUE.md`
- Customer Demo Enablement: `c-work/1-plan/2026-04-customer-demo-enablement.md`
- Trustee Tooling Plan: `c-work/1-plan/2026-04-customer-trustee-tooling-and-demo-prep.md`
- Bootstrap (bestehend): `gateway/modules/interfaces/interfaceBootstrap.py`
- System-Templates (Treuhand): `interfaceBootstrap._buildSystemTemplates()`
- Workflow-Engine: `b-reference/gateway/workflow.md`
- Neutralisierung: `b-reference/platform/neutralization.md`
- Testing-Strategie: `d-guides/testing-strategy.md`
- Trustee-Feature: `gateway/modules/features/trustee/`
- RealEstate-Feature: `gateway/modules/features/realEstate/`
- Chatbot-Feature: `gateway/modules/features/chatbot/` (nicht fuer UC3 UC3 nutzt Workspace-RAG)
- Neutralisierung-Feature: `gateway/modules/features/neutralization/`
- Graph-Editor: `gateway/modules/features/graphicalEditor/`
## Abschluss
- [ ] b-reference/ aktualisiert (keine neuen Features, nur Demo-Config)
- [ ] TOPICS.md aktualisiert (falls neues Thema)
- [ ] Dieses Dokument z-archive/ verschoben