bollwerk/.github/prompts/genome-distill.prompt.md
Jens Reinemann 2071d758b5 fix(genome): improve distillation precision + propagation safety
genome-distill.prompt.md:
- Warnung vor versteckten Evolutions in Multi-Change-Commits
- Anleitung: Commit-Message ignorieren, jeden Hunk einzeln prüfen
- Rename-Churn-Erkennung (A→B→A = Specialized)
- Häufige versteckte Evolutions-Muster dokumentiert
- Analyse-Bericht am Ende mit Churn-Counter

genome-propagate.prompt.md:
- Neue Traits: immer einzeln vom User bestätigen lassen
- Nie automatisch neue Traits anlegen ohne explizite Bestätigung
2026-05-18 10:14:54 +02:00

115 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: "Genome Engine Phase 2: Distilliert raw-mutations.md klassifiziert, scored und bereinigt Mutations für Cross-Repo-Propagation."
model: Claude Sonnet 4.6 (copilot)
tools: [read, edit]
---
# Genome Distillation
Du erhältst eine Datei mit rohen Git-Mutations aus Copilot-Customization-Dateien. Deine Aufgabe: **klassifizieren, scoren, bereinigen** damit nur übertragbare Verbesserungen übrig bleiben.
## Input
Lies die Datei `.github/genome/output/raw-mutations.md`.
## Aufgabe
Für **jeden Trait** und jede Mutation darin:
### 1. Klassifizierung
| Klasse | Bedeutung | Beispiele |
|--------|-----------|-----------|
| 🔴 **Critical** | Bugfixes, die andere Repos auch treffen würden | Fehlende Escapes, falsche Tool-Syntax, Security-Lücke in Prompt |
| 🟡 **Evolution** | Generelle Verbesserungen, übertragbar | Bessere Formulierung, neues Pattern, strukturelle Optimierung |
| ⚪ **Specialized** | Projektspezifisch, NICHT übertragbar | App-spezifische Pfade, domänenspezifische Logik, Projekt-IDs |
### 2. Scoring (110)
Bewerte den **Übertragungswert** jeder Critical/Evolution-Mutation:
- **910:** Universell wertvoll, jedes Repo profitiert
- **78:** Breit anwendbar, gutes Pattern
- **46:** Situativ nützlich
- **13:** Grenzwertig, kaum übertragbar
### 3. Sanitization
Ersetze in den Diffs:
- Benutzernamen → `<user>`
- Maschinenpfade (z.B. `C:\Users\...`, `/home/...`) → `<local-path>`
- Tokens, API-Keys, Secrets → `<redacted>`
- Projektspezifische IDs (Issue-Nummern, Project-Board-IDs) → `<project-id>`
- Repo-spezifische Namen (z.B. `bollwerk`, `krisenvorrat`) → `<project>`
### 4. Filterung
- **Specialized** Mutations: komplett entfernen (nicht in Output aufnehmen)
- **Reine Formatting-Änderungen** (nur Whitespace/Tabellenausrichtung): entfernen
- **Renames ohne inhaltliche Änderung**: entfernen
## Regeln zur Diff-Analyse
> ⚠️ **Wichtig: Commits haben oft eine dominante + eine versteckte Änderung.**
Gehe für jeden Commit wie folgt vor:
1. **Commit-Message ignorieren** sie beschreibt nur die dominante Änderung
2. **Jeden geänderten Hunk einzeln bewerten** auch wenn der Commit-Titel z.B. "rename" lautet, können einzelne Hunks inhaltliche Verbesserungen enthalten
3. **Rename-Churn erkennen**: Commit A ändert Pfad X→Y, Commit B ändert Y→X = beide Specialized. Erst wenn der finale Wert stabil ist, ist es eine Evolution
4. **Nicht zu früh aggregieren**: Ein Commit mit 10 Datei-Diffs kann 2 Specialized + 1 Evolution enthalten trenne sie
**Häufige versteckte Evolutions-Muster:**
- Absolute Pfade (`C:\...`, `x:\...`) → relative Pfade (`.github/...`) → Evolution Score 8
- Board/Order-Zuweisung zu Ticket-Erstellung hinzugefügt → Evolution Score 8
- Script-Aufruf statt vager Beschreibung in Prompt → Evolution Score 7
- Vollständige Label-Liste statt unvollständiger → 🔴 Critical
## Output-Format
Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folgendem Format:
```markdown
# Distilled Mutations
**Quelle:** <repo-name>
**Zeitraum:** <aus raw-mutations übernehmen>
**Distilliert:** <aktuelles Datum>
**Ergebnis:** X Critical, Y Evolution (Z Specialized entfernt)
---
## 🔴 Critical
### Trait: `<trait-key>`
**Score:** N/10
**Zusammenfassung:** <1-Satz was gefixt wurde>
```diff
<bereinigter Diff>
```
---
## 🟡 Evolution
### Trait: `<trait-key>`
**Score:** N/10
**Zusammenfassung:** <1-Satz was verbessert wurde>
**Pattern:** <abstrahiertes Pattern, das andere übernehmen können>
```diff
<bereinigter Diff>
```
```
## Regeln
- Fasse mehrere Commits am selben Trait zu EINER Mutation zusammen, wenn sie dasselbe verbessern
- Bei Score < 4: nicht aufnehmen (zu wenig Übertragungswert)
- Sortiere innerhalb jeder Klasse absteigend nach Score
- Halte Zusammenfassungen auf 1 Satz
- Das "Pattern"-Feld bei Evolution beschreibt die **generalisierte Verbesserung**, nicht den konkreten Change
- Diffs dürfen gekürzt werden nur die relevanten Hunks behalten
- Schreibe am Ende einen **Analyse-Bericht** in den Chat (nicht in die Datei): `Traits: N | Mutations: M | Critical: A | Evolution: B | Specialized entfernt: C | Churn-Commits übersprungen: D`