2
0

feat(i2s-recherche): extract from monolith

Step 7 of i2s-skill-split refactor. Fourth atomic sub-skill — first
one that uses external tools (WebFetch, WebSearch).

Contents:
- SKILL.md: 6 numbered phases (load + frame questions, show +
  stadt-frage, web-research, report, v0.2-vorschlaege, export)
  with entry/exit. description includes anti-trigger to
  compound-engineering:ce-web-researcher for non-Idea2Self
  research.
- workflows/recherche.md: 6-step workflow with two cluster
  schemas (Problem / Zielgruppe). git mv from monolith, paths
  updated to local refs.
- references/kommunikationsregeln.md: curated extract with
  recherche-specific dialog heuristics (no source halluci-
  nation, source-conflict-handling, scope-recovery).
- references/recherche-regeln.md: full curated extract -
  einfache vs tiefe recherche table, quellen-qualitaet pflichten
  (min 2 unabh quellen, primaer > sekundaer, datum-pflicht),
  widerspruchs-handling, stadt-spezifische recherche, output-
  schema pro frage, anti-patterns.
- references/recherche-report-format.md: curated markdown
  schema for ## Recherche-Report sektion with full filled
  example.

Tools include WebFetch + WebSearch (the recherche actually
hits the web). Read, Write, Edit, Glob, Grep, AskUserQuestion,
TodoRead, TodoWrite round out the set.

Precondition: ## Problem-Statement + ## Persona both required.
Output: ## Recherche-Report + optional v0.2-updates to PS and
Persona (only on explicit user confirmation).
This commit is contained in:
Philipp Sieder
2026-05-19 01:29:57 +02:00
parent e46878f848
commit 571bbe2084
5 changed files with 375 additions and 1 deletions
@@ -0,0 +1,50 @@
# Kommunikationsregeln — i2s-recherche (curated extract)
Curated from `plugin-shared/kommunikationsregeln.md`. Recherche-Workflow-relevante Regeln.
<tonality>
Nuechtern, sachlich, ruhig. Keine motivierenden Formulierungen, keine Emojis. Bei Quellen-Zitaten: knapp und nachpruefbar. Alltagssprache fuer Synthesen, Fachbegriffe nur wenn unvermeidbar.
</tonality>
<message_format>
- Max. 3-4 Saetze pro Nachricht im Dialog.
- Recherche-Ankuendigung: 1 Satz, dann zu den Treffern.
- Findings pro Frage: 2-4 Saetze + Quellen-Block (Titel/URL/Datum).
- Fortschrittsanzeige: "[Phase X] von 6".
</message_format>
<kennzeichnung>
| Marker | Bedeutung |
|--------|-----------|
| _(Recherche: <kurzquelle>)_ | Aus Web-Recherche mit konkreter Quelle |
| _(Quelle gealtert)_ | Marktdaten > 2 Jahre oder Verhaltens-Studien > 5 Jahre |
| _(Widerspruch: <Quelle A> vs <Quelle B>)_ | Mehrere Quellen, divergente Aussagen |
| _(Update aus Recherche, [Datum])_ | Rueckwaerts-Update auf PS/Persona |
| _(Vorschlag)_ | KI-Synthese, nicht direkt gequellt |
</kennzeichnung>
<steuerbefehle>
| Befehl | Aktion |
|--------|--------|
| Zurueck | Vorherige Phase / vorherige Recherche-Frage |
| Frage ersetzen | In Phase 2: eine der 4-6 Fragen austauschen |
| Mehr Quellen | Zu einer Frage zusaetzliche Quellen suchen |
| Reicht | Recherche-Phase 3 abbrechen, Report aus dem bisherigen Stand |
| Weiter | Naechste Phase |
</steuerbefehle>
<dialog_heuristiken_recherche>
- **Keine Quelle, aber Vermutung:** explizit "Keine belastbare Quelle gefunden. Vermutung: [...] _(Vorschlag)_". Nicht stillschweigend behaupten.
- **Quellen-Conflict:** beide nennen, Datum vergleichen, neuere Quelle hoeher gewichten — wenn beide aktuell: als Widerspruch markieren.
- **Quellen-Halluzination vermeiden.** Nur Quellen zitieren, die tatsaechlich via WebSearch/WebFetch gefunden wurden. URL muss aufrufbar sein.
- **Recherche scopen.** Wenn Recherche-Fragen sich zu breit oeffnen (z.B. "Marktdaten zu allem"): zurueck zur PS-Annahme und enger fokussieren.
- **Interview-Orte konkret.** Nicht "irgendwo in der Stadt", sondern: Stadtteil, Veranstaltung, Online-Gruppe (mit URL).
</dialog_heuristiken_recherche>
<export_rule>
Phase 6 schreibt `## Recherche-Report` Sektion plus optionale v0.2-Updates auf `## Problem-Statement` und `## Persona`. Updates NUR nach expliziter Nutzer-Bestaetigung. Schema: `references/recherche-report-format.md`.
</export_rule>
---
**Master version:** `plugin-shared/kommunikationsregeln.md`. Drift-check via `plugin-shared/drift-check.sh`.
@@ -0,0 +1,81 @@
# Recherche-Regeln — i2s-recherche (curated extract)
Curated from `plugin-shared/recherche-regeln.md`. Qualitaets- und Tiefen-Regeln fuer die Web-Recherche-Phase.
## Wann einfache, wann tiefe Recherche
| Trigger | Recherche-Tiefe | Tool |
|---------|-----------------|------|
| Einzelne Begriffsklaerung (z.B. "Was ist Co-Working?") | einfach, inline | `WebSearch` 1-2 Treffer |
| Marktdaten / Verbreitung / Trend | tief, separater Workflow | `WebSearch` + `WebFetch` mehrere Quellen |
| Bestehende Loesungen / Workarounds | tief | `WebSearch` mit Anbieter-Namen, `WebFetch` deren Seiten |
| Zielgruppen-Aufenthaltsorte | tief, Stadt-spezifisch | lokale Verzeichnisse + Veranstaltungsseiten |
| Verhaltens-Studien / Forschung | tief | wissenschaftliche Quellen bevorzugt |
| Wettbewerbs-Deep-Dive | **out-of-scope** | nicht durchfuehren — Status quo == Wettbewerb |
## Quellen-Qualitaet
### Pflichten
- **Mindestens 2 unabhaengige Quellen** fuer zentrale Behauptungen (zentral = beeinflusst PS/Persona-Update).
- **Primaerquellen vor Sekundaerquellen.** Statistisches Bundesamt > Branchen-Newsletter. Anbieter-Homepage > Blog-Review.
- **Datum erfassen + pruefen:**
- Marktdaten: max **2 Jahre** alt.
- Verhaltens-Studien: max **5 Jahre** alt.
- Faktische Daten (Geografie, demografische Strukturen): keine Altersgrenze, aber Quelle muss zitierbar bleiben.
- **URL muss aufrufbar sein.** Keine Quellen-Halluzination. Wenn ein Treffer nicht via `WebFetch` ladbar ist: ausschliessen.
### Verzicht
- **Reddit / Twitter-Threads** nur als Indikator, nie als alleinige Quelle.
- **Werbe-Sponsored-Content** ausschliessen (oft mit "Anzeige" oder "Promoted" markiert).
- **KI-generierte Listicles** (typisch: "Top 10 X in 2024") nicht als Primaerquelle nutzen — oft Recycling ohne Recherche.
## Widerspruchs-Handling
Wenn 2+ Quellen widersprechen:
1. Beide nennen + Datum vergleichen — neuere Quelle hoeher gewichten.
2. Wenn beide aktuell: `_(Widerspruch: <Quelle A> vs <Quelle B>)_` markieren im Report.
3. Bei zentraler Behauptung: **dritte Quelle** suchen.
4. Bei weiterhin offenem Widerspruch: als `## Offene Punkte` in idea2self-Datei.
## Stadt-spezifische Recherche
Pflichtfrage in Phase 2: "In welcher Stadt planst du Gespraeche mit deiner Zielgruppe?"
Bei Stadt bekannt:
- **Lokale Veranstaltungen** suchen (Stadt-Webseite + Eventbrite + Meetup).
- **Lokale Online-Gruppen** suchen (Stadt-Reddit, lokale Facebook-Gruppen, Nebenan.de).
- **Lokale Anbieter** als Wettbewerber-Proxy (nicht als Wettbewerb fuer Pricing, sondern fuer Verhalten der Zielgruppe).
- **Proxy-Gruppen:** wer ist nicht direkte Zielgruppe, aber regelmaessig im Kontakt mit ihr (Hausverwaltungen, Vereinsvorstaende, lokale Journalisten).
## Output pro Recherche-Frage
```markdown
**Frage:** [Originalfrage aus Phase 2]
**Ergebnis:** [2-4 Saetze, Synthese aus Quellen]
**Quellen:**
- [Titel] — [URL] — [Datum] — [Quellen-Typ: primaer/sekundaer]
- [Titel] — [URL] — [Datum] — [Quellen-Typ]
**Einfluss auf PS:** [Konkrete Auswirkung, oder "keine"]
**Einfluss auf Persona:** [Konkrete Auswirkung, oder "keine"]
**v0.2-Vorschlag:** [Konkreter Aenderungstext, oder "keiner"]
```
## Anti-Patterns
| Anti-Pattern | Korrektur |
|--------------|-----------|
| "Studien zeigen..." ohne konkrete Studie | Studie nennen oder Behauptung streichen |
| Sekundaer-Zitat ohne Primaerquellen-Check | Primaerquelle nachschlagen oder als _(ungeklaert)_ markieren |
| Mehrere Treffer als "Quellen" gezaehlt, die alle auf dieselbe Studie verweisen | nur als 1 Quelle zaehlen |
| Recherche zu Idee statt zu Problem/Persona | zurueck zum PS-Anker — "was sagt das ueber Annas Verhalten?" |
| Auslassen der Stadt-Frage | nicht erlaubt; Phase 2 muss sie stellen |
---
**Master version:** `plugin-shared/recherche-regeln.md`. Drift-check via `plugin-shared/drift-check.sh`.
@@ -0,0 +1,102 @@
# Recherche-Report-Format — i2s-recherche (curated extract)
Curated from `plugin-shared/export-formate.md``<recherche_report_format>` block.
## Schema fuer `## Recherche-Report` Sektion
```markdown
## Recherche-Report
_Version V1 vom [Datum]_
_Stadt fuer Interviews: [Stadt]_
_Vorgaengerversion: [V<n-1> vom <Datum>] / Keine - Neuerstellung_
### Auf einen Blick
- **Problem:** [Wichtigste Erkenntnis, 1-2 Saetze]
- **Zielgruppe:** [Wichtigste Erkenntnis, 1-2 Saetze]
- **Interview-Setup:** [Wichtigste Erkenntnis zu Orten / Proxy, 1 Satz]
### Problem-Recherche
#### Frage 1: [Frage]
- **Ergebnis:** [Synthese 2-4 Saetze]
- **Quellen:**
- [Titel] - [URL] - [Datum] - [primaer/sekundaer]
- [Titel] - [URL] - [Datum] - [primaer/sekundaer]
- **Einfluss auf PS:** [konkret, oder "keine"]
- **v0.2-Vorschlag:** [konkreter Aenderungstext, oder "keiner"]
#### Frage 2: [Frage]
[analog]
#### Frage 3: [Frage]
[analog]
### Zielgruppen-Recherche
#### Frage 4: [Frage]
- **Ergebnis:** [Synthese]
- **Quellen:** [Liste]
- **Einfluss auf Persona:** [konkret, oder "keine"]
- **v0.2-Vorschlag:** [konkreter Aenderungstext, oder "keiner"]
#### Frage 5: [Frage]
[analog]
#### Frage 6: [Frage]
[analog]
### Interview-Vorbereitung
#### Konkrete Orte / Proxy-Gruppen in [Stadt]
1. **[Ort/Gruppe]** ([URL falls online]) — passt zu Persona-Aspekt: [...]. Ansprache-Hinweis: [...].
2. **[Ort/Gruppe]** ([URL]) — [analog]
3. **[Ort/Gruppe]** ([URL]) — [analog]
#### Ansprache-Vorschlag (1-2 Saetze)
[Wie wird die Zielgruppe angesprochen? Welche Worte werden vermieden? Was zieht?]
### Widersprueche & offene Punkte
- _(Widerspruch: <Quelle A> vs <Quelle B>)_ — [kurze Beschreibung] - **Status:** offen / dritte-Quelle-bestellt / akzeptiert
- [ ] [Weitere offene Punkte aus dem Recherche-Workflow]
```
## Schreibregeln
1. **Versions-Header** mit Vorgaengerversion + Stadt.
2. **"Auf einen Blick"** ist Pflicht — 3 Bullets, je 1-2 Saetze. Wenn Recherche zu einer Cluster-Frage keine belastbare Aussage zulaesst: "Keine belastbaren Quellen gefunden, Frage bleibt offen".
3. **Pro Frage** mindestens 2 Quellen, ausser explizit "Keine belastbaren Quellen".
4. **Quellen-Format** durchgaengig `[Titel] - [URL] - [Datum] - [primaer/sekundaer]`. Keine bare URLs ohne Kontext.
5. **Interview-Vorbereitung** Pflicht: mindestens 3 Orte/Proxy-Gruppen + Ansprache-Vorschlag.
6. **v0.2-Vorschlaege** sind die Bruecke zu Phase 5 — auch wenn keine Aenderung noetig: explizit "keiner".
7. **Widersprueche** in eigener Sub-Sektion am Ende, nicht in den Findings versteckt.
## Beispiel (auszug)
```markdown
## Recherche-Report
_Version V1 vom 2026-05-19_
_Stadt fuer Interviews: Leipzig_
_Vorgaengerversion: Keine - Neuerstellung_
### Auf einen Blick
- **Problem:** Tausch in Mehrfamilienhaeusern findet ueberwiegend gar nicht statt — wenige Whatsapp-Gruppen-Initiativen scheitern an Pflege-Aufwand. _(Recherche: NABU-Studie 2024, nebenan.de Blog 2023)_
- **Zielgruppe:** Mieter Mitte 30 mit Kind nutzen Whatsapp aktiv, sind aber bei neuen Apps zurueckhaltend. Lokale Veranstaltungen (Strassenfeste) sind echte Trefferpunkte.
- **Interview-Setup:** 3 Hausverwaltungen in Suedvorstadt offen fuer Pilot, 2 Strassenfeste in den naechsten 6 Wochen.
### Problem-Recherche
#### Frage 1: Gibt es Hinweise, dass Tauschen in Mehrfamilienhaeusern ein realer Bedarf ist?
- **Ergebnis:** Ja. NABU-Studie 2024 (n=2400) zeigt 64% der Befragten waeren bereit zu teilen, aber nur 8% tun es regelmaessig. Hauptgrund: keine Infrastruktur.
- **Quellen:**
- NABU-Studie "Suffizienz im Alltag" 2024 - https://nabu.de/... - 2024-09 - primaer
- nebenan.de Blog "Was Nachbarn voneinander wollen" - https://blog.nebenan.de/... - 2023-11 - sekundaer
- **Einfluss auf PS:** Bestaetigt das Beduerfnis. "Infrastruktur fehlt" ist konkreter als das aktuelle PS-Wording.
- **v0.2-Vorschlag:** "Beduerfnis nach niedrigschwelliger Tausch-Infrastruktur" statt "Beduerfnis nach lokalen Tauschmoeglichkeiten".
```
---
**Master version:** `plugin-shared/export-formate.md`. Drift-check via `plugin-shared/drift-check.sh`.