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
4.2 KiB
4.2 KiB
| description | model | tools | ||
|---|---|---|---|---|
| Genome Engine Phase 2: Distilliert raw-mutations.md – klassifiziert, scored und bereinigt Mutations für Cross-Repo-Propagation. | Claude Sonnet 4.6 (copilot) |
|
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 (1–10)
Bewerte den Übertragungswert jeder Critical/Evolution-Mutation:
- 9–10: Universell wertvoll, jedes Repo profitiert
- 7–8: Breit anwendbar, gutes Pattern
- 4–6: Situativ nützlich
- 1–3: 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:
- Commit-Message ignorieren – sie beschreibt nur die dominante Änderung
- Jeden geänderten Hunk einzeln bewerten – auch wenn der Commit-Titel z.B. "rename" lautet, können einzelne Hunks inhaltliche Verbesserungen enthalten
- 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
- 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:
# 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>
<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`