Files
sandrodach 3480859d8a
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 8s
docs: add comprehensive technical wiki documentation and flaws analysis; remove legacy BRAIN.md
2026-10-26 13:27:35 +01:00

4.5 KiB
Raw Permalink Blame History

📥 Kernmodul 1: Triage & Quick-Dump Engine

Das Triage-Modul von MindSift basiert auf dem Getting Things Done (GTD)-Prinzip. Es trennt die Erfassung von Gedanken strikt von der Entscheidung, was damit geschehen soll.


💡 1. Das 2-Phasen-Konzept

  1. Phase 1: Schnelles Erfassen (Instant Dump)
    Ein Gedanke, ein Anruf, eine Idee oder ein Server-Alarm wird ohne Reibung erfasst. Der Benutzer muss in diesem Moment weder ein Projekt auswählen, noch Fälligkeitsdaten eingeben oder Ordner durchsuchen.
  2. Phase 2: Fokussierte Triage (Inbox Zero)
    Zu einem späteren Zeitpunkt (z.B. morgens oder beim Feierabend) sichtet der Benutzer den Stapel im Triage-Deck Karte für Karte und trifft für jeden Eintrag eine eindeutige Entscheidung.

🔄 2. Triage State Machine

stateDiagram-v2
    [*] --> Capture: Gedanke erfasst (Desktop / Mobile / Webhook)
    
    Capture --> Inbox: Standard (status: 'inbox')
    Capture --> Task: Direkt als Aufgabe (target: 'task')
    Capture --> Document: Direkt als Notiz (target: 'document')
    Capture --> ListItem: Direkt auf Liste (target: 'list_item')

    state Inbox {
        [*] --> ActiveCard: Oben auf Stapel
        ActiveCard --> Skipped: Leertaste / Später (Ans Ende)
        Skipped --> ActiveCard
    }

    ActiveCard --> Discarded: Swipe links / H (Wegwerfen)
    ActiveCard --> Task: Swipe rechts / L (Als Aufgabe)
    ActiveCard --> TaskDated: T (Mit Fälligkeitsdatum)
    ActiveCard --> Document: D (In Notiz umwandeln)
    ActiveCard --> ListItem: Auf Liste schieben

    Discarded --> Trash: status: 'discarded'
    Task --> TasksModule: status: 'kept', converted: 'task'
    TaskDated --> TasksModule: status: 'kept', converted: 'task', dueDate
    Document --> WorkspaceModule: status: 'converted', converted: 'document'
    ListItem --> ListsModule: status: 'converted', converted: 'list_item'

🖐️ 3. Steuerung & Gesten (Mobile vs. Desktop)

Desktop-Bedienung (Tastatur-First)

  • C oder /: Fokussiert sofort die Eingabeleiste oben im Header.
  • Enter: Speichert den Gedanken sofort im Deck.
  • ← oder H: Aktive Karte wegwerfen (discard).
  • → oder L: Aktive Karte sofort zur Aufgabe machen (task).
  • T: Datumsauswahl für Termin-Aufgabe öffnen.
  • D: Aktive Karte in eine vollwertige Workspace-Notiz umwandeln.
  • Leertaste: Karte überspringen und ans Ende des Stapels schieben („Später").

Mobile Bedienung (Touch & Swipe)

  • Mittlerer Plus-Button (+): Öffnet das design-angeglichene Bottom-Sheet mit Spracheingabe, 4 Prioritäts-Buttons (Niedrig, Normal, Wichtig, Dringend) und Fälligkeitsdatum.
  • Wischgeste nach links (Swipe Left): Roter Indikator erscheint, Karte wird verworfen.
  • Wischgeste nach rechts (Swipe Right): Grüner Indikator erscheint, Karte wird sofort zur Aufgabe.
  • Long-Press (Langes Drücken auf Karte): Öffnet das Schnell-Aktions-Menü (Auf Liste, Mit Termin, Als Notiz, Später).

🎙️ 4. Spracheingabe (Speech-to-Text)

In der Desktop-Schnelleingabeleiste (InstantCaptureBar.tsx) sowie im mobilen Triage-Modal (App.tsx) ist ein nativer Browser-Sprachassistent integriert:

  • Verwendet die standardisierte SpeechRecognition bzw. webkitSpeechRecognition API.
  • Erkennt Sprache auf Deutsch (lang: 'de-DE').
  • Live-Transkription: Gesprochener Text wird in Echtzeit in das Textfeld eingefügt.
  • Haptisches Feedback: Vibrieren beim Starten und Stoppen der Aufnahme.
  • Markiert erfasste Gedanken automatisch mit dem Herkunfts-Attribut source: 'voice' (Diktat-Badge).

⚡ 5. Webhook-Ingestion & Smarthome-Pille

MindSift kann externe Alarme (Home Assistant, Zigbee2MQTT, n8n, Proxmox, Monitoring) automatisch ins Triage-Deck einspeisen:

Herkunftserkennung

  1. Wird ein Gedanke über /api/v1/inbox mit X-API-Key oder über /api/v1/webhooks/ingest eingeliefert, setzt das Backend automatisch source = "webhook".
  2. Im Frontend visualisiert die Triage-Karte eine dezente Webhook-Pille (<Webhook className="w-3 h-3 text-accent" /> Webhook).
  3. Diese Kennzeichnung bleibt auch erhalten, wenn die Karte später zu einer Aufgabe umgewandelt wird.

Live-WebSocket Update

Nach erfolgreichem Ingest sendet der Server sofort ein TASK_CREATED Event über den WebSocket-Hub. Das geöffnete Triage-Deck fügt die neue Alarm-Karte sofort oben in den Stapel ein – ohne dass der Benutzer die Seite neu laden muss.