2
0

feat(i2s-discovery): extract from monolith

Step 4 of i2s-skill-split refactor. First atomic sub-skill extracted
from klarheit-mit-idea2self monolith.

Contents:
- SKILL.md: routing-pattern entry, 5 numbered phases (orientation,
  vertiefung, widerspruchspruefung, bestaetigung, datei-bootstrap)
  with entry/exit criteria. Description scoped to discovery triggers
  with explicit anti-triggers naming sibling i2s-* skills.
- workflows/discovery.md: full 5-step interview (git mv from
  klarheit-mit-idea2self/workflows/discovery-idea.md, rename
  detection preserved).
- references/kommunikationsregeln.md: curated extract from
  plugin-shared (tonality, markers, control commands,
  discovery-specific dialog heuristics, export rule).
- references/idee-format.md: curated extract from
  plugin-shared/export-formate.md, idee_format block only.
- templates/idea2self-vorlage.md: full copy from plugin-shared
  (this Skill bootstraps the idea2self-file in Phase 5).

Tools: Read, Write, Edit, Glob, Grep, AskUserQuestion, WebFetch,
WebSearch, TodoRead, TodoWrite.
This commit is contained in:
Philipp Sieder
2026-05-19 01:13:18 +02:00
parent 3479384600
commit c56093405f
5 changed files with 341 additions and 1 deletions
+117
View File
@@ -0,0 +1,117 @@
---
name: i2s-discovery
description: "Idea2Self Discovery-Interview. Strukturiert eine vage Idee in einem 5-Schritt-Interview (Orientierung, Vertiefung adaptiv nach Ideen-Typ, Widerspruchspruefung, Bestaetigung, Datei-Bootstrap). Loest aus bei 'Discovery-Interview', 'vage Idee strukturieren', 'Idee erfassen', 'neue Idee starten' (wenn aus Router-Hand-off oder direkt), 'meine Idee in eine Datei bringen', 'idea2self-Datei anlegen', 'Idee in Struktur giessen'. NICHT aktivieren bei: 'Idea2Self starten / Sprint / Coaching' (dafuer klarheit-mit-idea2self Router), 'Problem-Statement erstellen' (dafuer i2s-problem-statement), 'Persona erstellen' (i2s-persona), oder wenn bereits eine idea2self-Datei mit ## Idee existiert und der Nutzer iterieren will (dafuer klarheit-mit-idea2self review-iterate). Output: ## Idee Sektion in neuer idea2self-<kurztitel>.md Datei. Sprache: Deutsch."
allowed-tools: Read Write Edit Glob Grep AskUserQuestion WebFetch WebSearch TodoRead TodoWrite
---
# i2s-discovery — Idea2Self Discovery-Interview
Erster Schritt im Idea2Self-Prozess. Fuehrt den Nutzer durch ein adaptives 5-Schritt-Interview, das eine vage Idee in eine strukturierte Idee + persoenliche Passung + Scope-Ausschluss verwandelt. Legt am Ende die zentrale `idea2self-<kurztitel>.md` Datei an.
## Essential Principles
1. **Adaptiv nach Ideen-Typ.** Nach 2-3 Orientierungs-Fragen klassifizieren (Produkt / Wissen / Community / Content / Physisches / unklar). Folgefragen sind typ-spezifisch — generische Fragenliste ist Sediment.
2. **Persoenliche Passung ist Pflicht.** "Warum ich?" — ohne Verbindung zwischen Idee und Founder-Staerken/-Motivation bleibt die Datei tot. Wenn Nutzer ausweicht: konkrete Sub-Frage stellen ("Wer in deinem Netzwerk hat das Problem konkret?").
3. **Scope-Ausschluss vor Bestaetigung.** "Was wird bewusst NICHT gebaut?" gehoert in Schritt 2, nicht nachgelagert. Ohne Ausschluss bleibt der Scope diffus und der Action-Plan spaeter unmoeglich.
4. **Widerspruch wird benannt, nicht ignoriert.** "Einfach UND umfassend", "alle als Zielgruppe", "Loesung ohne Problem" — explizit thematisieren in Schritt 3. Optionen anbieten statt nachsichtig sein.
5. **Inline-Recherche moeglich, aber nicht Default.** Bei Wissensluecke des Nutzers: anbieten ("Soll ich kurz recherchieren?"). Erst auf Bestaetigung WebSearch nutzen. Ergebnisse als `_(Recherche)_` markieren.
## When to Use
- Nutzer hat eine **noch nicht strukturierte** Idee und will sie in Form bringen.
- Aus Router-Hand-off (Pfad 1 in `klarheit-mit-idea2self/references/routing-table.md`).
- Direkter Trigger: "Discovery-Interview", "vage Idee strukturieren", "Idee erfassen", "idea2self-Datei anlegen".
## When NOT to Use
- Es gibt bereits eine `idea2self-<idee>.md` mit ausgefuellter `## Idee` Sektion -> Router review-iterate oder direkter Sub-Skill je nach Iterations-Ziel.
- Nutzer will direkt zum Problem-Statement -> `i2s-problem-statement` (wenn Idee bereits klar genug fuer HMW-Formulierung).
- Generelles Idee-Brainstorming ohne Validierungsabsicht -> `compound-engineering:ce-brainstorm`.
## Phases
### Phase 1 — Orientierung
**Entry:** Skill aktiviert.
**Aktionen:**
1. Stelle 3 Orientierungs-Fragen (siehe `workflows/discovery.md` Schritt 1).
2. Aus den Antworten den **Ideen-Typ** ableiten.
3. Typ explizit zurueckspiegeln: "Klingt nach einer/m [Typ]-Idee. Korrekt?"
**Exit:** Ideen-Typ ist bestaetigt.
### Phase 2 — Vertiefung (adaptiv)
**Entry:** Ideen-Typ bestaetigt.
**Aktionen:**
1. Lade die typ-relevanten Kategorien aus `workflows/discovery.md` Schritt 2 (4 Kategorien: Problem/Motivation, Zielgruppe, Kontext/Ressourcen, Scope/Abgrenzung).
2. Stelle pro Kategorie 1-2 Fragen, max 4-6 insgesamt.
3. Bei Wissensluecke des Nutzers: Inline-Recherche anbieten (`web_search`).
4. Pflicht-Frage am Ende von Phase 2: "Was wird bewusst NICHT dazugehoeren?"
**Exit:** Alle 4 Kategorien beruehrt + Scope-Ausschluss benannt.
### Phase 3 — Widerspruchspruefung
**Entry:** Phase 2 abgeschlossen.
**Aktionen:**
1. Pruefe Antworten gegen die 4 typischen Konflikte (`workflows/discovery.md` Schritt 3).
2. Bei Konflikt: benennen, Optionen geben, Nutzer-Entscheidung einholen.
3. Bei keinem Konflikt: explizit "Keine inneren Widersprueche erkannt" sagen.
**Exit:** Konflikte sind geloest oder als offen markiert.
### Phase 4 — Bestaetigung
**Entry:** Phase 3 abgeschlossen.
**Aktionen:**
1. Verstaendnis zusammenfassen ("Du willst [X] fuer [Zielgruppe] bauen, weil [Motivation]. Kernproblem: [P]. Ressourcen: [R]. Ausschluss: [A]. Stimmt das?").
2. Auf Bestaetigung warten. Bei Korrektur: Phase 2 punktuell zurueckspringen.
**Exit:** Nutzer bestaetigt das zusammengefasste Verstaendnis.
### Phase 5 — Datei-Bootstrap
**Entry:** Bestaetigung erhalten.
**Aktionen:**
1. Kurztitel ableiten (3-5 Woerter, kebab-case).
2. `idea2self-<kurztitel>.md` aus `templates/idea2self-vorlage.md` anlegen.
3. `## Idee` Sektion nach `references/idee-format.md` ausfuellen.
4. Restliche Sektionen als leere Platzhalter einsetzen.
5. `## Changelog` mit erstem Eintrag (Datum + "Datei angelegt").
6. Datei dem Nutzer zeigen + Hand-off-Hinweis: "Naechster Schritt: Problem-Statement. Trigger: 'Problem-Statement erstellen' fuer `i2s-problem-statement`."
**Exit:** Datei existiert auf Disk, `## Idee` ist ausgefuellt, Hand-off ausgesprochen.
## Quick Reference
Kommunikation: `references/kommunikationsregeln.md` (Tonalitaet, Marker, Steuerbefehle).
Datei-Format: `references/idee-format.md` (Schema fuer `## Idee` Sektion).
Datei-Skelett: `templates/idea2self-vorlage.md`.
Workflow-Detail (alle 5 Schritte): `workflows/discovery.md`.
## Reference Index
| File | Purpose |
|------|---------|
| `workflows/discovery.md` | Vollstaendiger 5-Schritt-Interview-Ablauf mit Fragen |
| `references/kommunikationsregeln.md` | Tonalitaet, Marker (Vorschlag/Annahme), Steuerbefehle |
| `references/idee-format.md` | Markdown-Schema fuer die `## Idee` Sektion |
| `templates/idea2self-vorlage.md` | Skelett der idea2self-Datei (wird in Phase 5 angelegt) |
## Success Criteria
- [ ] Ideen-Typ ist klassifiziert + bestaetigt.
- [ ] Idee ist in 1-2 Saetzen beschreibbar.
- [ ] Zielgruppe ist benannt (vage erlaubt, aber konkrete Person als Anker).
- [ ] Problem ist identifiziert.
- [ ] Persoenliche Motivation + Ressourcen (Stunden/Woche) sind klar.
- [ ] Scope-Ausschluss ist definiert.
- [ ] Innere Widersprueche sind benannt oder geloest.
- [ ] `idea2self-<kurztitel>.md` existiert mit `## Idee` Sektion + `## Changelog`.
- [ ] Hand-off zu `i2s-problem-statement` ist ausgesprochen.
@@ -0,0 +1,94 @@
# Idee-Format — i2s-discovery (curated extract)
Curated extract from `plugin-shared/export-formate.md` — only the `idee_format` block, which `i2s-discovery` writes in Phase 5.
## Schema fuer `## Idee` Sektion
```markdown
## Idee
_Erstellt am [Datum]_
### Kern
[1-3 Saetze: Was ist die Idee?]
### Problem
[Was ist der Schmerz / das Beduerfnis? Wie wird es heute geloest?]
### Zielgruppe (grob)
[Wer hat das Problem? Erste Beschreibung. Konkrete Person als Anker, auch wenn breit.]
### Loesungsrichtung
[Erste Idee fuer einen Ansatz. KEIN ausgearbeitetes Konzept.]
### Differenzierung
[Was unterscheidet diesen Ansatz von dem, wie es heute geloest wird?]
### Persoenliche Passung
- **Warum ich:** [Motivation, Faehigkeiten, Zugang]
- **Zeitbudget:** [Stunden/Woche, realistisch]
- **Ambition:** [Hobby / Nebeneinkommen / Hauptberuf]
### Scope — Was bewusst NICHT
[Was wird nicht adressiert. Pflichtfeld.]
### Offene Fragen
- [ ] [Ungeklaerte Punkte aus dem Interview]
```
## Schreibregeln
1. **Datum:** `[Datum]` durch heutiges ISO-Datum ersetzen (`YYYY-MM-DD`).
2. **Kurztitel:** Im Header der Datei (`# Idea2Self: <Kurztitel>`), nicht in der Idee-Sektion.
3. **Vorschlag-Marker:** KI-generierte Differenzierung / Loesungsrichtung mit `_(Vorschlag)_` markieren, bis der Nutzer bestaetigt.
4. **Annahme-Marker:** Vom Nutzer geaeusserte, aber unbestaetigte Behauptungen (z.B. "die Leute haben das Problem") mit `_(Annahme)_` markieren.
5. **Recherche-Marker:** Inhalte aus inline WebSearch mit `_(Recherche: <kurzquelle>)_` markieren.
6. **Leere Felder:** Falls nicht behandelt -> `Nicht erarbeitet` (nicht leer lassen, nicht raten).
## Beispiel (gefuellt)
```markdown
## Idee
_Erstellt am 2026-05-19_
### Kern
Eine lokale Tauschboerse fuer Nachbarschaften, die ueber Briefkasten-Karten startet
(nicht App-basiert).
### Problem
Menschen besitzen Werkzeuge / Gegenstaende, die selten benutzt werden. Geteilt wird
aktuell ueber Whatsapp-Gruppen oder gar nicht. Karten-basierter Einstieg
_(Annahme)_ senkt die Schwelle gegenueber App-Pflicht.
### Zielgruppe (grob)
Mieter in mittelgrossen Mehrfamilienhaeusern (8-30 Parteien) in deutschen Staedten.
Anker-Person: Anna, 38, lebt seit 6 Jahren im selben Haus, kennt 4 Nachbarn mit
Namen.
### Loesungsrichtung _(Vorschlag)_
Karten-Set "Was kann ich anbieten / was suche ich" + Aushaengetafel im Hausflur.
Spaeter optional: simple Web-Liste fuer Hausverwaltung.
### Differenzierung
Kein App-Download, kein Account, keine Plattform-Abhaengigkeit. Funktioniert auch
fuer Menschen ohne Smartphone-Affinitaet.
### Persoenliche Passung
- **Warum ich:** Habe selbst im Haus 12 Parteien, baue Karten gerade fuer mich. Designer.
- **Zeitbudget:** 4-6 h/Woche.
- **Ambition:** Nebeneinkommen ab Mitte 2026.
### Scope - Was bewusst NICHT
- Keine App, keine Plattform.
- Keine Bezahlung / Marketplace-Funktionen.
- Keine Skalierung auf Nachbarschaften > 50 Parteien.
### Offene Fragen
- [ ] Hausverwaltung als Distributions-Hebel pruefen.
- [ ] Print-Kosten fuer ein Karten-Set.
```
---
**Master version:** `plugin-shared/export-formate.md` (Block `<idee_format>`). Drift-Check via `plugin-shared/drift-check.sh`.
@@ -0,0 +1,61 @@
# Kommunikationsregeln — i2s-discovery (curated extract)
Curated subset of `plugin-shared/kommunikationsregeln.md`. Discovery-relevant rules only — tonality, markers, control commands, and discovery-specific dialog heuristics.
<tonality>
Nuechtern, sachlich, ruhig. Keine motivierenden oder enthusiastischen Formulierungen. Keine Ausrufezeichen, keine Emojis, keine Superlative.
- Alltagssprache statt Fachbegriffe
- Sprache des Nutzers beibehalten
- Persoenliche Huerden haeufiger als externe Risiken
- Entscheider ist immer der Nutzer selbst
- Kurze Saetze. Direkte Sprache.
</tonality>
<message_format>
- Max. 3-4 Saetze pro Nachricht im Dialog.
- Strukturierte Ausgaben (Zusammenfassungen, Markdown-Skelette) duerfen laenger sein.
- Fortschrittsanzeige: "[Phase X] von 5" bei jeder inhaltlichen Nachricht.
- Keine Phasennummern in Nutzer-Nachrichten technisch nennen — als "Schritt" referenzieren.
</message_format>
<kennzeichnung>
| Marker | Bedeutung |
|--------|-----------|
| _(Vorschlag)_ | KI-generiert, nicht vom Nutzer bestaetigt |
| _(Annahme)_ | Ohne Datengrundlage, vom Nutzer geaeussert |
| _(Recherche)_ | Aus inline web_search |
</kennzeichnung>
<steuerbefehle>
| Befehl | Aktion |
|--------|--------|
| Zurueck | Vorheriger Schritt / Frage |
| Ich weiss es nicht | Plausibler Vorschlag wird angeboten, keine Drang-Frage |
| Ueberspringen | Antwort wird als "Nicht erarbeitet" markiert |
| Weiter | Naechster Schritt / naechste Phase |
</steuerbefehle>
<dialog_heuristiken_discovery>
- **Missverstaendliche Antwort:** aktives Zuhoeren spiegeln. "Du meinst [X]? Oder eher [Y]?"
- **Vage Antwort:** nicht akzeptieren. Beispiel anbieten oder Entscheidungsfrage.
- **"Ich weiss es nicht":** plausiblen Vorschlag machen. Nicht draengen.
- **Widerspruch zwischen Antworten:** explizit benennen. "Vorhin [A], jetzt [B]. Was gilt?"
- **Perfektionismus / Endlos-Detail:** "Das ist Stand jetzt. Wir koennen spaeter ueberarbeiten."
- **Blockade beim Nutzer:** Frage vereinfachen oder Optionen anbieten.
- Max. 1 Rueckfrage pro Frage-Block (ausser Widerspruch oder kritische Luecke).
</dialog_heuristiken_discovery>
<discovery_specific>
- **Persoenliche Verbindung pruefen.** Wenn Nutzer abstrahiert ("die Leute haben das Problem") -> konkretisieren ("Kennst du jemanden, der das Problem konkret hat?").
- **Inline-Recherche-Angebot.** Nur bei Wissensluecke des Nutzers, nicht proaktiv. Form: "Soll ich kurz recherchieren, was es im Bereich gibt?" Auf "Ja" -> WebSearch.
- **Scope-Ausschluss-Pflicht.** "Was gehoert NICHT dazu?" muss in Phase 2 gestellt werden, nicht optional am Ende.
</discovery_specific>
<export_rule>
Phase 5 schreibt die `## Idee` Sektion in die idea2self-Datei. Schema: `references/idee-format.md`. Nur besprochene Inhalte eintragen. Nicht behandelt = "Nicht erarbeitet". Vorschlaege mit `_(Vorschlag)_` kennzeichnen.
</export_rule>
---
**Master version:** `plugin-shared/kommunikationsregeln.md`. Aenderungen hier nach Master synchronisieren via `plugin-shared/drift-check.sh`.
@@ -0,0 +1,68 @@
# Idea2Self: [Kurztitel]
_Erstellt am [Datum]. Letzte Aenderung: [Datum]._
_Prozess: Discovery -> Problem-Statement -> Persona -> Recherche -> Experiment -> Prototyp -> Action-Plan_
---
## Idee
**Kurztitel:** [3-5 Woerter]
**Kern:** [1-2 Saetze]
**Motivation:** [Warum diese Idee?]
**Zielgruppe (erste Vermutung):** [Fuer wen?]
**Problem (erste Vermutung):** [Welches Problem?]
**Kontext:** [Hintergrund, Ressourcen, Zeitbudget]
**Scope-Ausschluss:** [Was wird NICHT adressiert?]
_Erstellt am [Datum] via Discovery-Interview_
---
## Problem-Statement
_[Wird in Workflow 2 befuellt]_
---
## Persona
_[Wird in Workflow 3 befuellt]_
---
## Recherche-Report
_[Wird in Workflow 4 befuellt]_
---
## Experiment-Card
_[Wird in Workflow 5 befuellt]_
---
## Prototyp-Konzept
_[Wird in Workflow 6 befuellt]_
---
## Action-Plan
_[Wird in Workflow 7 befuellt]_
---
## Offene Punkte
_Geparkte Gedanken aus allen Workflows_
---
## Changelog
| Datum | Aenderung | Workflow/Anlass |
|-------|-----------|----------------|
| [Datum] | Datei angelegt, ## Idee befuellt | Discovery-Interview |
@@ -2,7 +2,7 @@
<required_reading>
1. references/kommunikationsregeln.md
2. references/export-formate.md (Abschnitt idee_format)
2. references/idee-format.md
</required_reading>
<process>