27 KiB
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:
- Funktionierendes Produkt — kein Mockup, echte Datenverarbeitung
- Marktdifferenzierung — warum nicht ChatGPT/Copilot/Langdock?
- Wiederholbarkeit — keine Einmal-Demo, sondern konfigurierbare Workflows
- Skalierbarkeit — Multi-Tenant, Multi-LLM, Usage-Based
- Internationalisierung — neue Sprache in 5 Min, AI-übersetzt, kein Redeploy
Treuhänder wollen sehen:
- Zeitersparnis — vorher 5–15 Min/Beleg → nachher Sekunden
- Datenschutz — keine Kundendaten an OpenAI/Google
- Integration — Abacus/Bexio/SharePoint ohne Systemwechsel
- 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 übersetzt → 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
demodas 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/bootstrap/bootstrapDemo.py(neu),modules/system/mainSystem.py(Nav-Eintrag),features/trustee/,features/realestate/,features/chatbot/,features/neutralization/,features/workspace/,features/graphicalEditor/ - Frontend:
pages/system/IntegrationsOverviewPage.tsx(neu),config/pageRegistry.tsx(Eintrag) - DB-Migration: nein (nur Daten-Seeding)
- Andere Komponenten: Testdaten (PDF, Excel, CSV), 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 1: Bootstrap-Modul demo (Mo Vormittag)
-
gateway/modules/bootstrap/bootstrapDemo.pyerstellen- Funktion
bootstrapDemoEnvironment(db)— idempotent, aufgerufen via CLI-Flag oder API - Erstellt Demo-Mandant "PowerON Demo" mit allen nötigen Feature-Instanzen
- Seeded Demo-User:
demo@poweron.ch(Admin),treuhänder@demo.ch(Rolle: Mandant) - Aktiviert Features: workspace, trustee, realestate, chatbot, neutralization, graphicalEditor
- Lädt Demo-Testdaten (PDFs, Excel) in den Workspace
- Konfiguriert Neutralisierung (enabled=true, Demo-Mappings)
- Erstellt Graph-Editor Demo-Workflows aus System-Templates
- Setzt Demo-Billing (Trial-Modus mit genügend Credits)
- Funktion
-
CLI-Einstiegspunkt in
app.pyoder separates Scriptscripts/bootstrapDemo.pypython -m scripts.bootstrapDemo --env int --reset--resetlöscht bestehenden Demo-Mandant und baut neu auf--envwählt Zielumgebung (local, int)
-
Demo-Testdaten vorbereiten (Ordner
gateway/demoData/)invoices/— 3 Muster-Rechnungen (PDF): Handwerker, Büromaterial, Versicherungexpenses/— 2 Spesenbelege (PDF): Reisekosten, Bewirtungtenant-dossier.pdf— Fiktives Mieterdossier (Name, Adresse, Mietzins) für Neutralisierungknowledge-base/— 3-4 Firmen-Dokumente (Handbuch, FAQ, Prozessbeschreibung) für RAGbudget-2026.xlsx— Budget-Soll-Werte für Trustee-Vergleich
Phase 2: Demo-Konfiguration pro Use Case (Mo Nachmittag)
UC1: Treuhand — Spesenverarbeitung
- Trustee-Instanz konfigurieren (Connector: Bexio-Sandbox oder Mock)
- 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,createChartverfü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 (neue Seite)
-
Neue Systemseite
page.system.integrationserstellen- Route:
/integrations(unter "Meine Sicht" / System-Block) - Navigation-Eintrag in
mainSystem.py→NAVIGATION_SECTIONS - Page-Registry-Eintrag in
pageRegistry.tsx→ Icon:FaProjectDiagramoderFaCubes
- Route:
-
React-Komponente
IntegrationsOverviewPage.tsxbauen- 3-Schichten-Layout (vertikal, von unten nach oben):
- Schicht 1 (unten): Datenquellen
- Box pro OAuth-Connection (Microsoft-Icon, Google-Icon) → persönliche Daten
- Box pro System-Connector (Abacus-Instanz, Bexio-Instanz, RMA, SharePoint, etc.)
- Daten kommen von
GET /api/connections+ Feature-Instanz-Configs
- Schicht 2 (Mitte): PORTA (PowerON)
- Zentrale Box mit PowerON-Logo
- Darin: Sub-Boxes für jeden aktiven Workflow (System-Templates + Custom-Workflows)
- Daten kommen von
GET /api/workflows(Graph-Editor Workflows)
- Schicht 3 (oben): Services / Mandanten
- Box pro Mandant mit den aktivierten Features/Services darin
- Daten kommen von Navigation-API (
GET /api/navigation→ dynamic block)
- Verbindungslinien zwischen den Schichten (CSS/SVG, kein Canvas)
- Rendering-Technologie: Custom React mit CSS Grid +
framer-motionAnimationen- Kein Mermaid (zu statisch, schwer zu stylen)
- Kein xyflow (Overkill, neue Dependency)
- Bestehende Libs nutzen:
react-icons(Connector-Icons),framer-motion(Hover/Enter-Animationen)
-
API-Endpoint
GET /api/system/integrations-overview(optional)- Aggregiert: Connections, Feature-Instanzen, Workflows, Mandanten
- Oder: Frontend aggregiert aus bestehenden APIs (einfacher, weniger Backend-Aufwand)
-
Demo-Daten sicherstellen: Mindestens 2 Connections (Microsoft, Google), 2 System-Connectors (Abacus, Bexio), 3 Workflows, 2 Mandanten mit Features
UC4: Sprach-Deployment — Neue Sprache in 5 Minuten
- Sicherstellen: i18n Admin-UI erreichbar unter
/admin/languages - Bestehende Sprachen prüfen: DE, EN, FR vorhanden und vollständig
- Demo-Sprache vorbereiten: Italienisch (it) NICHT vorinstalliert lassen — wird live angelegt
- AI-Übersetzungs-Pipeline testen:
POST /api/i18n/setsmitcode: "it"→ async Translation → Ergebnis in <5 Min - Sprachwechsel im UI testen: Nach Anlage → Sprachselektor zeigt "it" → UI komplett auf Italienisch
- Fallback: Falls AI-Translation zu lang dauert → Sprache vorher anlegen, live nur den Wechsel zeigen
- Billing sicherstellen: Demo-Mandant hat genügend Credits für AI-Batch-Translation
Querschnitt: Neutralisierung
- Demo-Flow vorbereiten:
- Fiktives Mieterdossier (PDF) im Workspace öffnen
- Neutralisierung aktivieren → PII wird zu Platzhaltern
- AI-Analyse auf neutralisierten Daten ausführen
- 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.pymit Demo-Fixtures (Mandant, User, Feature-Instanzen)test_demo_uc1_trustee.py— Trustee-Pipeline end-to-endtest_demo_uc2_realestate.py— Agent-basierte Machbarkeitsstudietest_demo_uc3_chatbot.py— Knowledge-Chatbot mit RAGtest_demo_uc4_i18n.py— Sprach-Deployment + AI-Translation + UI-Wechseltest_demo_neutralization.py— Neutralisierung roundtriptest_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)
- Browser auf: PORTA Dashboard (Demo-Mandant eingeloggt als
demo@poweron.ch) - Tabs vorbereitet: Dashboard, Workspace, Graph-Editor, Trustee, Chatbot
- SharePoint-Demo-Ordner mit Belegen befüllt
- 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:
- Dashboard → Mandanten-Übersicht
- Feature-Store → aktivierte Features zeigen (Treuhand, Chatbot, Neutralisierung)
- Integrationen öffnen → "Hier sehen Sie die komplette Architektur auf einen Blick."
- 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."
- "50+ Konnektoren, keine Seat-Lizenzen, Bezahlung pro Workflow-Ausführung."
- → Ü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:
- Graph-Editor öffnen → Demo-Workflow "Treuhand: Belegverarbeitung" zeigen
- "Das ist ein visueller Workflow — kein Code nötig. SharePoint → Loop → Extraktion → Kontierung."
- Workflow manuell starten → Live-Ausführung zeigen
- Trustee-Bereich öffnen → extrahierte Positionen zeigen (Beleg, MWST, Konto)
- "Das lief gerade in Sekunden. Vorher: 15 Minuten pro Beleg. Das ist 98% Zeiteinsparung."
- 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:
- Workspace öffnen → Mieterdossier (PDF) hochladen
- Neutralisierungs-Panel zeigen: "Hier sehen Sie die Mappings — jeder Name, jede Adresse wird durch Platzhalter ersetzt."
- AI-Analyse starten: "Analysiere das Mieterdossier und erstelle eine Risikobewertung"
- Ergebnis zeigen: Analyse ist inhaltlich korrekt, aber keine echten Namen im LLM-Call
- Re-Personalisierung: "Im Ergebnis stehen wieder die echten Namen — der Platzhalter-Roundtrip ist transparent."
- "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:
- Workspace öffnen → Prompt eingeben: "Erstelle eine Machbarkeitsstudie für Musterstrasse 42, 8001 Zürich"
- Agent arbeitet live: "Der Agent sucht jetzt automatisch in öffentlichen Quellen — swisstopo, Zonenpläne, ÖREB."
- Ergebnis zeigen: Zusammenfassung mit Zonierung, Baurecht, Nutzungspotential
- Chart zeigen (falls generiert): Flächenaufteilung, Nutzungsmix
- "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:
- Chatbot öffnen → "Wie ist unser Reklamationsprozess?"
- Antwort zeigen: Strukturiert, mit Quellenangabe (Dokument + Seite)
- Follow-up: "Welche Fristen gelten für Nebenkostenabrechnungen?"
- Antwort mit Rechtsgrundlage zeigen
- "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 übersetzt das komplette UI automatisch Talking Points:
- "Europäische Kunden brauchen Mehrsprachigkeit. Deutsch, Französisch, Englisch — und morgen vielleicht Italienisch oder Portugiesisch."
- "Bei PowerON legen Sie eine neue Sprache an, die AI übersetzt alle UI-Texte, und in 5 Minuten ist das System komplett in der neuen Sprache verfügbar. Ohne Code-Änderung, ohne Redeploy."
- "Das ist kein Google Translate. Die AI versteht den Kontext — 'Offen' als Status vs. 'Offen' als Zustand wird korrekt übersetzt."
Klick-Sequenz:
- Administration → System → UI-Sprachen öffnen → bestehende Sprachen zeigen (DE, EN, FR)
- "Neue Sprache anlegen" klicken → z.B. Italienisch (it) wählen
- AI-Übersetzung startet → Fortschritt zeigen (Batch-Pipeline)
- Sprache wechseln → komplettes UI ist sofort auf Italienisch
- "Das hat gerade 5 Minuten gedauert. Für eine komplette Enterprise-Plattform. Kein Entwickler nötig."
- Optional: "Update All" zeigen — scannt die Codebase, synchronisiert neue Keys, übersetzt 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 "it" (Italienisch) existiert NICHT
When POST /api/i18n/sets mit code "it" ausgeführt wird
Then AI-Batch-Translation startet
AND nach Abschluss enthält das it-Set alle Keys aus dem de-Master-Set
AND Übersetzungen sind kontextuell korrekt (Stichprobe: "Speichern" → "Salva", "Abbrechen" → "Annulla")
AND Gesamtdauer < 5 Minuten
Given Sprache "it" vollständig übersetzt
When User die Sprache im UI auf "it" wechselt
Then alle UI-Elemente zeigen italienische Texte
AND kein Fallback auf deutsche Keys sichtbar (ausser bei fehlenden Übersetzungen)
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
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 "it" angelegt wird, Then AI übersetzt alle Keys in <5 Min und UI zeigt Italienisch 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