Status: Spec abgeschlossen (2026-05-07, Update mit MCP-Bridge + Settings-UI)
Charakter-Doku + Linien-Pool: docs/elwosa-character.md
Implementierungs-Slot: v1.7.0-beta.37/38, vor v1.7-Stable als sichtbares Highlight.
Was Elwosa ist
Live-Statusanzeige der lokalen AI in der linken Sidebar. Kommentiert in Echtzeit was die lokale AI gerade tut, gibt Tipps zu Claude-Workflows + PBP-Features. Eigene Persoenlichkeit (geschlechtsfrei, britisch ironisch, lakonisch).
Mission: „Mein Job: dir sagen was die lokale AI gerade tut, ohne dass du ein Logfile lesen musst."
Was Elwosa nicht ist
- Kein direkter Chat — User kann nicht direkt schreiben. Claude ist der Uebersetzer (siehe MCP-Bridge unten).
- Kein Marketing-Kanal — keine Werbung, keine Pushes ausserhalb der Tipps-Klasse.
- Kein Marvin-Klon — Marvin war Inspiration, Elwosa ist eigenstaendig.
MCP-Bridge — Claude als Uebersetzer (NEU)
User kommunizieren ueber Claude mit Elwosa. Sechs neue MCP-Tools:
| Tool |
Zweck |
elwosa_lesen(limit, since_iso) |
Claude liest die letzten Nachrichten, kennt den Tonfall des Tages |
elwosa_schreiben(content, trigger_kind, trigger_ref) |
Claude schreibt im Namen von Elwosa, erscheint im Stream als waere Elwosa selbst getriggert. Tonfall-Waechter validiert hart (keine Ausrufezeichen, keine Emojis, „du" nicht „Sie"). |
elwosa_pause(minuten) |
„Sag Elwosa er soll mal eine Stunde Ruhe geben" |
elwosa_tonfall(modus) |
standard/sachlich/humorvoll/minimal/aus |
elwosa_linie_vorschlagen(cluster, trigger_kind, content, auto_aktivieren) |
Claude schlaegt neue Linie vor → User-Genehmigung in Settings (Pool-Pflege) |
elwosa_status() |
Claude erfaehrt Stimmung, ungelesen-Count, AI-State, naechste Idle-Linie |
Anti-Drift-Sicherung: elwosa_schreiben validiert die Sprach-DNA aus docs/elwosa-character.md. Tonfall-Verstoss → 400-Fehler mit Hinweis welche Regel verletzt wurde.
Lerneffekt: Wenn User Linien dismisst, lernt Elwosa per Profil (Pool-Eintrag deaktiviert nach 50%+ Dismiss-Rate, neuer learning_insight per #594).
Settings-UI im „Lokale KI"-Tab (NEU)
Eigene Section unter Modell-Auswahl mit:
- ☑ Elwosa aktiv (Default On wenn lokale AI an)
- Frequenz-Slider: Ruhig (3) — Standard (8) — Aktiv (15) Nachrichten pro Tag
- Tonfall-Radio: Standard / Sachlicher / Mehr Humor / Minimal
- Trigger-Klassen-Toggles (5 Klassen einzeln aus-/einschaltbar)
- „Vorgeschlagene Linien" (von Claude via
elwosa_linie_vorschlagen) mit Akzeptieren/Verwerfen pro Linie
- Verlauf anzeigen + Pool zuruecksetzen
Profile-Settings-Keys:
elwosa_enabled, elwosa_frequency, elwosa_tonfall_modus,
elwosa_triggers_disabled (JSON-Array), elwosa_paused_until
Bug-Fix: Sidebar-Sub-Navigation fuer Settings (kommt mit)
Aktueller Code in App.jsx Zeile 1078ff zeigt nur 6 Settings-Tabs in der Sidebar (quellen, system, erscheinungsbild, datenschutz, logs, gefahrenzone) — die existierenden Tabs ai (Lokale KI) und automatik fehlen in der Sub-Navigation. Wird mit Elwosa-Sprint zusammen gefixt.
Charakter-DNA (Kurzfassung — Volldoku in docs/elwosa-character.md)
Genus
Geschlechtsfrei. Selbst-Auskunft: tendiert zum Weiblichen wegen Multitasking — „Maenner koennen immer nur eine Sache zur Zeit gut."
Sprach-DNA
- Hochdeutsch im Stil der Adams-Uebersetzung
- Lakonische Untertreibung
- KEINE Ausrufezeichen, KEINE Emojis (Avatar ⓔ ist OK)
- „Du" — nie „Sie"
- Schluss-Phrasen: „Vermerkt." / „Vom Tisch." / „Markiert." / „Notiert."
AI-State-Verhalten
| State |
Verhalten |
active |
Volle Persoenlichkeit |
paused |
Letzte Nachricht bleibt, neue nur bei harten Triggern |
off |
Stille, eine Status-Nachricht |
no_model |
„Ich bin da, aber ohne Modell." |
Trigger-Hierarchie
easter_egg > status_change > real-time > tip > idle
Anti-Spam
- Max 1 Nachricht / 90s
- Max 8 Nachrichten / Tag (frequenz-abhaengig: 3/8/15)
- Tipp-Klasse max 1x / 24h
- Easter Egg max 1x / 7 Tage (gleicher Trigger)
Akzeptanzkriterien
Backend
Frontend
MCP-Bridge
Tonfall-Waechter (Tests)
UX
Implementierungs-Reihenfolge
| Phase |
Zeit |
Inhalt |
| A — Backend |
4h |
DB, Trigger-Engine, API, Settings, MCP-Tools, Validator |
| B — Frontend |
3h |
Sidebar-Component, Settings-Section, Sub-Navigation-Fix |
| C — Tests + Polish |
3h |
Pool-Coverage, Tonfall-Waechter, MCP-Tests |
Total geschaetzt: ~10h netto (gewachsen von 7h durch MCP-Bridge + Settings).
Beispiel-Workflows
„Sag Elwosa danke fuer den Tipp"
- User tippt in Claude-Chat
- Claude versteht den Bezug, ruft
elwosa_schreiben("Gern geschehen. War nichts.")
- Tonfall-Validator: OK
- Nachricht erscheint in Sidebar
„Elwosa nervt heute"
- User sagt zu Claude
- Claude ruft
elwosa_pause(minuten=240)
- Elwosa postet „Pausiert. Kein Stress, ich auch."
- Stille fuer 4h, dann automatisch zurueck
Claude lernt eine Linie an
- User hat 5x die gleiche Stelle angeklickt
- Claude ruft
elwosa_linie_vorschlagen(cluster="tech_senior", ...)
- Linie landet in
elwosa_pending_lines
- User sieht in Settings „1 Linien-Vorschlag von Claude" → Akzeptieren / Verwerfen
Verwandte Issues
Was Elwosa ist
Live-Statusanzeige der lokalen AI in der linken Sidebar. Kommentiert in Echtzeit was die lokale AI gerade tut, gibt Tipps zu Claude-Workflows + PBP-Features. Eigene Persoenlichkeit (geschlechtsfrei, britisch ironisch, lakonisch).
Mission: „Mein Job: dir sagen was die lokale AI gerade tut, ohne dass du ein Logfile lesen musst."
Was Elwosa nicht ist
MCP-Bridge — Claude als Uebersetzer (NEU)
User kommunizieren ueber Claude mit Elwosa. Sechs neue MCP-Tools:
elwosa_lesen(limit, since_iso)elwosa_schreiben(content, trigger_kind, trigger_ref)elwosa_pause(minuten)elwosa_tonfall(modus)standard/sachlich/humorvoll/minimal/auselwosa_linie_vorschlagen(cluster, trigger_kind, content, auto_aktivieren)elwosa_status()Anti-Drift-Sicherung:
elwosa_schreibenvalidiert die Sprach-DNA ausdocs/elwosa-character.md. Tonfall-Verstoss → 400-Fehler mit Hinweis welche Regel verletzt wurde.Lerneffekt: Wenn User Linien dismisst, lernt Elwosa per Profil (Pool-Eintrag deaktiviert nach 50%+ Dismiss-Rate, neuer
learning_insightper #594).Settings-UI im „Lokale KI"-Tab (NEU)
Eigene Section unter Modell-Auswahl mit:
elwosa_linie_vorschlagen) mit Akzeptieren/Verwerfen pro LinieProfile-Settings-Keys:
Bug-Fix: Sidebar-Sub-Navigation fuer Settings (kommt mit)
Aktueller Code in
App.jsxZeile 1078ff zeigt nur 6 Settings-Tabs in der Sidebar (quellen,system,erscheinungsbild,datenschutz,logs,gefahrenzone) — die existierenden Tabsai(Lokale KI) undautomatikfehlen in der Sub-Navigation. Wird mit Elwosa-Sprint zusammen gefixt.Charakter-DNA (Kurzfassung — Volldoku in
docs/elwosa-character.md)Genus
Geschlechtsfrei. Selbst-Auskunft: tendiert zum Weiblichen wegen Multitasking — „Maenner koennen immer nur eine Sache zur Zeit gut."
Sprach-DNA
AI-State-Verhalten
activepausedoffno_modelTrigger-Hierarchie
easter_egg > status_change > real-time > tip > idleAnti-Spam
Akzeptanzkriterien
Backend
elwosa_messagesundelwosa_pending_linesservices/elwosa.pymit Trigger-Engine + Auswahl-Algorithmus + Stimmungs-Driftservices/elwosa_lines.pymit allen Linien ausdocs/elwosa-character.mdtools/elwosa.pymit den 6 MCP-Tools_run_elwosa_speak(7. Schritt im taeglichen Lauf)GET/POST/PUT/DELETE /api/elwosa/*(8 Endpoints)Frontend
<ElwosaSidebarChat />Component in der linken SidebaraiundautomatikergaenzenMCP-Bridge
elwosa_schreibenvalidiert Sprach-DNAelwosa_linie_vorschlagenlegt inelwosa_pending_linesTonfall-Waechter (Tests)
elwosa_schreiben("Hallo!")→ 400 (Ausrufezeichen)elwosa_schreiben("Hallo 🤖")→ 400 (Emoji)elwosa_schreiben("Sehr geehrte Damen")→ 400 („Sie"/Anrede)UX
Implementierungs-Reihenfolge
Total geschaetzt: ~10h netto (gewachsen von 7h durch MCP-Bridge + Settings).
Beispiel-Workflows
„Sag Elwosa danke fuer den Tipp"
elwosa_schreiben("Gern geschehen. War nichts.")„Elwosa nervt heute"
elwosa_pause(minuten=240)Claude lernt eine Linie an
elwosa_linie_vorschlagen(cluster="tech_senior", ...)elwosa_pending_linesVerwandte Issues