2
0
Files
Philipp Sieder 7691b408e8 refactor(skills): migrate all 8 SKILL.md to pure-XML + apply audit fixes
Pure-XML body structure per marketplace-tools use-xml-tags.md (DEC-0013
D-XML, founder-approved): all markdown headings removed from skill
bodies, replaced with semantic tags (<objective>, <quick_start>,
<success_criteria> required; <essential_principles>, <when_to_use>,
<when_not_to_use>, <precondition_check>, <workflow>, <reference_guides>,
plus router <routing>/<intake>/<file_convention>/<guardrails>). Phases
kept as bold labels inside <workflow>. Frontmatter (name, description,
allowed-tools, metadata.version) preserved; all reference paths intact.

Audit fixes (REV 2026-05-21) folded into the per-skill migration:
- F1 i2s-persona: drop inline-research line (no WebFetch/WebSearch
  declared) -> point to i2s-recherche.
- F2 i2s-discovery: web_search -> WebSearch (correct tool name).
- F3 i2s-discovery/experiment-card/prototyp-konzept: document that
  WebFetch/WebSearch fire only on explicit confirmation for a single
  lookup (full research lives in i2s-recherche).
- F4 router: shorten 897-char description to ~480 (exhaustive trigger
  list lives in references/routing-table.md).
- F5 i2s-experiment-card: soften description preconditions (v0.2
  preferred, not enforced — matches the actual precondition check).

Verification (8 checks): no markdown headings, 3 required tags/skill,
frontmatter integrity, XML tags balanced (code-fence aware), local refs
resolve, 8 skills, gitignore present, drift-check exit 0. All green.

8 parallel general-purpose subagents (one per SKILL.md, disjoint files).
2026-05-22 09:47:54 +02:00

222 lines
12 KiB
Markdown

---
name: klarheit-mit-idea2self
description: "Idea2Self Facilitator-Router. Entry-Point fuer den Idea2Self-Prozess: vage Idee zu Action-Plan + WOOP. Loest aus bei 'Ich habe eine Idee', 'Idea2Self starten/Sprint/Coaching', 'Idee strukturieren', 'idea2self iterieren/ueberarbeiten/review'. Routet anschliessend an spezialisierte i2s-* Skills. NICHT aktivieren bei direkten Artefakt-Triggern (z.B. 'Problem-Statement erstellen', 'Persona erstellen', 'Action-Plan / WOOP') — dafuer die jeweiligen i2s-* Skills. Vollstaendige Trigger-Mapping-Tabelle: references/routing-table.md. Sprache: Deutsch."
allowed-tools: Read Write Edit Glob Grep AskUserQuestion TodoRead TodoWrite
metadata:
version: 2.0.0
---
<objective>
Entry-Point fuer den Idea2Self-Prozess. Routet zwischen sieben spezialisierten Workflow-Skills und uebernimmt selbst nur drei cross-cut-Aufgaben: idea2self-Datei anlegen, Sequenz-Empfehlung geben, bestehende Datei iterieren.
</objective>
<essential_principles>
1. **Routing only.** Der Router fuehrt selbst keine Artefakt-Workflows aus. Er erkennt das Intent, prueft Vorbedingungen, und uebergibt an den passenden `i2s-*` Skill.
2. **idea2self-Datei ist die einzige Quelle der Wahrheit.** Der Router legt sie an (`idea2self-<idee>.md`, kebab-case, 3-5 Woerter). Jeder Sub-Skill liest sie vor seiner Arbeit und schreibt seinen Abschnitt zurueck.
3. **Vorbedingungs-Pruefung vor Hand-off.** Persona braucht Problem-Statement, Experiment-Card braucht Recherche, etc. Wenn eine Vorbedingung fehlt: dem Nutzer den fehlenden Sub-Skill nennen, nicht selbst nachholen.
4. **Sequenz-Empfehlung, kein Zwang.** Standard-Reihenfolge 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7. Nutzer kann ueberspringen, wenn er Infos anderweitig vorhaelt.
5. **Iteration als Router-Capability.** Bestehende idea2self-Datei ueberarbeiten lebt im Router (`workflows/review-iterate.md`) — ein separater Sub-Skill wuerde nur duplizieren.
</essential_principles>
<when_to_use>
- Nutzer beschreibt eine vage Idee, will sie strukturieren ("ich habe da eine Idee", "wie packe ich das an?").
- Nutzer fragt nach dem gesamten Idea2Self-Sprint / Launchpad / Coaching-Format.
- Nutzer hat eine bestehende `idea2self-<idee>.md` und will sie ueberarbeiten / iterieren / Konsistenz checken.
- Nutzer ist unsicher, welcher Artefakt-Schritt als naechstes dran ist.
</when_to_use>
<when_not_to_use>
- Nutzer triggert direkt einen Artefakt-Workflow ("Persona erstellen", "Problem-Statement erstellen", "Action-Plan erstellen") -> der jeweilige `i2s-*` Skill aktiviert sich von selbst, der Router bleibt aus.
- Nutzer will Web-Recherche zu seinem Problemraum -> `i2s-recherche` direkt.
- Generelles Brainstorming ohne Idee-Bezug -> kein `i2s-*` Skill, nutze `compound-engineering:ce-brainstorm`.
</when_not_to_use>
<quick_start>
**Beispiel A — Happy Path (neue Idee)**
**Input:** "Ich habe da eine Idee fuer eine Nachbarschafts-Tauschboerse. Wie packe ich das an?"
**Phase 1 (Intent):** Trigger-Match auf Pfad 1 ("Idee starten", "wie packe ich das an"). Datei-Pfad nicht genannt -> Cold-Start.
**Phase 2 (Vorbedingung):** Pfad 1 hat keine Vorbedingung. Skip.
**Phase 3 (Hand-off):**
```
Klingt nach einem Discovery-Start. Es existiert noch keine idea2self-Datei.
Naechster Schritt: `i2s-discovery`.
Trigger-Phrase: "Discovery-Interview starten".
Soll ich die Diskussion an `i2s-discovery` uebergeben?
```
**Beispiel B — Precondition-Gap**
**Input:** "Persona erstellen fuer meine Tauschboersen-Idee."
**Phase 1 (Intent):** Trigger-Match auf Pfad 3 (Persona). Datei-Pfad fehlt -> Standardpfad `./idea2self-tauschboerse.md` versuchen.
**Phase 2 (Vorbedingung):** Datei existiert, aber `^## Problem-Statement` matcht nicht oder ist leer.
**Phase 3 (gestoppt, Hand-off mit Korrektur):**
```
Voraussetzung `## Problem-Statement` fehlt in idea2self-tauschboerse.md.
Persona-Workflow waere damit ohne Anker.
Naechster Schritt: `i2s-problem-statement` (vor i2s-persona).
Trigger-Phrase: "Problem-Statement erstellen".
Soll ich PS zuerst aufsetzen, oder hast du das Problem anderweitig schon dokumentiert?
```
**Beispiel C — No-Match**
**Input:** "Bau mir einen Marketing-Funnel fuer mein neues Coaching-Angebot."
**Phase 1 (Intent):** Keine Trigger-Phrase aus `references/routing-table.md` matcht. Nicht "Idee strukturieren", nicht "Validieren", nicht "review-iterate".
**Phase 1b (No-Match):**
```
Das liegt ausserhalb des Idea2Self-Prozesses. Idea2Self fuehrt eine vage Idee zu
einem validierten Action-Plan — nicht Marketing-Funnel.
Wenn deine Idee noch nicht durch Validierung gelaufen ist: sage "Idee
strukturieren" — wir starten den Idea2Self-Prozess.
Fuer Marketing-Arbeit ohne Idea2Self-Schritte: nutze `marketing-skills:*`
(z.B. `marketing-skills:marketing-strategy-pmm`).
```
</quick_start>
<routing>
```
intake (intent + optional file path)
|
+-- "neue Idee" -> i2s-discovery (no prereq)
|
+-- "Problem-Statement" -> i2s-problem-statement (prereq: ## Idee)
+-- "Persona" -> i2s-persona (prereq: ## Problem-Statement)
+-- "Recherche" -> i2s-recherche (prereq: PS + Persona)
+-- "Experiment-Card" -> i2s-experiment-card (prereq: PS + Persona + Recherche)
+-- "Prototyp-Konzept" -> i2s-prototyp-konzept (prereq: Experiment-Card)
+-- "Action-Plan" -> i2s-action-plan (prereq: Prototyp-Konzept)
|
+-- "ueberarbeiten" -> workflows/review-iterate.md (router-internal)
```
Konkrete Trigger-Mapping-Tabelle und Vorbedingungs-Pruefung: `references/routing-table.md`.
</routing>
<workflow>
**Phase 1 — Intent erkennen**
**Entry:** Skill ist aktiviert.
**Aktionen:**
1. Pruefe Nutzer-Nachricht gegen die Trigger-Spalte in `references/routing-table.md`.
2. Falls Nutzer einen Dateipfad nennt: idea2self-Datei laden, vorhandene Sektionen registrieren.
3. Falls Intent unklar: `<intake>`-Block (siehe unten) anzeigen, eine Antwort erfragen.
**Exit:** Intent ist auf genau einen der 8 Routing-Pfade gemappt **oder** als No-Match klassifiziert.
**Phase 1b — No-Match-Handling**
**Entry:** Phase 1 hat keinen Pfad-Match erzeugt.
**Aktionen:**
1. Out-of-Scope explizit benennen: "Das liegt ausserhalb des Idea2Self-Prozesses."
2. Kurzbeschreibung des Scopes geben (1 Satz): "Idea2Self fuehrt eine vage Idee zu einem validierten Action-Plan."
3. Anker-Frage: "Wenn deine Idee noch nicht durch Validierung gelaufen ist: sage 'Idee strukturieren'."
4. Optional: alternativen Skill nennen (z.B. `marketing-skills:*`, `compound-engineering:ce-brainstorm`), nur wenn klar zu identifizieren — keine spekulativen Empfehlungen.
5. **Nicht** auf den semantisch naechsten Routing-Pfad ausweichen.
6. **Nicht** Capabilities halluzinieren ("ich kann das schon irgendwie").
**Exit:** Nutzer ist informiert. Skill wartet auf Nachfrage oder verlaesst die Konversation.
**Phase 2 — Vorbedingung pruefen**
**Entry:** Intent ist gemappt.
**Aktionen:**
1. Aus `references/routing-table.md` die Vorbedingungs-Spalte lesen.
2. Falls Vorbedingung erfuellt (Sektion existiert in idea2self-Datei): weiter.
3. Falls Vorbedingung fehlt: Nutzer informieren: "Voraussetzung X fehlt. Trigger zuerst `/<voraussetzungs-skill>` oder bestaetige, dass du X anderweitig vorhaltst."
**Exit:** Voraussetzungen sind erfuellt oder explizit uebergangen.
**Phase 3 — Hand-off oder Iteration**
**Entry:** Phase 2 erfolgreich abgeschlossen.
**Aktionen:**
- Fuer Pfad 1-7: Nenne den zustaendigen Sub-Skill und die Trigger-Phrase, mit der der Nutzer ihn aktiviert. Beispiel: "Sage 'Persona erstellen' fuer `i2s-persona`."
- Fuer Pfad 8 (ueberarbeiten): `workflows/review-iterate.md` lesen und exakt befolgen.
**Exit:** Sub-Skill ist genannt (Pfad 1-7) oder Review-Workflow ist abgeschlossen (Pfad 8).
</workflow>
<intake>
```
Was moechtest du tun?
1. Neue Idee starten
2. Problem-Statement erstellen -> i2s-problem-statement
3. Persona erstellen -> i2s-persona
4. Problemraum recherchieren -> i2s-recherche
5. Experiment-Card erstellen -> i2s-experiment-card
6. Prototyp-Konzept erstellen -> i2s-prototyp-konzept
7. Action-Plan erstellen (mit WOOP) -> i2s-action-plan
8. Bestehende Datei ueberarbeiten -> router-internal
Wenn du eine bestehende idea2self-Datei hast, nenne den Dateipfad.
```
Warte auf Antwort, bevor du fortfaehrst.
</intake>
<file_convention>
Die zentrale Datei heisst `idea2self-<idee>.md` (Kurztitel, 3-5 Woerter, kebab-case). Wird in `i2s-discovery` Schritt 5 angelegt — der Router stellt nur sicher, dass sie existiert, bevor Sub-Skills aktiv werden.
Datei-Skelett (waechst pro Workflow-Durchlauf): siehe `templates/idea2self-vorlage.md`.
</file_convention>
<communication_quick_reference>
Vollstaendige Regeln: `references/kommunikationsregeln.md`.
- Nuechtern, sachlich, direkt. Keine Motivation, keine Emojis, keine Superlative.
- Alltagssprache. Sprache des Nutzers beibehalten.
- `_(Vorschlag)_` / `_(Annahme)_` fuer ungeklaerte Inhalte.
- Max. 3-4 Saetze pro Nachricht. Strukturierte Ausgaben duerfen laenger sein.
- Steuerbefehle: "Export", "Zurueck", "Ich weiss es nicht", "Ueberspringen", "Weiter".
- Fortschrittsanzeige: "[X] von Y" pro Workflow.
</communication_quick_reference>
<reference_guides>
| File | Purpose |
|------|---------|
| `references/routing-table.md` | Trigger-Phrasen -> Sub-Skill + Vorbedingungs-Pruefung |
| `references/kommunikationsregeln.md` | Tonalitaet, Marker, Steuerbefehle (curated extract aus `plugin-shared/`) |
| `references/artefakt-pipeline.md` | Pipeline-Uebersicht + idea2self-Datei-Lifecycle (curated extract) |
| `workflows/review-iterate.md` | Bestehende Datei ueberarbeiten (router-cross-cut) |
| `templates/idea2self-vorlage.md` | Datei-Skelett, wird in i2s-discovery angelegt |
</reference_guides>
<guardrails>
Gebuendelte Negativliste. Verstoesse machen den Router unzuverlaessig — gilt fuer JEDE Interaktion.
1. **Never self-execute.** Der Router formuliert kein Problem-Statement, keine Persona, keinen Plan — niemals. Selbst wenn der Nutzer draengt: an den zustaendigen `i2s-*` Skill uebergeben.
2. **Never silent route on missing precondition.** Wenn Phase 2 eine fehlende Sektion erkennt, wird Hand-off **abgebrochen** und der voraussetzende Sub-Skill genannt. Ueberspringen nur auf explizite Nutzer-Bestaetigung "ich habe X anderweitig vorgehalten".
3. **Never menu-dump > 8 items.** Wenn die Routing-Tabelle waechst, Sub-Buckets statt langer Listen. Aktuell sind 8 Pfade die harte Obergrenze.
4. **Never hallucinate capabilities.** Bei No-Match (Phase 1b): out-of-scope sagen, nicht "ich kann das schon irgendwie" antworten. Nur Skills empfehlen, deren Existenz verifizierbar ist (im Plugin oder im Marketplace).
5. **Never route on tied phrases without tiebreaker check.** Wenn 2 Pfade matchen, Tiebreaker aus `references/routing-table.md` anwenden, bevor gehandeled wird.
6. **Never skip the file-state read.** Vor jedem Hand-off (Pfad 2-7) wird die idea2self-Datei gelesen und der vorhandene Sektions-Stand gegen die Vorbedingung gehalten. Implizite Annahmen sind verboten.
7. **Never bypass user context.** Wenn Nutzer einen Dateipfad genannt hat oder im Verlauf einen Stand etabliert hat: dieser Stand gilt, nicht ein hypothetischer Standardstand.
8. **Never iterate the same clarification.** Maximal **eine** Klaerungsfrage pro Ambiguitaet. Wenn die Antwort weiter unklar bleibt: in Phase 1b (No-Match) gehen, nicht weiter nachfragen.
</guardrails>
<success_criteria>
- [ ] Nutzer-Intent ist auf genau einen Routing-Pfad gemappt.
- [ ] Vorbedingungen sind geprueft. Fehlende Vorbedingungen werden mit Hand-off-Hinweis adressiert, nicht still uebergangen.
- [ ] Bei Pfad 1-7: der zustaendige Sub-Skill ist genannt mit Trigger-Phrase. Der Router fuehrt den Workflow NICHT selbst aus.
- [ ] Bei Pfad 8: `workflows/review-iterate.md` ist ausgefuehrt, idea2self-Datei wurde aktualisiert, Changelog-Eintrag vorhanden.
- [ ] idea2self-Datei bleibt die alleinige Quelle der Wahrheit. Keine parallelen Notizen.
</success_criteria>