wiki/c-work/1-plan/2026-04-quick-actions-feature-dashboard.md
2026-04-10 12:33:19 +02:00

25 KiB

Quick Actions — Feature-Dashboard mit One-Click-Aktionen

Beschreibung und Kontext

Treuhandbüros (Bling, PWG) und andere Kunden wünschen sich ein Cockpit, von dem aus sie ihre häufigsten Aufgaben per Knopfdruck starten können — Budget-Vergleich, Belegverarbeitung, KPI-Dashboard, Cashflow etc. Heute müssen sie dafür den Workspace öffnen und den richtigen Prompt manuell eintippen.

Business-Treiber: Das Feature-Dashboard (z.B. Trustee Dashboard) ist aktuell eine passive Statistik-Seite (Anzahl Positionen, Dokumente, Sync-Status). Mit Quick Actions wird es zum aktiven Cockpit — der Einstiegspunkt für produktive Arbeit. Das macht den Unterschied zwischen "generischem AI-Chat" und "Branchenlösung für Treuhänder".

Abhängigkeiten:

  • Trustee Agent-Tools müssen funktionieren (c-work/1-plan/2026-04-trustee-tooling-and-demo-prep.md)
  • Workspace SSE-Streaming muss stabil laufen (c-work/1-plan/2026-04-gateway-int-stability-and-bugfixes.md)
  • Prompt-Templates aus c-work/1-plan/2026-04-customer-demo-enablement.md

Risiko bei Nicht-Umsetzung: Kunden sehen PORTA als "noch ein Chat-Tool" statt als branchenspezifische Plattform. Die Hürde vom Login zum Mehrwert bleibt hoch.

Fokus und kritische Details

Ist-Zustand: Trustee Dashboard

frontend_nyla/src/pages/views/trustee/TrusteeDashboardView.tsx zeigt aktuell:

  • Stats-Grid: 4 Kacheln (Positionen, Dokumente, Buchhaltungs-Sync, Rollen)
  • Info-Sektion: Instanz-Label, Mandant, Buchhaltungssystem

Kein Weg zu einer Aktion — keine Buttons, keine Links zum Workspace, keine Workflows.

Architektur-Entscheid: Zwei Dispatch-Typen

Quick Actions dispatchen zu bestehender Infrastruktur — es wird keine zweite AI-Oberfläche gebaut:

Typ Dispatch-Ziel Wann nutzen
agentPrompt Workspace mit vorgefülltem Prompt → Agent startet automatisch Analyse-Aufgaben (Budget, KPIs, Cashflow, Prognosen, Jahresabschluss)
workflow Graph-Editor System-Template wird direkt getriggert Automatisierungs-Aufgaben (Belegimport, Daten-Sync, Spesen-Import)
link Navigation zu einer bestehenden Seite Schnellzugriff (Scan/Upload, Dokumente, Einstellungen)

Kritische Stellen

  • Workspace Pre-Fill: Der Workspace (WorkspacePage.tsx) hat aktuell keinen Mechanismus für URL-Parameter ?prompt=.... Das muss ergänzt werden.
  • Cross-Feature-Navigation: Eine Trustee Quick Action muss den User zur Workspace-Instanz des gleichen Mandanten navigieren. Das erfordert Auflösung: Trustee-InstanceId → MandateId → Workspace-InstanceId.
  • RBAC-Filterung: Quick Actions müssen nach Rolle gefiltert werden. Ein trustee-client soll "Belege hochladen" sehen, aber nicht "Jahresabschluss prüfen".
  • i18n: Alle Labels müssen mehrsprachig sein (bestehendes TextMultilingual-Pattern nutzen).

Warum kein eigenes AI-Rendering auf dem Dashboard?

Der Workspace hat bereits: Chat-Rendering, Chart-Anzeige, Datei-Handling, SSE-Streaming, Progressive Summarization, Tool-Ergebnisse. Das zu duplizieren wäre enormer Aufwand. Stattdessen nutzen wir den Workspace als "Execution Engine" und das Dashboard als "Launchpad".

Ziel und Nicht-Ziele

Ziel:

  • Feature-Dashboards (Trustee als Pilot, danach CommCoach, Workspace) zeigen kontextspezifische Quick Action Cards
  • Klick auf eine agentPrompt-Card öffnet Workspace mit vorgefülltem Prompt und startet den Agent
  • Klick auf eine workflow-Card triggert einen Graph-Editor Workflow
  • Actions sind RBAC-gefiltert, i18n-ready und per Feature-Instanz konfigurierbar
  • Wiederverwendbare QuickActionBoard-Komponente für alle Features

Explizit NICHT:

  • Kein AI-Rendering auf dem Dashboard selbst (kein Chat, keine Charts auf der Trustee-Seite)
  • Keine neuen DB-Tabellen — Quick Actions leben im Code (wie UI_OBJECTS) + optional in FeatureInstance.config
  • Keine neuen API-Verträge für Workflow-Execution (nutzt bestehenden POST /{instanceId}/execute)
  • Kein Prompt-Editor für Endnutzer (kommt ggf. später)

Betroffene Module

  • Gateway: features/trustee/mainTrustee.py (Quick Action Definitionen), features/trustee/routeFeatureTrustee.py (API-Endpoint), ggf. features/workspace/routeFeatureWorkspace.py (Pre-Fill-Support)
  • Frontend: pages/views/trustee/TrusteeDashboardView.tsx (Quick Action Board einbinden), neue Komponente components/QuickActionBoard/, pages/views/workspace/WorkspacePage.tsx (URL-Param-Support)
  • DB-Migration: nein
  • Andere Komponenten: Prompt-Templates (Markdown-Dateien, getrennt gepflegt)

Entscheidungen

Datum Entscheidung Begründung
2026-04-09 Quick Actions im Code definieren (wie UI_OBJECTS), nicht in einer DB-Tabelle Einfach, versioniert, kein Migrations-Aufwand. Custom-Actions später über FeatureInstance.config
2026-04-09 Dispatch zu Workspace statt Inline-Rendering auf dem Dashboard Workspace hat die komplette AI-Infrastruktur (Chat, Charts, Streaming). Kein Sinn in Duplizierung
2026-04-09 QuickActionBoard als generische Plattform-Komponente, nicht Trustee-spezifisch CommCoach, Workspace, RealEstate können dieselbe Komponente nutzen
2026-04-09 Workspace bekommt URL-Parameter ?prompt=...&autoStart=true Einfachster Weg für Cross-Feature-Dispatch. Kein Backend-Spezialweg nötig
2026-04-09 Prompt-Templates als Konfigurationswert in der Quick Action, nicht als separate Dateien Prompt gehört zur Aktion — eine Quelle der Wahrheit. Kein File-Lookup zur Laufzeit

Umsetzungs-Checkliste

Phase 1: Backend — Quick Action Definitionen & API (Gateway)

  • QUICK_ACTIONS in mainTrustee.py definieren

Gleiches Pattern wie UI_OBJECTS, TEMPLATE_ROLES:

QUICK_ACTIONS = [
    {
        "id": "trustee-process-receipts",
        "label": {"de": "Belege verarbeiten", "en": "Process Receipts", "fr": "Traiter les justificatifs"},
        "description": {"de": "Belege aus SharePoint importieren, klassifizieren und verbuchen", "en": "Import receipts from SharePoint, classify and book", "fr": "Importer les justificatifs depuis SharePoint, classer et comptabiliser"},
        "icon": "mdi-file-document-check-outline",
        "color": "#4CAF50",
        "category": "import",
        "actionType": "workflow",
        "config": {
            "workflowTemplateCode": "trustee-receipt-import"
        },
        "requiredRoles": ["trustee-user", "trustee-accountant", "trustee-admin"],
        "sortOrder": 1
    },
    {
        "id": "trustee-sync-accounting",
        "label": {"de": "Daten synchronisieren", "en": "Sync Accounting Data", "fr": "Synchroniser les données"},
        "description": {"de": "Buchhaltungsdaten aus dem externen System aktualisieren", "en": "Refresh accounting data from external system", "fr": "Actualiser les données du système externe"},
        "icon": "mdi-sync",
        "color": "#FF9800",
        "category": "import",
        "actionType": "agentPrompt",
        "config": {
            "prompt": "Aktualisiere die Buchhaltungsdaten aus dem verbundenen Buchhaltungssystem. Nutze refreshTrusteeData mit forceRefresh=true. Zeige mir danach eine Zusammenfassung: Anzahl Konten, Buchungen, Kontakte und den Zeitraum der Daten."
        },
        "requiredRoles": ["trustee-accountant", "trustee-admin"],
        "sortOrder": 2
    },
    {
        "id": "trustee-budget-comparison",
        "label": {"de": "Budget-Vergleich", "en": "Budget Comparison", "fr": "Comparaison budgétaire"},
        "description": {"de": "Soll/Ist-Vergleich der Buchhaltung mit Budget-Excel", "en": "Compare actuals vs. budget from Excel", "fr": "Comparer les données réelles avec le budget Excel"},
        "icon": "mdi-chart-bar",
        "color": "#2196F3",
        "category": "analyse",
        "actionType": "agentPrompt",
        "config": {
            "prompt": "Ich möchte einen Budget-Soll/Ist-Vergleich durchführen. Bitte:\n1. Frage mich nach der Budget-Datei (Excel) oder suche im Workspace nach einer Datei mit 'Budget' im Namen\n2. Lade die aktuellen Buchhaltungsdaten (refreshTrusteeData falls nötig)\n3. Vergleiche die Soll-Werte aus dem Budget mit den Ist-Werten aus der Buchhaltung pro Konto\n4. Berechne die Abweichung (absolut und prozentual)\n5. Erstelle ein Abweichungs-Chart (Balkendiagramm: Soll vs. Ist pro Konto)\n6. Markiere kritische Abweichungen (>10%) und gib eine kurze Einschätzung",
            "suggestFileUpload": true,
            "uploadHint": {"de": "Budget-Excel hochladen", "en": "Upload budget Excel"}
        },
        "requiredRoles": ["trustee-accountant", "trustee-admin"],
        "sortOrder": 3
    },
    {
        "id": "trustee-kpi-dashboard",
        "label": {"de": "KPI-Dashboard", "en": "KPI Dashboard", "fr": "Tableau de bord KPI"},
        "description": {"de": "Kennzahlen berechnen und visualisieren", "en": "Calculate and visualize key metrics", "fr": "Calculer et visualiser les indicateurs clés"},
        "icon": "mdi-view-dashboard-outline",
        "color": "#9C27B0",
        "category": "analyse",
        "actionType": "agentPrompt",
        "config": {
            "prompt": "Erstelle ein KPI-Dashboard basierend auf den aktuellen Buchhaltungsdaten. Berechne und visualisiere:\n1. **Bruttogewinn** und Bruttogewinnmarge\n2. **EBIT** (Betriebsergebnis)\n3. **Gewinnmarge** (Reingewinn / Umsatz)\n4. **Eigenkapitalquote** und Check auf hälftigen Kapitalverlust (OR Art. 725)\n5. **Liquiditätsgrad 1-3** (Cash Ratio, Quick Ratio, Current Ratio)\n6. **Überschuldungs-Check**\n\nErstelle für jede Kennzahl einen kurzen Kommentar (gut/kritisch/Handlungsbedarf). Erstelle mindestens 2 Charts: ein Übersichts-Chart der Margen und ein Liquiditäts-Chart."
        },
        "requiredRoles": ["trustee-accountant", "trustee-admin"],
        "sortOrder": 4
    },
    {
        "id": "trustee-cashflow",
        "label": {"de": "Cashflow-Rechnung", "en": "Cash Flow Statement", "fr": "Tableau des flux de trésorerie"},
        "description": {"de": "Cashflow berechnen und analysieren", "en": "Calculate and analyze cash flow", "fr": "Calculer et analyser le flux de trésorerie"},
        "icon": "mdi-cash-multiple",
        "color": "#009688",
        "category": "analyse",
        "actionType": "agentPrompt",
        "config": {
            "prompt": "Erstelle eine Cashflow-Rechnung basierend auf den aktuellen Buchhaltungsdaten:\n1. **Operativer Cashflow:** Starte vom Reingewinn, bereinige um nicht-cash-wirksame Positionen (Abschreibungen, Rückstellungen, Wertberichtigungen)\n2. **Investitions-Cashflow:** Investitionen in Sachanlagen, Finanzanlagen\n3. **Finanzierungs-Cashflow:** Darlehensaufnahmen/-rückzahlungen, Dividenden, Kapitalerhöhungen\n4. **Netto-Cashflow** und Veränderung der liquiden Mittel\n\nWarne bei kritischen Werten. Erstelle ein Wasserfall-Chart oder gestapeltes Balkendiagramm der drei Cashflow-Bereiche."
        },
        "requiredRoles": ["trustee-accountant", "trustee-admin"],
        "sortOrder": 5
    },
    {
        "id": "trustee-year-end-check",
        "label": {"de": "Jahresabschluss prüfen", "en": "Year-End Review", "fr": "Contrôle de clôture annuelle"},
        "description": {"de": "Automatische Prüfungen für den Jahresabschluss", "en": "Automated year-end review checks", "fr": "Contrôles automatisés de clôture"},
        "icon": "mdi-clipboard-check-outline",
        "color": "#795548",
        "category": "abschluss",
        "actionType": "agentPrompt",
        "config": {
            "prompt": "Führe eine automatische Jahresabschluss-Prüfung durch:\n1. **Saldovalidierung:** Prüfe alle Bilanzkonten auf Plausibilität (negative Saldi wo nicht erwartet, ungewöhnlich hohe Saldi)\n2. **Vorjahresvergleich:** Vergleiche Bilanz- und ER-Positionen mit dem Vorjahr, markiere Abweichungen >20%\n3. **Abgrenzungen:** Identifiziere potenzielle transitorische Aktiven/Passiven (regelmässige Aufwände ohne Dezember-Buchung, Erträge im Voraus)\n4. **Gesetzliche Prüfungen:** Hälftiger Kapitalverlust (OR 725), Überschuldung, Mindestkapital\n5. **MWST-Plausibilisierung:** Vorsteuer vs. geschätzter Aufwand, Umsatzsteuer vs. Umsatz\n\nErstelle eine Checkliste mit Status (OK / Warnung / Kritisch) pro Prüfpunkt."
        },
        "requiredRoles": ["trustee-accountant", "trustee-admin"],
        "sortOrder": 6
    },
    {
        "id": "trustee-forecast",
        "label": {"de": "Prognose erstellen", "en": "Create Forecast", "fr": "Créer une prévision"},
        "description": {"de": "Trend-Analyse und Prognose der nächsten Monate", "en": "Trend analysis and forecast for coming months", "fr": "Analyse de tendance et prévision"},
        "icon": "mdi-chart-timeline-variant",
        "color": "#E91E63",
        "category": "analyse",
        "actionType": "agentPrompt",
        "config": {
            "prompt": "Erstelle eine Finanzprognose basierend auf den historischen Buchhaltungsdaten:\n1. Analysiere die Umsatz- und Aufwandsentwicklung der letzten 6 Monate (monatliche Aggregation)\n2. Identifiziere Trends und Saisonalitäten\n3. Prognostiziere Umsatz, Aufwand und Gewinn für die nächsten 3 Monate\n4. Erstelle ein Chart mit Ist-Werten und Prognose-Korridor (Best/Expected/Worst Case)\n5. Markiere Risiken: \"Wenn der Trend anhält, passiert X\"\n\nNutze eine einfache lineare Extrapolation mit Saisonalitätskorrektur wo sinnvoll."
        },
        "requiredRoles": ["trustee-accountant", "trustee-admin"],
        "sortOrder": 7
    },
    {
        "id": "trustee-upload-receipt",
        "label": {"de": "Beleg hochladen", "en": "Upload Receipt", "fr": "Télécharger un justificatif"},
        "description": {"de": "Beleg scannen oder als Datei hochladen", "en": "Scan or upload a receipt", "fr": "Scanner ou télécharger un justificatif"},
        "icon": "mdi-camera-document-outline",
        "color": "#607D8B",
        "category": "schnellzugriff",
        "actionType": "link",
        "config": {
            "targetView": "scan-upload"
        },
        "requiredRoles": ["trustee-user", "trustee-client", "trustee-accountant", "trustee-admin"],
        "sortOrder": 8
    },
]
  • getQuickActions() Funktion in mainTrustee.py analog zu getUiObjects(), getTemplateRoles()

  • API-Endpoint GET /api/trustee/{instanceId}/quick-actions in routeFeatureTrustee.py

    • Liest QUICK_ACTIONS + optional FeatureInstance.config.get("quickActions", [])
    • Filtert nach User-Rollen (RBAC): nur Actions deren requiredRoles mit den Rollen des Users auf dieser Instanz übereinstimmen
    • Sortiert nach sortOrder
    • Gruppiert nach category (optional, Frontend kann auch selbst gruppieren)
    • Response: { "actions": [...], "categories": [{ "id": "import", "label": {...} }, ...] }

Phase 2: Frontend — QuickActionBoard Komponente

  • Neue Komponente components/QuickActionBoard/QuickActionBoard.tsx

Generische, wiederverwendbare Komponente:

interface QuickAction {
  id: string;
  label: string;          // bereits in User-Sprache aufgelöst
  description: string;
  icon: string;
  color: string;
  category: string;
  actionType: 'agentPrompt' | 'workflow' | 'link';
  config: Record<string, any>;
}

interface QuickActionBoardProps {
  actions: QuickAction[];
  onDispatch: (action: QuickAction) => void;
  loading?: boolean;
}

UI:

  • Responsive Card-Grid (grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)))

  • Jede Card: Icon (farbig) + Titel + Beschreibung (1-Zeiler) + Hover-Effekt

  • Kategorien als optionale Section-Header

  • Loading-Skeleton während API-Call

  • Dark-Theme Support (bestehende CSS-Variablen nutzen)

  • Kein eigener State — rein präsentational mit onDispatch-Callback

  • CSS in components/QuickActionBoard/QuickActionBoard.module.css

    • Konsistentes Design mit bestehenden TrusteeViews.module.css Kacheln (.statCard Pattern)
    • Hover: leichter Scale + Shadow-Verstärkung
    • Active/Clicked: kurzer visueller Feedback (Pulse oder Farb-Flash)
    • Icon-Rendering: mdi-* Icons aus bestehender Icon-Library oder als Unicode/SVG Fallback

Phase 3: Frontend — Dashboard-Integration

  • TrusteeDashboardView.tsx erweitern

Unter dem bestehenden statsGrid und infoSection:

// Nach der infoSection:
<QuickActionBoard
  actions={quickActions}
  onDispatch={_handleQuickAction}
  loading={actionsLoading}
/>

Dispatch-Handler:

const _handleQuickAction = (action: QuickAction) => {
  switch (action.actionType) {
    case 'agentPrompt':
      _navigateToWorkspaceWithPrompt(action.config);
      break;
    case 'workflow':
      _triggerWorkflow(action.config);
      break;
    case 'link':
      _navigateToView(action.config.targetView);
      break;
  }
};
  • API-Hook useTrusteeQuickActions(instanceId) in hooks/useTrustee.ts

    • Fetcht GET /api/trustee/{instanceId}/quick-actions
    • Cached Response (SWR-Pattern oder einfacher State)
    • Resolved label/description in die aktive Sprache (wie bei Navigation-Labels)
  • Trustee API Funktion fetchQuickActions() in api/trusteeApi.ts

Phase 4: Frontend — Workspace Pre-Fill (Cross-Feature-Dispatch)

  • URL-Parameter-Support in WorkspacePage.tsx

Workspace erkennt URL-Suchparameter:

  • ?prompt=<encodedText> → Füllt Prompt-Feld vor
  • &autoStart=true → Startet den Agent automatisch nach dem Laden
  • &sourceFeature=trustee → Optional: Kontext-Hinweis woher der User kommt
  • &sourceInstanceId=<id> → Optional: Trustee-Instanz für Feature-Data-Zugriff

Implementierung:

useEffect(() => {
  const params = new URLSearchParams(window.location.search);
  const prompt = params.get('prompt');
  const autoStart = params.get('autoStart') === 'true';

  if (prompt) {
    setInputText(decodeURIComponent(prompt));
    // URL bereinigen (Params entfernen, damit Reload nicht erneut startet)
    window.history.replaceState({}, '', window.location.pathname);

    if (autoStart) {
      // Kurze Verzögerung damit UI gerendert ist
      setTimeout(() => _handleSend(), 300);
    }
  }
}, []);
  • Workspace-Instanz-Auflösung für Cross-Feature-Navigation

Helper-Funktion in Trustee Dashboard:

const _navigateToWorkspaceWithPrompt = async (config: QuickActionConfig) => {
  // 1. Workspace-Instanz des gleichen Mandanten finden
  const workspaceInstance = instances.find(
    i => i.featureCode === 'workspace' && i.mandateId === currentMandateId
  );
  if (!workspaceInstance) { /* Fehlerbehandlung */ }

  // 2. Navigation mit Prompt-Parametern
  const params = new URLSearchParams({
    prompt: config.prompt,
    autoStart: 'true',
    sourceFeature: 'trustee',
    sourceInstanceId: instanceId,
  });
  navigate(`/features/workspace/${workspaceInstance.id}/dashboard?${params}`);
};

Phase 5: Workflow-Dispatch (für actionType: "workflow")

  • Graph-Editor Workflow triggern aus dem Trustee Dashboard

Für actionType: "workflow": Nutzt bestehenden POST /api/graphicalEditor/{geInstanceId}/execute:

const _triggerWorkflow = async (config: WorkflowActionConfig) => {
  // 1. GraphicalEditor-Instanz des gleichen Mandanten finden
  const geInstance = instances.find(
    i => i.featureCode === 'graphicalEditor' && i.mandateId === currentMandateId
  );

  // 2. System-Template-Workflow finden (nach templateCode)
  const workflows = await fetchWorkflowsByTemplate(geInstance.id, config.workflowTemplateCode);

  // 3. Ausführung triggern
  const run = await executeWorkflow(geInstance.id, workflows[0].id);

  // 4. Feedback: Toast "Workflow gestartet" + optional Link zur Run-Ansicht
  showToast({ message: t('quickActions.workflowGestartet'), action: { label: t('quickActions.details'), onClick: () => navigateToRun(run.id) } });
};
  • API-Funktionen in api/graphicalEditorApi.ts (falls nicht vorhanden): fetchWorkflowsByTemplate(), executeWorkflow()

Querschnitt-Checks

  • API-Endpunkte: GET /api/trustee/{instanceId}/quick-actions (neu)
  • DB-Schema / Migration: nein
  • Frontend-Komponenten: QuickActionBoard (neu, generisch), TrusteeDashboardView (erweitert)
  • RBAC / Permissions: Filterung über requiredRoles im API-Endpoint
  • Neutralisierung betroffen? nein (Prompts gehen durch normale Workspace-Pipeline)
  • Navigation / Routing: Workspace URL-Parameter-Support
  • Billing-Impact? nein (Agent-Calls laufen über bestehende Billing-Pipeline)
  • i18n: Alle Labels in QUICK_ACTIONS nutzen TextMultilingual-Format

Akzeptanzkriterien

# Kriterium (Given-When-Then) Prio
1 Given Trustee Dashboard, When ein User mit Rolle trustee-accountant die Seite öffnet, Then sieht er mindestens 6 Quick Action Cards (Belege, Sync, Budget, KPIs, Cashflow, Jahresabschluss) in einem Card-Grid unterhalb der Statistiken must
2 Given Quick Action "Budget-Vergleich" (Typ agentPrompt), When der User auf die Card klickt, Then wird er zum Workspace navigiert mit dem vorgefüllten Prompt und der Agent startet automatisch must
3 Given Quick Action "Belege verarbeiten" (Typ workflow), When der User auf die Card klickt, Then wird der zugehörige Graph-Editor Workflow getriggert und der User erhält eine Bestätigung must
4 Given Quick Action "Beleg hochladen" (Typ link), When der User auf die Card klickt, Then wird er zur Scan/Upload-Seite der aktuellen Trustee-Instanz navigiert must
5 Given ein User mit Rolle trustee-client, When er das Trustee Dashboard öffnet, Then sieht er nur die Quick Actions für seine Rolle (z.B. "Beleg hochladen"), nicht die Accountant-Aktionen (Budget, KPIs etc.) must
6 Given Dark Theme aktiv, When das Dashboard mit Quick Actions gerendert wird, Then sind alle Cards visuell korrekt (Farben, Kontraste, Hover-Effekte) im Dark Mode should
7 Given Workspace geöffnet via Quick Action mit autoStart=true, When der Agent gestartet wird, Then enthält der System-Prompt Kontext über die Trustee-Instanz und der Agent kann sofort auf Trustee-Daten zugreifen should
8 Given schmales Viewport (< 768px), When das Dashboard angezeigt wird, Then sind die Quick Action Cards in einem 1-2 Spalten Grid und weiterhin klickbar should

Testplan

ID AC Art Automatisiert Repo-Pfad / Methode Status
T1 1, 5 api ja gateway/tests/features/trustee/test_quick_actions_api.py — Endpoint liefert gefilterte Actions pro Rolle pending
T2 2 e2e nein Manuell: Card klicken → Workspace öffnet mit Prompt → Agent startet pending
T3 3 e2e nein Manuell: Workflow-Card klicken → Workflow läuft → Bestätigung sichtbar pending
T4 4 e2e nein Manuell: Link-Card klicken → korrekte Navigation pending
T5 6 visual nein Manuell: Dark/Light Mode vergleichen pending
T6 7 e2e nein Manuell: Budget-Vergleich aus Quick Action → Agent nutzt Trustee-Daten korrekt pending
T7 8 visual nein Manuell: Browser-Fenster schmaler als 768px pending

Spätere Erweiterungen (nicht in Scope)

Idee Beschreibung
Custom Quick Actions pro Mandant Admin kann eigene Actions definieren (in FeatureInstance.config.quickActions), die mit den System-Actions gemergt werden
Workspace Empty State Quick Actions des aktiven Features im Workspace Empty State anzeigen (wenn kein Chat offen)
Inline-Ergebnis-Preview Nach Agent-Ausführung: Zusammenfassung und Charts auf dem Dashboard selbst anzeigen (statt nur im Workspace)
Favoriten / Pinned Actions User kann Actions pinnen; gepinnte Actions erscheinen zuoberst oder auf einer persönlichen "Home"-Seite
CommCoach Quick Actions "Mietergespräch üben", "Nebenkostenfragen trainieren" etc. auf dem CommCoach Dashboard
Prompt-Editor Power-User können Prompts der Quick Actions anpassen (Mandanten-spezifisch)
  • Kundenwünsche: local/notes/use-cases-inputs-customers.md
  • Customer Demo Enablement: c-work/1-plan/2026-04-customer-demo-enablement.md
  • Trustee Tooling: c-work/1-plan/2026-04-trustee-tooling-and-demo-prep.md
  • Trustee Dashboard (Frontend): frontend_nyla/src/pages/views/trustee/TrusteeDashboardView.tsx
  • Trustee Feature (Gateway): gateway/modules/features/trustee/mainTrustee.py
  • Trustee Routes (Gateway): gateway/modules/features/trustee/routeFeatureTrustee.py
  • Workspace Routes (Gateway): gateway/modules/features/workspace/routeFeatureWorkspace.py
  • Workspace Page (Frontend): frontend_nyla/src/pages/views/workspace/WorkspacePage.tsx
  • FeatureView Registry (Frontend): frontend_nyla/src/pages/FeatureView.tsx
  • Quick Action Board (Frontend, neu): frontend_nyla/src/components/QuickActionBoard/
  • Navigation API: wiki/b-reference/platform/navigation.md

Abschluss

  • b-reference/ aktualisiert (b-reference/gateway/features/trustee.md — neu anlegen mit Quick Actions)
  • b-reference/frontend-nyla/architecture.md aktualisiert (QuickActionBoard-Komponente)
  • TOPICS.md aktualisiert (neues Thema "Quick Actions")
  • Dieses Dokument → z-archive/ verschoben