{
  "schemaVersion": 1,
  "app": "lea-frontend",
  "locale": "de",
  "journeys": [
    {
      "id": "interview-link-from-chat",
      "order": 2,
      "feature": "Anforderungen erheben",
      "title": "Im Chat einen Interview-Link für eine Expertin erstellen",
      "purpose": "Du willst das Wissen einer Expertin einsammeln, ohne selbst das Gespräch zu führen. Franziska erstellt dir im Chat einen persönlichen Interview-Link zu einem Drehbuch – den gibst du weiter, und die Expertin führt das Interview mit Franziska ohne Anmeldung.",
      "role": "Teamleitung",
      "preconditions": [
        "Es gibt ein Interview-Drehbuch, zum Beispiel „swdev-v1“."
      ],
      "startPath": "/chat",
      "llmDependent": true,
      "steps": [
        {
          "id": "open-chat",
          "title": "Chat öffnen",
          "meaning": "Im Chat bittest du Franziska um den Link. Sie kennt die vorhandenen Drehbücher.",
          "action": "Öffne den Chat.",
          "expect": "Das Eingabefeld ist bereit.",
          "path": "/chat",
          "target": "chat-input"
        },
        {
          "id": "request-link",
          "title": "Link für die Expertin anfragen",
          "meaning": "Ein Interview-Link geht an eine andere Person. Deshalb fragt Franziska vorher, ob sie ihn wirklich erstellen soll.",
          "action": "Schreibe: „Erstelle mir einen Interview-Link zum Drehbuch swdev-v1 für die Expertin Erika Muster. Keine E-Mail, nur den Link.“",
          "expect": "Eine Bestätigungskarte fragt, ob der Link erstellt werden soll.",
          "target": "chat-approval-card"
        },
        {
          "id": "confirm-link",
          "title": "Erstellen bestätigen",
          "meaning": "Erst mit deiner Bestätigung entsteht der Link. Franziska zeigt ihn als eigene Karte, damit er beim Kopieren unverändert bleibt.",
          "action": "Klicke auf der Karte auf „Einmal erlauben“.",
          "expect": "Eine Link-Karte mit dem Interview-Link und einem Kopieren-Knopf erscheint.",
          "target": "chat-link-card"
        },
        {
          "id": "open-as-expert",
          "title": "Link als Expertin öffnen",
          "meaning": "So sieht die Expertin das Interview: ohne Anmeldung, direkt mit Franziska.",
          "action": "Öffne den Link aus der Karte.",
          "expect": "Die Interviewseite öffnet sich mit dem Knopf, um das Interview zu starten.",
          "target": "kb-start-button",
          "app": "kb-frontend"
        }
      ],
      "result": "Du kannst einer Expertin in einer Minute einen Interview-Link geben, ohne eine E-Mail zu schreiben oder ein Konto für sie anzulegen."
    },
    {
      "id": "front-page-meet-franziska",
      "order": 3,
      "feature": "Franziska kennenlernen",
      "title": "Franziska auf der Startseite kennenlernen und eine andere Persona wählen",
      "purpose": "Du lernst Franziskas Empfang kennen und siehst, dass sie in verschiedenen Rollen auftreten kann – mit Video-Avatar oder nur mit Stimme, jede Persona mit eigenem Namen und eigenem Auftreten.",
      "role": "Endanwender",
      "preconditions": [
        "Du bist angemeldet (lokal ohne Login möglich).",
        "Die mitgelieferten Personas sind verfügbar."
      ],
      "startPath": "/",
      "llmDependent": false,
      "steps": [
        {
          "id": "open-front-page",
          "title": "Startseite öffnen",
          "meaning": "Die Startseite ist Franziskas Empfang: Hier sprichst oder schreibst du mit ihr.",
          "action": "Öffne die Startseite.",
          "expect": "Franziska erscheint mit ihrem Namen, darunter das Eingabefeld für deine Nachricht.",
          "path": "/",
          "target": "text-input"
        },
        {
          "id": "open-personas",
          "title": "Personas öffnen",
          "meaning": "Eine Persona legt fest, wer Franziska gerade ist: Name, Stimme, Auftreten und Zusatzwissen.",
          "action": "Klicke oben rechts auf dein Profil und wähle „Personas verwalten“.",
          "expect": "Eine Liste mit Personas öffnet sich, darunter die mitgelieferte Persona „Rea Zeit“.",
          "target": "profile-button"
        },
        {
          "id": "activate-persona",
          "title": "Andere Persona aktivieren",
          "meaning": "Mit einem Klick tritt Franziska in einer anderen Rolle auf – ohne dass sich die Startseite sonst verändert.",
          "action": "Klicke in der Zeile „Rea Zeit“ auf „Aktivieren“.",
          "expect": "Die Liste schließt sich und auf der Startseite steht jetzt der Name „Rea Zeit“.",
          "target": "persona-row-activate"
        },
        {
          "id": "voice-only-persona",
          "title": "Persona nur mit Stimme",
          "meaning": "Manche Personas sprechen ohne Video. Das ist schlank und schnell, zum Beispiel für ein reines Gespräch.",
          "action": "Öffne den Direktlink zur Persona „Vera Stimm“.",
          "expect": "Statt Franziskas Foto zeigt die Startseite ein schlichtes Personen-Symbol mit dem Namen „Vera Stimm“ – sie spricht ohne Video.",
          "path": "/?persona=builtin-vera-stimm"
        }
      ],
      "result": "Du kennst Franziskas Startseite und weißt, wie du sie in einer anderen Persona auftreten lässt – mit Video oder nur mit Stimme."
    },
    {
      "id": "chat-first-contact",
      "order": 4,
      "feature": "Mit Franziska chatten",
      "title": "Im Chat herausfinden, was Franziska kann",
      "purpose": "Der Chat ist der schnellste Weg zu Franziska. Du fragst sie, was sie kann, bekommst einen geordneten Überblick über ihre Fähigkeiten, stellst eine echte Frage und fängst danach ein frisches Gespräch an.",
      "role": "Teammitglied",
      "preconditions": [],
      "startPath": "/chat",
      "llmDependent": true,
      "steps": [
        {
          "id": "open-chat",
          "title": "Chat öffnen",
          "meaning": "Im Chat schreibst du mit Franziska wie mit einer Kollegin. Für den Anfang schlägt sie dir ein paar Fragen vor.",
          "action": "Öffne den Chat.",
          "expect": "Unter dem leeren Gespräch stehen Vorschläge, darunter „Was kannst du?“.",
          "path": "/chat",
          "target": "chat-suggestion"
        },
        {
          "id": "ask-capabilities",
          "title": "Fragen, was Franziska kann",
          "meaning": "Franziska kennt ihre eigenen Fähigkeiten und zeigt sie dir nach Bereichen geordnet – so weißt du, wofür du sie nutzen kannst.",
          "action": "Klicke auf den Vorschlag „Was kannst du?“.",
          "expect": "Eine Karte „Was ich für dich tun kann“ listet ihre Fähigkeiten, nach Bereichen gruppiert.",
          "target": "chat-suggestion"
        },
        {
          "id": "ask-real-question",
          "title": "Eine echte Frage stellen",
          "meaning": "Für eine Antwort schaut Franziska selbst nach, zum Beispiel in den Interview-Drehbüchern. Du siehst, welches Werkzeug sie dafür benutzt.",
          "action": "Frage: „Welche Interview-Drehbücher gibt es?“",
          "expect": "Ein Werkzeug-Hinweis oder eine Ergebniskarte zeigt, wo Franziska nachgeschaut hat, danach antwortet sie.",
          "target": "chat-input"
        },
        {
          "id": "start-new-conversation",
          "title": "Neues Gespräch beginnen",
          "meaning": "Für ein neues Thema fängst du ein frisches Gespräch an. Das alte bleibt in deiner Gesprächsliste erhalten.",
          "action": "Klicke oben auf „Neues Gespräch“.",
          "expect": "Das Gespräch ist leer und die Vorschläge sind wieder da.",
          "target": "chat-new-conversation"
        }
      ],
      "result": "Du weißt, was Franziska im Chat für dich tun kann, hast ihr eine echte Frage gestellt und kannst jederzeit ein neues Gespräch beginnen."
    },
    {
      "id": "vorgang-understand",
      "order": 6,
      "feature": "Vorgänge verstehen",
      "title": "Verstehen, was ein Vorgang ist",
      "purpose": "Ein Vorgang ist eine längere Aufgabe, die Franziska für dich verfolgt. Du siehst, wie seine Neuigkeiten im Chat ankommen, wie dein Team den Fortschritt sieht und wo der Betreiber das ganze Tagebuch findet.",
      "role": "Teammitglied und Betreiber",
      "preconditions": [
        "Du gehörst zu einem Team, für das Franziska an einem Projekt arbeitet.",
        "Franziska verfolgt für dieses Projekt gerade einen Vorgang."
      ],
      "startPath": "/chat",
      "llmDependent": false,
      "steps": [
        {
          "id": "open-chat",
          "title": "Chat öffnen",
          "meaning": "Im Chat arbeitest du mit Franziska. Hier meldet sie sich auch, wenn ein Vorgang vorankommt.",
          "action": "Öffne den Chat.",
          "expect": "Über dem Eingabefeld siehst du eine schmale Leiste mit der Anzahl neuer Ereignisse.",
          "path": "/chat",
          "target": "chat-events-strip"
        },
        {
          "id": "read-event",
          "title": "Neuigkeit lesen",
          "meaning": "Jeder Schritt eines Vorgangs landet in seinem Tagebuch. Wichtige Einträge erscheinen im Chat, ohne dich beim Schreiben zu stören.",
          "action": "Sobald die Zahl der neuen Ereignisse steigt, klicke auf die Leiste.",
          "expect": "Eine Karte zeigt die Neuigkeit und darunter, aus welchem Vorgang sie stammt.",
          "target": "chat-events-expand"
        },
        {
          "id": "open-activity",
          "title": "Franziskas Aktivität ansehen",
          "meaning": "Alle aus deinem Team sehen hier, woran Franziska für euer Projekt gerade arbeitet.",
          "action": "Klicke oben auf „Franziskas Aktivität“.",
          "expect": "Eine Liste zeigt den Fortschritt, zum Beispiel eine gestartete Phase, mit dem Namen des Vorgangs.",
          "target": "chat-activity-toggle"
        },
        {
          "id": "open-cockpit",
          "title": "Vorgang im Cockpit finden",
          "meaning": "Im Admin-Cockpit sieht der Betreiber jeden Vorgang mit seinem vollständigen Tagebuch.",
          "action": "Öffne im Admin-Cockpit den Bereich „Vorgänge“ und klicke auf den Vorgang.",
          "expect": "Das Tagebuch des Vorgangs erscheint mit allen Einträgen.",
          "path": "/vorgaenge",
          "target": "vorgang-list",
          "app": "admin-ui"
        }
      ],
      "result": "Du weißt, dass ein Vorgang Franziskas nachverfolgte Aufgabe ist – mit Neuigkeiten im Chat, Fortschritt fürs Team und vollständigem Tagebuch im Cockpit."
    },
    {
      "id": "persona-create-own",
      "order": 7,
      "feature": "Personas",
      "title": "Eine eigene Persona erstellen",
      "purpose": "Du gibst Franziska eine Rolle, die zu deinem Termin passt: Name, Beruf, Auftreten, Sprachstil und Zusatzwissen. Danach setzt du die Persona ein und kannst sie als Datei weitergeben.",
      "role": "Endanwender",
      "preconditions": [
        "Du bist angemeldet (lokal ohne Login möglich)."
      ],
      "startPath": "/",
      "llmDependent": false,
      "steps": [
        {
          "id": "open-personas",
          "title": "Personas öffnen",
          "meaning": "Hier verwaltest du alle Rollen, in denen Franziska auftreten kann.",
          "action": "Klicke oben rechts auf dein Profil und wähle „Personas verwalten“.",
          "expect": "Die Liste deiner Personas öffnet sich.",
          "path": "/",
          "target": "profile-button"
        },
        {
          "id": "describe-identity",
          "title": "Identität beschreiben",
          "meaning": "Name, Beruf und Fachgebiet sagen Franziska, wer sie in deinem Termin ist.",
          "action": "Klicke auf „Neue Persona“, fülle Name, Rolle und fachlichen Kontext aus und klicke auf „Weiter“.",
          "expect": "Der Assistent geht zum nächsten Schritt „Auftreten“.",
          "target": "persona-list-new"
        },
        {
          "id": "shape-style",
          "title": "Auftreten und Sprachstil wählen",
          "meaning": "So klingt Franziska passend zu deinem Publikum – etwa beratend statt verkaufend.",
          "action": "Wähle ein Auftreten und einen Sprachstil, zum Beispiel „Beratend“, und klicke jeweils auf „Weiter“.",
          "expect": "Der Assistent ist beim Schritt „Wissen“ angekommen.",
          "target": "persona-wizard-next"
        },
        {
          "id": "add-knowledge",
          "title": "Zusatzwissen mitgeben",
          "meaning": "Was Franziska hier liest, kann sie im Gespräch nutzen, etwa Preise oder Ansprechpartner.",
          "action": "Schreibe ein paar Fakten in das Wissensfeld und klicke auf „Weiter“.",
          "expect": "Der Assistent zeigt die Auswahl für den Avatar.",
          "target": "persona-input-extra"
        },
        {
          "id": "save-persona",
          "title": "Persona speichern",
          "meaning": "Erst gespeichert steht deine Persona jederzeit zur Verfügung.",
          "action": "Klicke weiter bis zur Übersicht und dann auf „Speichern“.",
          "expect": "Deine neue Persona steht in der Liste.",
          "target": "persona-wizard-save"
        },
        {
          "id": "activate-persona",
          "title": "Persona einsetzen",
          "meaning": "Mit einem Klick tritt Franziska in deiner neuen Rolle auf.",
          "action": "Klicke in der Zeile deiner Persona auf „Aktivieren“.",
          "expect": "Die Liste schließt sich und auf der Startseite steht der Name deiner Persona.",
          "target": "persona-row-activate"
        },
        {
          "id": "export-persona",
          "title": "Persona als Datei weitergeben",
          "meaning": "Als Datei kannst du die Persona Kolleginnen und Kollegen schicken, die sie bei sich importieren.",
          "action": "Öffne die Personas erneut, klicke in der Zeile deiner Persona auf „Mehr Aktionen“ und dann auf „Exportieren“.",
          "expect": "Dein Browser lädt eine Datei mit deiner Persona herunter.",
          "target": "persona-row-menu"
        }
      ],
      "result": "Du hast eine eigene Persona gebaut, Franziska darin auftreten lassen und weißt, wie du sie mit anderen teilst."
    },
    {
      "id": "follow-up-question-confirm",
      "order": 8,
      "feature": "Rückfragen stellen",
      "title": "Franziska eine Rückfrage per E-Mail vorbereiten lassen",
      "purpose": "Eine Anforderung ist unklar, und die Person, die es weiß, sitzt nicht im Gespräch. Franziska formuliert die Rückfrage, bindet sie an den Vorgang und zeigt dir vor dem Senden, an wen sie schreiben würde – gesendet wird erst nach deiner Bestätigung.",
      "role": "Teammitglied",
      "preconditions": [
        "Franziska verfolgt für dich einen Vorgang.",
        "Die Person, die du fragen willst, ist für Rückfragen freigegeben."
      ],
      "startPath": "/chat",
      "llmDependent": true,
      "steps": [
        {
          "id": "open-chat",
          "title": "Chat öffnen",
          "meaning": "Im Chat bittest du Franziska, für einen Vorgang bei jemandem nachzufragen.",
          "action": "Öffne den Chat.",
          "expect": "Das Eingabefeld ist bereit.",
          "path": "/chat",
          "target": "chat-input"
        },
        {
          "id": "ask-follow-up",
          "title": "Rückfrage in Auftrag geben",
          "meaning": "Franziska fragt nie ungefragt Dritte. Jede Rückfrage nach außen bestätigst du einzeln.",
          "action": "Nenne den Vorgang, beschreibe, was unklar ist, und bitte Franziska, per E-Mail bei der zuständigen Person nachzufragen.",
          "expect": "Eine Bestätigungskarte für die Rückfrage erscheint.",
          "target": "chat-approval-card"
        },
        {
          "id": "check-recipient",
          "title": "Empfänger und Frage prüfen",
          "meaning": "Vor dem Senden siehst du genau, an wen die Rückfrage geht und was darin steht.",
          "action": "Lies auf der Karte Empfänger und Frage.",
          "expect": "Die Karte nennt die E-Mail-Adresse der Person und die Frage.",
          "target": "chat-approval-card"
        },
        {
          "id": "decline",
          "title": "Ablehnen – nichts wird gesendet",
          "meaning": "Du behältst die Kontrolle: Lehnst du ab, geht keine Nachricht hinaus und es entsteht keine offene Rückfrage.",
          "action": "Klicke auf der Karte auf „Ablehnen“.",
          "expect": "Die Karte ist als abgelehnt markiert. Es wurde nichts gesendet.",
          "target": "chat-deny"
        }
      ],
      "result": "Du weißt, dass Franziska Rückfragen an Dritte vorbereitet, an deinen Vorgang bindet und erst nach deiner Bestätigung sendet."
    },
    {
      "id": "team-workflow-build",
      "order": 9,
      "feature": "Team-Automatisierung",
      "title": "Einen Team-Workflow im Designer bauen",
      "purpose": "Dein Team macht aus einem Ereignis auf dem Board eine eigene Automatisierung: erst ein Entwurf, dann ein Testlauf ohne Wirkung, dann die Veröffentlichung.",
      "role": "Teammitglied",
      "preconditions": [
        "Dein Team hat ein Board mit Franziska verbunden.",
        "Du darfst Workflows bearbeiten."
      ],
      "startPath": "/workflows",
      "llmDependent": false,
      "steps": [
        {
          "id": "open-designer",
          "title": "Designer öffnen",
          "meaning": "Hier baut dein Team Automatisierungen, die auf Ereignisse aus eurem Board reagieren.",
          "action": "Öffne die Seite „Workflows“.",
          "expect": "Der Designer zeigt „Kein Workflow geöffnet“ und den Knopf „Neuen Workflow anlegen“.",
          "path": "/workflows"
        },
        {
          "id": "start-workflow",
          "title": "Workflow anlegen",
          "meaning": "Jeder Workflow beginnt mit einem Auslöser, zum Beispiel einer geänderten Aufgabe auf dem Board.",
          "action": "Klicke auf „Neuen Workflow anlegen“ und gib ihm einen Namen.",
          "expect": "Auf der Arbeitsfläche steht der Auslöser als erster Baustein.",
          "target": "wf-empty-new"
        },
        {
          "id": "add-condition",
          "title": "Bedingung einbauen",
          "meaning": "Die Bedingung legt fest, wann der Workflow weiterläuft – etwa nur, wenn eine Aufgabe erledigt ist.",
          "action": "Füge aus der Bausteinleiste eine „Bedingung“ hinzu: der neue Status der Aufgabe ist „Done“.",
          "expect": "Der Baustein zeigt keinen Fehler mehr.",
          "target": "wf-palette-condition"
        },
        {
          "id": "save-draft",
          "title": "Entwurf speichern",
          "meaning": "Ein Entwurf ändert an laufenden Automatisierungen nichts. Du kannst in Ruhe weiterbauen.",
          "action": "Klicke auf „Speichern“.",
          "expect": "Oben erscheint „Entwurf gespeichert“.",
          "target": "wf-save-button"
        },
        {
          "id": "test-run",
          "title": "Testlauf ohne Wirkung",
          "meaning": "Der Testlauf spielt ein Beispielereignis durch, ohne auf dem Board oder per Mail etwas auszulösen.",
          "action": "Klicke auf „Testlauf (ohne Wirkung)“.",
          "expect": "Unten erscheint das Ergebnis mit jedem Baustein und seinem Status.",
          "target": "wf-testrun-button"
        },
        {
          "id": "publish",
          "title": "Workflow veröffentlichen",
          "meaning": "Erst die veröffentlichte Fassung reagiert auf echte Ereignisse vom Board.",
          "action": "Klicke auf „Veröffentlichen“.",
          "expect": "Der Workflow trägt jetzt die Markierung „Rev. 1“.",
          "target": "wf-publish-button"
        }
      ],
      "result": "Dein Team hat eine eigene Automatisierung gebaut, gefahrlos getestet und in Betrieb genommen."
    },
    {
      "id": "presentation-from-chat",
      "order": 10,
      "feature": "Präsentationen",
      "title": "Im Chat eine Präsentation erstellen lassen",
      "purpose": "Du brauchst schnell ein paar Folien zu einem Thema. Franziska baut dir im Chat eine kleine Präsentation – du schaust sie direkt an, lädst sie als PDF herunter und gibst den Link weiter.",
      "role": "Teammitglied",
      "preconditions": [
        "Der Präsentations-Dienst läuft."
      ],
      "startPath": "/chat",
      "llmDependent": true,
      "steps": [
        {
          "id": "open-chat",
          "title": "Chat öffnen",
          "meaning": "Im Chat beschreibst du Franziska, welche Präsentation du brauchst.",
          "action": "Öffne den Chat.",
          "expect": "Das Eingabefeld ist bereit.",
          "path": "/chat",
          "target": "chat-input"
        },
        {
          "id": "request-deck",
          "title": "Präsentation anfragen",
          "meaning": "Franziska baut die Folien im Hintergrund. Das dauert einen Moment – du kannst in der Zeit weiterschreiben.",
          "action": "Schreibe: „Erstelle mir eine kurze Präsentation mit drei Folien über die Vorteile von Pausen im Arbeitsalltag.“ Falls eine Bestätigungskarte erscheint, klicke auf „Einmal erlauben“.",
          "expect": "Eine Präsentationskarte erscheint und zeigt, dass die Präsentation erstellt wird.",
          "target": "chat-presentation-card"
        },
        {
          "id": "deck-ready",
          "title": "Fertige Präsentation",
          "meaning": "Sobald die Folien fertig sind, zeigt die Karte Titel und Folienzahl, einen PDF-Knopf und einen Link zum Teilen.",
          "action": "Warte, bis die Karte die fertige Präsentation zeigt.",
          "expect": "Die Karte zeigt den Titel, die Zahl der Folien, einen PDF-Knopf und einen Link zum Teilen.",
          "target": "chat-presentation-share"
        },
        {
          "id": "open-deck",
          "title": "Präsentation ansehen",
          "meaning": "Die Präsentation öffnet sich über dem Chat. Genau so sieht sie auch jemand, dem du den Link schickst.",
          "action": "Klicke auf „Präsentation öffnen“.",
          "expect": "Die Folien erscheinen in einem großen Fenster über dem Chat.",
          "target": "chat-presentation-overlay-frame"
        }
      ],
      "result": "Du hast in wenigen Minuten eine kleine Präsentation, die du ansehen, als PDF ablegen und per Link teilen kannst."
    }
  ]
}
