wiki/c-work/1-plan/2026-04-demo2-merged-customer-trustee-plan.md

20 KiB
Raw Blame History

Demo2 — Merged Plan: Customer Demo Enablement + Trustee Tooling

Beschreibung und Kontext

Zusammenführung der beiden Pläne:

  • Customer Demo Enablement (Bling, PWG, Quid/ServiceHunter) — Analyse-Use-Cases, Prompt-Templates, CommCoach, Neutralisierung
  • Trustee Tooling Overhaul & PWG Demo Preparation — Agent-Tools, Graph-Editor Nodes, Performance, Workflow

Drei potenzielle Kunden haben konkrete Use Cases formuliert. Parallel wurde das Trustee-Tooling grundlegend überarbeitet. Dieses Dokument konsolidiert beide Pläne und zeigt den aktuellen Umsetzungsstand gegen die Codebase.

Kunden:

Kunde Branche Hauptinteresse Status
Bling (Kevin, Julian, Silvan) Treuhandbüro Belegverarbeitung, Budget, Dashboards, Mandantenmanagement Trial geplant
PWG (Markus Brütsch) Stiftung (Immobilien/Wohnen, 200+ Liegenschaften) Belegverarbeitung Abacus, KI-Arbeitsplatz, Coaching, Neutralisierung Workshop 16.04.2026
Quid/ServiceHunter (David Christen) SaaS/Dienstleistung KPI-Dashboard, Zeiterfassung, Prognosen, Konsolidierung Follow-up geplant

Abhängigkeiten:

  • UI-Enhancements: c-work/1-plan/2026-04-porta-ui-enhancements-team-meeting.md
  • INT-Stabilität: c-work/1-plan/2026-04-gateway-int-stability-and-bugfixes.md
  • Automation Unification (done): c-work/3-validate/2026-04-automation-unification.md

Codebase-Abgleich: Was ist bereits umgesetzt?

Legende

Symbol Bedeutung
done Im Code vorhanden und funktional
🔧 teilweise Grundstruktur vorhanden, Anpassung/Ergänzung nötig
offen Noch nicht umgesetzt

A. Trustee Tooling (aus tooling-plan)

# Item Status Evidenz in Codebase
A1 refreshTrusteeData / trustee.refreshAccountingData Action done workflows/methods/methodTrustee/actions/refreshAccountingData.py — async Action, prüft lastSyncAt, triggert AccountingDataSync, cleart Feature-Query-Cache
A2 aggregateTable Tool im Sub-Agent done serviceAgent/featureDataAgent.py (Zeilen ~186231) + featureDataProvider.py — SUM/COUNT/AVG/MIN/MAX mit GROUP BY
A3 Kategorie trustee in nodeRegistry.py done graphicalEditor/nodeRegistry.py{"id": "trustee", "label": "Treuhand"} in categories-Liste
A4 Node trustee.refreshAccountingData done graphicalEditor/nodeDefinitions/trustee.py — erster Node in TRUSTEE_NODES, Ports + Parameter korrekt
A5 Toolbox trustee in toolboxRegistry.py done serviceAgent/toolboxRegistry.pyid="trustee", Label "Trustee / Accounting", Tool trustee_refreshAccountingData
A6 DB-Connection-Pooling done serviceAgent/coreTools/_featureSubAgentTools.py_featureDbConnPool Dict, _getOrCreateFeatureDbConnector()
A7 Sub-Agent Result-Caching done coreTools/_featureSubAgentTools.py_featureQueryCache, TTL 300s, MD5-Key, clearFeatureQueryCache() nach Sync
A8 Output-Chaining Fix (processDocuments) done methodTrustee/actions/processDocuments.py_resolveDocumentList() erkennt Graph-Editor-Dicts + Chat-Fallback
A9 Output-Chaining Fix (syncToAccounting) done methodTrustee/actions/syncToAccounting.py_resolveFirstDocument() mit Dual-Path-Logik
A10 Node trustee.importAndProcess (Convenience) übersprungen Bewusst übersprungen — bestehende 3 Nodes funktionieren dank Output-Chaining-Fix

B. Prompt-Templates & Analyse-Flows

# Item Status Evidenz in Codebase
B1 Quick Actions (Budget, KPI, Cashflow, Prognose, Jahresabschluss) done features/trustee/mainTrustee.py Zeilen 260319 — 5 Quick Actions als Dashboard-Links mit actionType: "link"
B2 Template Workflows (Graph-basiert) done mainTrustee.pyTEMPLATE_WORKFLOWS mit _buildAnalysisWorkflowGraph(), eingebettete deutsche Prompt-Strings für alle 5 Analyse-Typen
B3 Budget-Vergleich Prompt done Im Code als Python-String in mainTrustee.py (Graph: trigger → refreshAccountingData → ai.prompt)
B4 KPI-Dashboard Prompt done Analog zu B3
B5 Cashflow-Rechnung Prompt done Analog zu B3
B6 Prognose/Trend-Analyse Prompt done Analog zu B3
B7 Jahresabschluss-Checks Prompt done Analog zu B3

C. Graph-Editor Workflow & Templates

# Item Status Evidenz in Codebase
C1 System-Template "Treuhand: PDF-Klassifizierung & Trustee-Import" done interfaces/interfaceBootstrap.py_buildSystemTemplates() seedet bei Bootstrap: sharepoint.listFiles → loop → readFile → ai.prompt (classify) → extractFromFiles → processDocuments
C2 SharePoint-Nodes done nodeDefinitions/sharepoint.py — 6 Nodes (findFile, readFile, uploadFile, listFiles, downloadFile, copyFile)
C3 Flow-Nodes (Loop etc.) done nodeDefinitions/flow.py — ifElse, switch, loop, merge, delay
C4 Demo-Workflow (SharePoint → Trustee Pipeline) manuell im Editor bauen offen System-Template existiert (C1), aber kein dedizierter Demo-Workflow mit trigger.manual + syncToAccounting am Ende

D. Demo-Infrastruktur

# Item Status Evidenz in Codebase
D1 Demo-Config Infrastruktur (Base + Admin API) done demoConfigs/_baseDemoConfig.py, routes/routeAdminDemoConfig.py — load/remove via Admin-API
D2 investorDemo2026.py (Referenz-Template) done Mandanten, User, Features, Accounting-Config, Neutralisierung, Billing — vollständiges Muster
D3 Demo-Mandant "Bling Demo" offen Kein blingDemo2026.py oder ähnliches
D4 Demo-Mandant "PWG Demo" offen Kein pwgDemo2026.py oder ähnliches
D5 Demo-Mandant "Quid Demo" offen Kein quidDemo2026.py oder ähnliches

E. Testdaten

# Item Status Evidenz in Codebase
E1 Fiktives Mieterdossier (PDF) für Neutralisierung done gateway/demoData/neutralizer/tenant-dossier.pdf + Generator _generateTenantDossierPdf.py
E2 Knowledge-Base Demo-Dateien done gateway/demoData/knowledge-base/ — 4 Dateien (investor-orientiert)
E3 Budget-Excel (Soll-Werte) offen Kein .xlsx im gesamten Repo
E4 Musterbelege (Rechnung, Spesen, Bank, Versicherung) offen demoData/invoices/, demoData/expenses/, demoData/trustee/ fehlen (Tests erwarten sie)
E5 Quid-Testdaten (CSV: Umsatz, Kunden, Support) offen Keine kundenspezifischen CSV/Excel-Testdaten
E6 Bling-Testdaten (Bexio-kompatibel) offen Keine Bexio-spezifischen Testdaten
E7 PWG-Testdaten (Abacus-kompatibel) offen Keine Abacus-spezifischen Testdaten

F. CommCoach Immobilien-Personas

# Item Status Evidenz in Codebase
F1 CommCoach Feature (Grundstruktur) done features/commcoach/ — Routes, Services, AI, Personas, Gamification, Scheduler, Export, Indexer
F2 Builtin-Personas (generisch) done serviceCommcoachPersonas.py — 10 Personas (Coach, CFO, Mitarbeiter, Vorstand, Kunde, etc.)
F3 Persona: Mieter mit Zahlungsrückstand done tenant_payment_arrears_m in BUILTIN_PERSONAS
F4 Persona: Mieter mit Nebenkostenfragen done tenant_utility_costs_f in BUILTIN_PERSONAS
F5 Persona: Neuer Mieter (Einzugsfragen) done new_tenant_move_in_m in BUILTIN_PERSONAS
F6 Persona: Schwieriger Nachbar (Lärmbeschwerde) done difficult_neighbor_noise_m in BUILTIN_PERSONAS
F7 Persona-Seeding Mechanismus done seedBuiltinPersonas() synct BUILTIN_PERSONAS mit userId: "system" in DB

G. Neutralisierung

# Item Status Evidenz in Codebase
G1 Neutralisierung Feature (komplett) done features/neutralization/ — Routes, Services, Playground, PII-Masking, Private-LLM
G2 Fiktives Mieterdossier done demoData/neutralizer/tenant-dossier.pdf
G3 Demo-Flow dokumentiert offen Kein Schritt-für-Schritt Demo-Skript
G4 Neutralisierungs-Config auf Demo-Instanz 🔧 teilweise investorDemo2026.py konfiguriert Neutralisierung für Alpina — analog für PWG nötig

H. Demo-Skripte & Dokumentation

# Item Status Evidenz in Codebase
H1 Use-Case-Inputs Kunden done local/notes/demo-tue-use-cases-inputs-customers.md
H2 Demo-Skript Bling offen
H3 Demo-Skript PWG offen
H4 Demo-Skript Quid offen
H5 Mail-Update 12.04 done local/notes/demo-tue-mail-update-2026-04-12.md

Zusammenfassung: Was ist erledigt, was fehlt?

Erledigt (aus beiden Plänen)

Bereich Items Kommentar
Trustee Agent-Tools A1A2 refreshTrusteeData + aggregateTable vollständig
Graph-Editor Nodes A3A5, A8A10 Kategorie, Nodes, Toolbox, Output-Chaining — alles done
Performance A6A7 Connection-Pooling + Result-Caching implementiert
Prompt-Templates B1B7 Alle 5 Analyse-Typen als Quick Actions + Template Workflows in mainTrustee.py
System-Template C1C3 Bootstrap-Template für PDF-Import-Pipeline vorhanden
Neutralisierung G1G2 Feature komplett, Mieterdossier-PDF vorhanden
CommCoach Grundstruktur F1F2, F7 Feature + generische Personas + Seeding-Mechanismus

Offen (priorisiert nach Demo-Relevanz)

P0 — Blocker für PWG-Demo (16.04.2026)

# Item Aufwand Beschreibung
F3F6 CommCoach Immobilien-Personas Klein 4 neue Persona-Definitionen in BUILTIN_PERSONAS (Mieter Zahlungsrückstand, Nebenkosten, Einzug, Lärmbeschwerde)
D4 Demo-Mandant "PWG Demo" Mittel Neues pwgDemo2026.py analog zu investorDemo2026.py — Trustee (Abacus), CommCoach, Neutralisierung, Workspace
G3 Neutralisierungs-Demo-Flow Klein Schritt-für-Schritt Dokumentation: PDF → Neutralisierung → AI-Analyse → Re-Personalisierung

P1 — Wichtig für alle Kunden-Demos

# Item Aufwand Beschreibung
D3 Demo-Mandant "Bling Demo" Mittel blingDemo2026.py — Trustee (Bexio), Workspace, Graph-Editor
D5 Demo-Mandant "Quid Demo" Klein quidDemo2026.py — Workspace, Graph-Editor (kein Trustee-Connector)
E3 Budget-Excel Klein Soll-Werte 2026 pro Konto (1015 Konten), passend zu Demo-Buchhaltungsdaten
E4 Musterbelege Klein 35 PDFs: Handwerkerrechnung, Nebenkostenabrechnung, Bankbeleg, Versicherungsbeleg, Spesenbeleg
C4 Demo-Workflow im Graph-Editor Mittel Dedizierter Workflow: trigger.manual → sharepoint.listFiles → loop → download → extract → process → sync

P2 — Nice-to-have für erste Demos

# Item Aufwand Beschreibung
E5 Quid-Testdaten (CSV) Klein Umsatzdaten 6 Monate, Kundenliste mit Margen, Support-Zeiterfassung
E6 Bling-Testdaten (Bexio) Mittel Journal, Kontoplan, Bilanz/ER im Bexio-Format
E7 PWG-Testdaten (Abacus) Mittel Abacus-kompatible Daten (oder Sandbox-Zugang)
H2H4 Demo-Skripte Klein Schritt-für-Schritt pro Kunde mit Notizen
G4 Neutralisierungs-Config PWG Klein Analog zu investorDemo — in pwgDemo2026.py integrieren

P4 — Explizit nicht im Scope

Item Grund
Zendesk-Connector (Quid 3.2) Zu gross, CSV-Upload-Workaround reicht
Gastro-Echtzeit-Integration (Bling 1.6) Wartet auf Kevin-Input
Regelbasierte Konsolidierung (Quid 3.4) Wartet auf Lars-Meeting
Neue Frontend-Features Separater Plan
Abacus-Produktivzugang Demo mit Sandbox/Mockdaten

Umsetzungs-Checkliste (konsolidiert, nur offene Items)

Phase 1: PWG-Demo Vorbereitung (URGENT — Workshop 16.04)

  • F3F6: CommCoach Immobilien-Personas in serviceCommcoachPersonas.pyBUILTIN_PERSONAS

    • Persona tenant_payment_arrears_m: René Bachmann, 3 Monate Rückstand, defensiv, Ratenzahlung möglich
    • Persona tenant_utility_costs_f: Fatima El-Amin, Nebenkostenabrechnung unklar, emotional, braucht geduldige Erklärung
    • Persona new_tenant_move_in_m: Luca Steiner, Erstbezug, viele Fragen, kooperativ
    • Persona difficult_neighbor_noise_m: Kurt Zürcher, Lärmprotokoll, droht mit Mietminderung, Deeskalation nötig
  • D4: Demo-Config pwgDemo2026.py in gateway/modules/demoConfigs/

    • Mandant "PWG Demo" mit Features: Trustee (Abacus), CommCoach, Neutralisierung, Workspace, Graph-Editor
    • Demo-User mit passenden Rollen
    • Neutralisierungs-Config analog zu investorDemo
    • Billing/Trial-Modus
  • G3: Neutralisierungs-Demo-Flow dokumentieren (Markdown in local/notes/)

    • Schritt 1: Mieterdossier-PDF hochladen
    • Schritt 2: Neutralisierung zeigen (Namen → Platzhalter)
    • Schritt 3: Neutralisierten Text an AI → Analyse
    • Schritt 4: Re-Personalisierung demonstrieren

Phase 2: Bling & Quid Demo-Configs

  • D3: Demo-Config blingDemo2026.py

    • Mandant "Bling Demo" mit Features: Trustee (Bexio), Workspace, Graph-Editor
    • 23 Demo-User (Admin, Buchhalter, Mandant)
  • D5: Demo-Config quidDemo2026.py

    • Mandant "Quid Demo" mit Features: Workspace, Graph-Editor
    • Kein Trustee-Connector (Daten via CSV/Excel-Upload)

Phase 3: Testdaten & Musterbelege

  • E3: Budget-Excel erstellen

    • Soll-Werte 2026, 1015 Konten, passend zu Demo-Buchhaltungsdaten
    • Ablage: gateway/demoData/trustee/budget-2026.xlsx
  • E4: Musterbelege (PDFs) erstellen

    • Handwerkerrechnung, Nebenkostenabrechnung, Bankbeleg, Versicherungsbeleg, Spesenbeleg
    • Ablage: gateway/demoData/invoices/, gateway/demoData/expenses/
  • E5: Quid-Testdaten (CSV)

    • Umsatzdaten 6 Monate, Kundenliste mit Margen, Support-Zeiterfassung
    • Ablage: gateway/demoData/quid/

Phase 4: Demo-Workflow & Skripte

  • C4: Demo-Workflow im Graph-Editor bauen

    • trigger.manual → sharepoint.listFiles → flow.loop → sharepoint.downloadFile → trustee.extractFromFiles → trustee.processDocuments → trustee.syncToAccounting
    • Als System-Template speichern (templateScope: system)
    • Testen mit Musterbelegen aus E4
  • H2: Demo-Skript Bling — Schritt-für-Schritt

  • H3: Demo-Skript PWG — Schritt-für-Schritt

  • H4: Demo-Skript Quid — Schritt-für-Schritt

Querschnitt-Checks

  • API-Endpunkte: keine neuen nötig
  • DB-Schema / Migration: nein
  • Frontend-Komponenten: nein (separater Plan)
  • RBAC / Permissions: Demo-User mit passenden Rollen
  • Billing-Impact: Demo-Mandanten brauchen Trial-Modus / Guthaben

Akzeptanzkriterien (konsolidiert)

# Kriterium (Given-When-Then) Prio Quelle Status
1 Given Trustee-Instanz mit Abacus-Config, When Agent refreshTrusteeData aufruft, Then werden Daten importiert und Summary zurückgegeben must Tooling A1 implementiert
2 Given gecachte Daten (lastSyncAt < 1h), When Agent refreshTrusteeData ohne forceRefresh aufruft, Then kein externer Sync must Tooling A2 implementiert
3 Given Trustee-Daten, When Sub-Agent aggregateTable mit SUM/GROUP BY aufruft, Then korrekte Aggregationen must Tooling A2 implementiert
4 Given identische Query innerhalb 5 Min, When queryFeatureInstance erneut, Then gecachtes Ergebnis should Tooling A7 implementiert
5 Given Graphical Editor, When Node-Palette geladen, Then Kategorie "Treuhand" mit allen Trustee-Nodes must Tooling A3 implementiert
6 Given Workflow mit SharePoint → Trustee Pipeline, When manuell gestartet, Then PDFs extrahiert und synced must Tooling C4 Workflow noch nicht gebaut
7 Given Trustee-Pipeline im Flow, When Output-Chaining, Then documentList korrekt aufgelöst must Tooling A8A9 implementiert
8 Given Budget-Excel + Trustee-Daten, When Budgetkontrolle-Prompt, Then Soll/Ist-Vergleich mit Charts must Demo B3 🔧 Prompt done, Budget-Excel fehlt
9 Given Bling-Demo-Mandant, When KPI-Dashboard-Prompt, Then 3+ Kennzahlen-Charts must Demo B4 🔧 Prompt done, Demo-Mandant fehlt
10 Given PWG-Demo mit CommCoach, When Session mit "Mieter Zahlungsrückstand", Then realistischer Immobilien-Dialog must Demo F3 Persona implementiert
11 Given PWG-Demo mit Neutralisierung, When Mieterdossier hochgeladen, Then PII neutralisiert + re-personalisiert must Demo G1G2 🔧 Feature done, Demo-Config fehlt
12 Given Quid-Demo mit CSV-Upload, When KPI-Analyse, Then Margen- und Support-Charts should Demo E5 Testdaten fehlen
13 Given Demo-Mandant mit 2+ Mandaten, When Admin wechselt, Then nur Daten des aktiven Mandanten must Demo D1 Plattform-Kernfunktion

Entscheidungen (konsolidiert)

Datum Entscheidung Begründung
2026-04-07 refreshTrusteeData als separate Action (nicht Erweiterung von queryFeatureInstance) Separation of Concerns: Sync = schreibend, Query = lesend
2026-04-07 aggregateTable im Sub-Agent statt SQL in queryTable Saubere Trennung row-level vs. aggregate, SQL-Injection-Schutz
2026-04-07 DB-Connection-Pooling statt Connection-per-Call Grösster Performance-Hebel (~200ms pro Connection)
2026-04-07 Result-Cache auf WorkflowMemory-Ebene Agent kann gecachte Ergebnisse wiederverwenden
2026-04-09 Prompt-Templates als Code statt externe Dateien In mainTrustee.py als Template Workflows — wartbar und versioniert
2026-04-09 Quid-Demo ohne Zendesk-Connector — CSV/Excel-Upload Gleicher Analyse-Mehrwert, viel weniger Aufwand
2026-04-09 Gastro-UC und Konsolidierung auf P4 Warten auf Kunden-Input (Kevin) bzw. Lars-Meeting
2026-04-09 CommCoach-Personas als schnellster Wow-Effekt für PWG Feature ist gebaut; nur Persona-Definitionen nötig

Betroffene Module

  • Gateway: features/commcoach/ (Persona-Seeding), features/trustee/ (done + Demo-Daten), features/neutralization/ (Demo-Config), features/graphicalEditor/ (done), serviceCenter/serviceAgent/ (done), demoConfigs/ (neue Demo-Configs), workflows/methods/methodTrustee/ (done)
  • Frontend: keine Änderungen
  • DB-Migration: nein
  • Andere: Testdaten (Excel, PDF, CSV), Demo-Skripte (Markdown)
  • Kundenwünsche: local/notes/demo-tue-use-cases-inputs-customers.md
  • Automation Unification (done): wiki/c-work/3-validate/2026-04-automation-unification.md
  • UI-Enhancements (parallel): wiki/c-work/1-plan/2026-04-porta-ui-enhancements-team-meeting.md
  • INT-Stabilität (parallel): wiki/c-work/1-plan/2026-04-gateway-int-stability-and-bugfixes.md
  • Original-Plan 1: wiki/c-work/1-plan/2026-04-customer-trustee-demo-enablement.md
  • Original-Plan 2: wiki/c-work/1-plan/2026-04-customer-trustee-tooling-and-demo-prep.md
  • Investor-Demo (Referenz): gateway/modules/demoConfigs/investorDemo2026.py
  • CommCoach Personas: gateway/modules/features/commcoach/serviceCommcoachPersonas.py
  • Trustee Main (Prompts + Quick Actions): gateway/modules/features/trustee/mainTrustee.py
  • Neutralisierung: gateway/modules/features/neutralization/
  • Demo-Daten: gateway/demoData/

Abschluss

  • Original-Pläne als "merged" markieren (Verweis auf dieses Dokument)
  • b-reference/ aktualisiert (ggf. neue Feature-Docs)
  • TOPICS.md aktualisiert (falls neues Thema)
  • Dieses Dokument → z-archive/ verschoben