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
115 lines
4.2 KiB
Markdown
115 lines
4.2 KiB
Markdown
---
|
||
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 (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:
|
||
|
||
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`
|