# 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 1–3 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 5–15 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 Chatbot** | 4 Min | Frage stellen → sofortige Antwort mit Quellenangabe | Chatbot-Feature, RAG, 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/chatbot/`, `features/neutralization/`, `features/workspace/`, `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 | --- ## 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: Knowledge Chatbot → zeigt RAG + Enterprise-Readiness - 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, trustee(RMA), graphicalEditor, chatbot, 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 — Knowledge Chatbot - [ ] **Chatbot-Instanz konfigurieren** mit Demo-Datenbank (oder Workspace-RAG) - [ ] **Knowledge-Base befüllen:** 3-4 Dokumente hochladen + RAG-Index aufbauen - [ ] **Demo-Fragen vorbereiten:** - "Wie ist unser Reklamationsprozess?" (→ Antwort mit Quellenangabe) - "Welche Fristen gelten für Nebenkostenabrechnungen?" (→ zeigt domänenspezifisches Wissen) - "Erstelle eine Zusammenfassung der Q1-Ergebnisse" (→ zeigt Analyse-Fähigkeit) - [ ] **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, Graph-Editor, Trustee, Chatbot - 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 — Knowledge Chatbot (15:00 – 17:00) **Was zeigen:** Firmenwissen sofort abrufbar — mit Quellenangabe **Talking Points:** - "Informationssilos sind der Produktivitätskiller Nr. 1. ERP, CRM, SharePoint — Daten überall." - "PowerON gibt ein einheitliches Interface auf alle Datenquellen." **Klick-Sequenz:** 1. Chatbot öffnen → "Wie ist unser Reklamationsprozess?" 2. Antwort zeigen: Strukturiert, mit Quellenangabe (Dokument + Seite) 3. Follow-up: "Welche Fristen gelten für Nebenkostenabrechnungen?" 4. Antwort mit Rechtsgrundlage zeigen 5. "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: Knowledge Chatbot ``` Given Demo-Mandant mit Chatbot-Instanz und indexierter Knowledge-Base (3+ Dokumente) When Frage "Wie ist unser Reklamationsprozess?" gestellt wird Then Antwort referenziert mindestens 1 Quell-Dokument AND Antwort ist inhaltlich korrekt (enthält Prozessschritte) AND Antwortzeit < 15 Sekunden Given Chatbot 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 Chatbot mit Knowledge-Base, When Frage 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 | 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/` - 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