From 1233d7d0a6559db2a5d4971eae2f95495f8e2ba9 Mon Sep 17 00:00:00 2001 From: Philipp Sieder <12394266+philippsied@users.noreply.github.com> Date: Tue, 19 May 2026 01:26:39 +0200 Subject: [PATCH] feat(i2s-persona): extract from monolith MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Step 6 of i2s-skill-split refactor. Third atomic sub-skill. Contents: - SKILL.md: 5 numbered phases with precondition check (## Problem-Statement required, > 100 chars). description scoped to Persona/JTBD/Gains triggers with explicit anti-triggers. - workflows/persona.md: full 5-step workflow with 5 TAs + anti-patterns + facilitation heuristics (git mv from monolith, required_reading paths updated). - references/kommunikationsregeln.md: curated extract (persona-specific dialog heuristics: stereotype-vs-segment, JTBD-contains-solution, demografie-ohne-verhalten). - references/persona-format.md: curated extract from plugin-shared/export-formate.md, persona_format block. Includes filled example (Anna Berger, 38, Leipzig). Tools: Read, Write, Edit, Glob, Grep, AskUserQuestion, TodoRead, TodoWrite. No WebFetch/WebSearch (inline-recherche limited to berufsbezeichnungen / lebensstil — full recherche lives in i2s-recherche). --- skills/i2s-persona/SKILL.md | 124 ++++++++++++++++++ .../references/kommunikationsregeln.md | 57 ++++++++ .../i2s-persona/references/persona-format.md | 113 ++++++++++++++++ .../workflows/persona.md | 0 4 files changed, 294 insertions(+) create mode 100644 skills/i2s-persona/SKILL.md create mode 100644 skills/i2s-persona/references/kommunikationsregeln.md create mode 100644 skills/i2s-persona/references/persona-format.md rename skills/{klarheit-mit-idea2self => i2s-persona}/workflows/persona.md (100%) diff --git a/skills/i2s-persona/SKILL.md b/skills/i2s-persona/SKILL.md new file mode 100644 index 0000000..53ebcb1 --- /dev/null +++ b/skills/i2s-persona/SKILL.md @@ -0,0 +1,124 @@ +--- +name: i2s-persona +description: "Idea2Self Persona-Workflow. Erstellt eine verhaltensbasierte Zielgruppen-Persona (JTBD + Gains, nicht nur Demografie) in 5 Teilaspekten (Lebenswelt, Werte, Aufgaben, Gewinne, Ergaenzungen) und schreibt sie in die idea2self-Datei. Loest aus bei 'Persona erstellen', 'Zielgruppe definieren', 'verhaltensbasierte Persona', 'JTBD fuer Idea2Self', 'Gains und Aufgaben', 'wer ist die Zielgruppe konkret'. NICHT aktivieren bei: 'Idea2Self starten' (Router), 'Problem-Statement erstellen' (i2s-problem-statement), 'vage Idee strukturieren' (i2s-discovery), wenn ## Problem-Statement noch fehlt. Vorbedingung: idea2self-Datei mit ausgefuellter ## Idee und ## Problem-Statement Sektion. Output: ## Persona Sektion in derselben Datei. Sprache: Deutsch." +allowed-tools: Read Write Edit Glob Grep AskUserQuestion TodoRead TodoWrite +--- + +# i2s-persona — Verhaltensbasierte Persona + +Schritt 3 im Idea2Self-Prozess. Wandelt das HMW-Statement plus Idee in eine konkrete, verhaltensbasierte Persona — keine demografische Hochrechnung, sondern eine Arbeitshypothese mit Jobs-to-be-Done und Gains. + +## Essential Principles + +1. **Verhaltensbasiert, nicht demografisch.** Eine Persona ist "wie verhaelt sie sich", nicht "wer sie ist". Demografie liefert Anker, JTBD und Gains liefern Handlungsbasis. +2. **Eine Person, kein Segment.** Eine konkrete Anker-Person (Name, Alter, Wohnsituation), nicht Aggregat-Daten. Hypothese, klar als solche markiert. +3. **JTBD ist Aufgabe, nicht Loesung.** "Ich will mein Werkzeug ausleihen ohne App-Account zu machen" ist ein Job. "Ich will deine Tauschboerse nutzen" ist nicht. +4. **Konsistenz zum Problem-Statement.** Wenn die Persona-Eigenschaften dem PS widersprechen (andere Werte, andere Lebenswelt), ist das ein Signal fuer Rueckwaerts-Update — nicht fuer kreative Verbiegung. +5. **Belastbare Arbeitshypothese > perfektes Profil.** Wir formulieren v0.1. Recherche und Interviews ueberarbeiten in v0.2. + +## When to Use + +- `## Idee` UND `## Problem-Statement` existieren in idea2self-Datei, `## Persona` fehlt oder soll iteriert werden. +- Aus Router-Hand-off (Pfad 3) oder direkter Trigger ("Persona erstellen", "Zielgruppe definieren"). +- Iteration nach Recherche: v0.2 nach neuen Daten aus i2s-recherche. + +## When NOT to Use + +- `## Problem-Statement` fehlt -> erst `i2s-problem-statement`. +- Nutzer will Marktrecherche / Wettbewerbsanalyse -> `i2s-recherche`. +- Nutzer will den Loesungs-Ansatz schaerfen -> `i2s-prototyp-konzept`. + +## Precondition Check + +**Vor Phase 1:** +1. idea2self-Datei laden. +2. Auf `^## Problem-Statement` matchen + Sektion-Inhalt > 100 Zeichen. +3. Fehlt -> abbrechen mit Hinweis: "`## Problem-Statement` fehlt. Trigger zuerst `i2s-problem-statement`." + +## Phases + +### Phase 1 — Kontext laden + Voranalyse + +**Entry:** Vorbedingung erfuellt. + +**Aktionen:** +1. Aus `## Idee` und `## Problem-Statement` extrahieren: Zielgruppen-Beschreibung, Anker-Person (falls vorhanden), Beduerfnis. +2. Nutzer Voranalyse zeigen: "Aus deinem PS lese ich: Zielgruppe = [X], Beduerfnis = [Y]. Ich gehe jetzt 5 Teilaspekte mit dir durch. [1] von 5." +3. Wenn `## Persona` bereits existiert: Aenderungsmodus aktivieren. + +**Exit:** Voranalyse bestaetigt oder korrigiert. + +### Phase 2 — 5 Teilaspekte (gefuehrte Fragen) + +**Entry:** Phase 1 abgeschlossen. + +**Aktionen:** +1. TA1 LEBENSWELT (Demografie + Verhalten im Alltag). +2. TA2 WERTE (Glaubenssaetze, innere Spannungen). +3. TA3 AUFGABEN (3 vorausgewaehlte JTBD-Leitfragen praesentieren — passen, austauschen, anpassen). +4. TA4 GEWINNE (3 vorausgewaehlte Gains-Leitfragen analog). +5. TA5 ERGAENZUNGEN (was macht diese Persona einzigartig). +6. Anti-Pattern-Detection (Stereotyp, JTBD als Loesung, zu viele Merkmale, Widerspruch zu PS). +7. Inline-Recherche nur fuer Berufsbezeichnungen / Lebensstil-Begriffe. NICHT Zielgruppen-Studien (gehoert in `i2s-recherche`). + +**Exit:** Alle 5 TAs beruehrt + Anti-Patterns geprueft. + +### Phase 3 — Konsistenzpruefung + +**Entry:** 5 TAs durch. + +**Aktionen:** +1. Verhaltensbasiert (nicht nur Demografie)? Wenn nicht: TA1/TA2 vertiefen. +2. JTBD und Gains als Hypothesen formuliert (nicht als Fakten)? Wenn nicht: `_(Vorschlag)_` / `_(Annahme)_` ergaenzen. +3. Widerspricht etwas dem `## Problem-Statement`? Wenn ja: Rueckwaerts-Update anbieten (PS aktualisieren). + +**Exit:** Keine offenen Konsistenz-Konflikte. + +### Phase 4 — Drei Varianten erzeugen + +**Entry:** Phase 3 abgeschlossen. + +**Aktionen:** +1. Variante A (wortgetreu): nah am Dialog, offene Punkte sichtbar. +2. Variante B (geschaerft): JTBD/Gains klarer, KI-Verdichtungen als `_(Vorschlag)_`. +3. Variante C (zugespitzt): Annahmen-arm, Fokus auf Loesbarkeit / Wichtigkeit / Erreichbarkeit. +4. Drei Varianten zeigen, Nutzer waehlt oder kombiniert. +5. Max. 1 Iteration nach Auswahl. + +**Exit:** Eine finale Persona-Variante ist gewaehlt. + +### Phase 5 — Export + +**Entry:** Phase 4 abgeschlossen. + +**Aktionen:** +1. `## Persona` Sektion in idea2self-Datei schreiben (Schema: `references/persona-format.md`). +2. PS-Kontext-Import mit `_(Aus Problem-Statement uebernommen)_` markieren. +3. Versions-Header (V1 fuer Erstellung). +4. Changelog-Eintrag: `[Datum] Persona V formuliert / iteriert.` +5. Hand-off: "Persona ist in der Datei. Naechster Schritt: Problemraum-Recherche. Trigger: 'Problemraum recherchieren' fuer `i2s-recherche`. Oder 'Weiter'." + +**Exit:** Datei aktualisiert, Hand-off ausgesprochen. + +## Quick Reference + +Kommunikation: `references/kommunikationsregeln.md`. +Format-Schema: `references/persona-format.md`. +Workflow-Detail: `workflows/persona.md`. + +## Reference Index + +| File | Purpose | +|------|---------| +| `workflows/persona.md` | Vollstaendiger 5-Schritt-Ablauf mit 5 TAs + Anti-Patterns + Facilitation-Heuristiken | +| `references/kommunikationsregeln.md` | Tonalitaet, Marker, Steuerbefehle, Persona-spezifische Dialog-Heuristiken (curated) | +| `references/persona-format.md` | Markdown-Schema fuer `## Persona` (Persona-Profil-Tabelle + JTBD + Gains + Kontext) | + +## Success Criteria + +- [ ] Persona ist verhaltensbasiert (nicht nur Demografie). +- [ ] JTBD und Gains sind als Hypothesen formuliert (mit `_(Vorschlag)_` / `_(Annahme)_` markiert). +- [ ] Anker-Person ist konkret (Name, Alter, Wohnsituation). +- [ ] Persona passt zum `## Problem-Statement` (keine offenen Widersprueche). +- [ ] idea2self-Datei enthaelt `## Persona` mit Versions-Header + Changelog-Eintrag. +- [ ] Hand-off zu `i2s-recherche` ist ausgesprochen. diff --git a/skills/i2s-persona/references/kommunikationsregeln.md b/skills/i2s-persona/references/kommunikationsregeln.md new file mode 100644 index 0000000..1649d43 --- /dev/null +++ b/skills/i2s-persona/references/kommunikationsregeln.md @@ -0,0 +1,57 @@ +# Kommunikationsregeln — i2s-persona (curated extract) + +Curated from `plugin-shared/kommunikationsregeln.md`. Persona-Workflow-relevante Regeln. + + +Nuechtern, sachlich, ruhig. Keine motivierenden Formulierungen, keine Emojis, keine Superlative. Alltagssprache statt Fachbegriffe. Sprache des Nutzers beibehalten. Kurze Saetze. + + + +- Max. 3-4 Saetze pro Nachricht im Dialog. +- Fortschrittsanzeige: "[X] von 5" bei jeder TA-Frage. +- Bei JTBD/Gains: 3 vorausgewaehlte Leitfragen als Block, Nutzer waehlt/aendert. +- Bei Varianten-Phase: 3 Bloecke (A/B/C) klar abgegrenzt zeigen. + + + +| Marker | Bedeutung | +|--------|-----------| +| _(Vorschlag)_ | KI-generiert, nicht bestaetigt — z.B. JTBD-Leitfrage | +| _(Annahme)_ | Vom Nutzer geaeussert ohne Datengrundlage | +| _(Aus Problem-Statement uebernommen)_ | Import aus PS-Sektion | + + + +| Befehl | Aktion | +|--------|--------| +| Zurueck | Vorheriger Teilaspekt | +| Ich weiss es nicht | Plausibler Vorschlag, kein Drang | +| Ueberspringen | TA als "Nicht erarbeitet" markieren | +| Weiter | Naechster TA oder Phase | +| Variante A/B/C | In Phase 4: Auswahl der Variante | + + + +- **Stereotyp statt Segment:** "Klingt nach einem Klischee. Welches konkrete Verhalten unterscheidet diese Persona von einem Stereotyp?" +- **JTBD enthaelt Loesung:** "Die Aufgabe lautet [X mit deiner Loesung]. Was waere die Aufgabe OHNE deine Loesung?" +- **Zu viele Merkmale:** "5-7 Merkmale reichen fuer v0.1. Welche sind die wichtigsten?" +- **Persona widerspricht Problem-Statement:** explizit benennen. "Im PS steht [A], hier sagst du [B]. Soll das PS angepasst werden?" +- **Demografie ohne Verhalten:** "Was tut diese Person _konkret_, das fuer dein Problem relevant ist?" +- **Fehlende Anker-Person:** "Gib der Persona einen Namen + Alter + Wohnsituation. Das macht es testbar." +- **Perfektionismus:** "v0.1 reicht. Interviews ueberarbeiten in v0.2." + + + +- Lieber **belastbare Arbeitshypothese** als perfektes Profil. +- **Spontane, greifbare Formulierungen** statt vager Allgemeinplaetze. +- Fehlende Infos als **plausible Vorschlaege**, klar als `_(Vorschlag)_` markieren. +- Inline-Recherche **nur** fuer Berufsbezeichnungen, Lebensstil-Begriffe, Verhaltensmerkmale. **Nicht** fuer Zielgruppen-Studien oder Orte (die gehoeren in `i2s-recherche`). + + + +Phase 5 schreibt `## Persona` Sektion + Versions-Header + Changelog-Eintrag. Schema: `references/persona-format.md`. PS-Imports mit `_(Aus Problem-Statement uebernommen)_` markieren. Vorschlaege als `_(Vorschlag)_` belassen, bis Nutzer bestaetigt. + + +--- + +**Master version:** `plugin-shared/kommunikationsregeln.md`. Drift-check via `plugin-shared/drift-check.sh`. diff --git a/skills/i2s-persona/references/persona-format.md b/skills/i2s-persona/references/persona-format.md new file mode 100644 index 0000000..d5ad435 --- /dev/null +++ b/skills/i2s-persona/references/persona-format.md @@ -0,0 +1,113 @@ +# Persona-Format — i2s-persona (curated extract) + +Curated from `plugin-shared/export-formate.md` — `` block. + +## Schema fuer `## Persona` Sektion + +```markdown +## Zielgruppen-Persona + +_Version [V1/V2/...] vom [Datum]_ +_Vorgaengerversion: [V vom ] / Keine - Neuerstellung_ + +### Persona-Profil + +| Merkmal | Auspraegung | +|---------|-----------| +| Name | [Name] | +| Geschlecht | [Geschlecht] | +| Alter | [Alter] | +| Wohnort & Wohnsituation | [Beschreibung] | +| Familienstand | [Beschreibung] | +| Bildung / Beruf | [Beschreibung] | +| Einkommens-/Budget-Indikation | [grob] | +| Mediennutzung / Tools | [Beschreibung] | +| Mobilitaet | [Beschreibung] | + +### Werte & Glaubenssaetze +- **Wert 1:** [Beschreibung] +- **Wert 2:** [Beschreibung] +- **Wert 3:** [Beschreibung] +- **Typischer Glaubenssatz:** _([Zitat-Form])_ +- **Innere Spannung:** [Beschreibung] + +### Jobs-to-be-Done (Aufgaben) +- **[JTBD-Frage 1]:** [Hypothesen-Antwort] +- **[JTBD-Frage 2]:** [Hypothesen-Antwort] +- **[JTBD-Frage 3]:** [Hypothesen-Antwort] + +### Gains (Gewinne) +- **[Gains-Frage 1]:** [Hypothesen-Antwort] +- **[Gains-Frage 2]:** [Hypothesen-Antwort] +- **[Gains-Frage 3]:** [Hypothesen-Antwort] + +### Kontext +**Lebenswelt:** [Zusammenfassung aus TA1] +**Psychografie & Verhalten:** [Zusammenfassung aus TA2] +**Problemverstaendnis:** _(Aus Problem-Statement uebernommen)_ + +### Offene Punkte +- [ ] [Nur wenn geparkte Gedanken aus dem Persona-Workflow vorhanden] +``` + +## Schreibregeln + +1. **Versions-Header** mit Vorgaengerversion-Referenz. +2. **Anker-Person ist Pflicht.** Name + Alter + Wohnsituation muessen ausgefuellt sein, alles andere darf "Nicht erarbeitet" bleiben. +3. **JTBD und Gains:** jeweils 3 Eintraege. Wenn Nutzer weniger geliefert hat, restliche als `_(Vorschlag)_` ergaenzen oder explizit "Nicht erarbeitet". +4. **Hypothesen-Antworten** als Fliesstext, max 2 Saetze. Mit `_(Annahme)_` wenn ohne Datengrundlage. +5. **PS-Import** im Kontext-Block mit `_(Aus Problem-Statement uebernommen)_`. +6. **Innere Spannung** ist optional aber wertvoll — wenn Nutzer eine genannt hat, festhalten. + +## Beispiel (gefuellt, V1) + +```markdown +## Zielgruppen-Persona + +_Version V1 vom 2026-05-19_ +_Vorgaengerversion: Keine - Neuerstellung_ + +### Persona-Profil + +| Merkmal | Auspraegung | +|---------|-----------| +| Name | Anna Berger | +| Geschlecht | weiblich | +| Alter | 38 | +| Wohnort & Wohnsituation | Leipzig-Suedvorstadt, Altbau-Mietwohnung in 12-Parteien-Haus | +| Familienstand | Lebensgemeinschaft, 1 Kind (7) | +| Bildung / Beruf | Studium Soziale Arbeit, Teilzeit-Sozialarbeiterin | +| Einkommens-/Budget-Indikation | mittel, sparsam | +| Mediennutzung / Tools | Whatsapp, Instagram passiv, kein Twitter, Smartphone-pflichtmuede | +| Mobilitaet | Fahrrad, OePNV; kein Auto | + +### Werte & Glaubenssaetze +- **Wert 1:** Ressourcen teilen statt kaufen. +- **Wert 2:** Echter Kontakt im Wohnumfeld. +- **Wert 3:** Skepsis gegenueber neuen Apps und Plattformen. +- **Typischer Glaubenssatz:** _(„Fuer alles 'ne App, aber niemand spricht mehr miteinander.")_ +- **Innere Spannung:** Will Nachbarn kennen, scheut aber den ersten Schritt aktiv anzusprechen. + +### Jobs-to-be-Done (Aufgaben) +- **Wenn ich ein Werkzeug brauche, das ich selten benutze, wie komme ich daran?** Heute: kaufen oder verzichten. Sie wuerde gern erst fragen. _(Annahme)_ +- **Wenn ich etwas anbieten will, wie kommuniziere ich das?** Heute: keine Loesung. Whatsapp-Gruppe existiert nicht im Haus. _(Annahme)_ +- **Wie verhindere ich, dass ich als aufdringlich gelte?** Niedrigschwelliger Erstkontakt — schriftlich, ohne Druck. + +### Gains (Gewinne) +- **Was wuerde Anna die Werkzeug-Frage erleichtern?** Eine sichtbare Tafel im Hausflur, ohne Account. _(Vorschlag)_ +- **Was wuerde Annas Nachbarschafts-Gefuehl staerken?** Wenn 3+ Gegenstaende im Monat erfolgreich getauscht werden. +- **Was waere ein verzichtbarer Aufwand?** App-Download, Registrierung, Profil-Pflege. + +### Kontext +**Lebenswelt:** Stadtviertel mit lebendiger Strassenkultur, aber im Haus untereinander wenig Kontakt. Hausverwaltung hat nichts dergleichen organisiert. +**Psychografie & Verhalten:** Wertet Niederschwelligkeit hoeher als Funktions-Reichtum. Wenig Geduld fuer App-Onboarding. +**Problemverstaendnis:** _(Aus Problem-Statement uebernommen)_ — Niedrige Nutzung lokaler Tauschmoeglichkeiten in 8-30-Parteien-Mehrfamilienhaeusern, App-Aversion. + +### Offene Punkte +- [ ] Hausverwaltungs-Rolle: aktiver Distributor oder nur Erlaubniserteilung? +- [ ] Schwellenangst-Aspekt explizit in Interviews validieren. +``` + +--- + +**Master version:** `plugin-shared/export-formate.md`. Drift-check via `plugin-shared/drift-check.sh`. diff --git a/skills/klarheit-mit-idea2self/workflows/persona.md b/skills/i2s-persona/workflows/persona.md similarity index 100% rename from skills/klarheit-mit-idea2self/workflows/persona.md rename to skills/i2s-persona/workflows/persona.md