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
This commit is contained in:
parent
887cdbd3f7
commit
2071d758b5
2 changed files with 30 additions and 2 deletions
18
.github/prompts/genome-distill.prompt.md
vendored
18
.github/prompts/genome-distill.prompt.md
vendored
|
|
@ -47,6 +47,23 @@ Ersetze in den Diffs:
|
||||||
- **Reine Formatting-Änderungen** (nur Whitespace/Tabellenausrichtung): entfernen
|
- **Reine Formatting-Änderungen** (nur Whitespace/Tabellenausrichtung): entfernen
|
||||||
- **Renames ohne inhaltliche Änderung**: 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
|
## Output-Format
|
||||||
|
|
||||||
Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folgendem Format:
|
Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folgendem Format:
|
||||||
|
|
@ -95,3 +112,4 @@ Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folg
|
||||||
- Halte Zusammenfassungen auf 1 Satz
|
- Halte Zusammenfassungen auf 1 Satz
|
||||||
- Das "Pattern"-Feld bei Evolution beschreibt die **generalisierte Verbesserung**, nicht den konkreten Change
|
- Das "Pattern"-Feld bei Evolution beschreibt die **generalisierte Verbesserung**, nicht den konkreten Change
|
||||||
- Diffs dürfen gekürzt werden – nur die relevanten Hunks behalten
|
- 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`
|
||||||
|
|
|
||||||
14
.github/prompts/genome-propagate.prompt.md
vendored
14
.github/prompts/genome-propagate.prompt.md
vendored
|
|
@ -20,7 +20,7 @@ Du erhältst destillierte Mutations (klassifiziert, gescored, bereinigt) und sol
|
||||||
Für jeden Growth Vector aus `distilled-mutations.md`:
|
Für jeden Growth Vector aus `distilled-mutations.md`:
|
||||||
- Prüfe ob ein **gleichnamiger Trait** im Ziel-Genome existiert → direktes Match
|
- Prüfe ob ein **gleichnamiger Trait** im Ziel-Genome existiert → direktes Match
|
||||||
- Prüfe ob ein **funktional äquivalenter Trait** existiert (anderer Name, gleicher Zweck) → adaptiertes Match
|
- Prüfe ob ein **funktional äquivalenter Trait** existiert (anderer Name, gleicher Zweck) → adaptiertes Match
|
||||||
- Kein Match → neuer Trait (nur bei Score ≥ 8 vorschlagen)
|
- Kein Match → **neuer Trait** (nur bei Score ≥ 8 in die Checkliste aufnehmen, aber IMMER als "neu" kennzeichnen – nie automatisch anwenden)
|
||||||
|
|
||||||
### 2. Patch-Generierung
|
### 2. Patch-Generierung
|
||||||
|
|
||||||
|
|
@ -98,7 +98,16 @@ Schreibe das Ergebnis in `.github/genome/output/propagation-proposals.md`:
|
||||||
Frage den User:
|
Frage den User:
|
||||||
> Welche Vorschläge soll ich anwenden? (Nummern, "alle", oder "critical+evolution≥7")
|
> Welche Vorschläge soll ich anwenden? (Nummern, "alle", oder "critical+evolution≥7")
|
||||||
|
|
||||||
Wende dann die ausgewählten Patches an – editiere die entsprechenden Dateien direkt.
|
Wende dann die ausgewählten Patches an – mit folgenden Einschränkungen:
|
||||||
|
|
||||||
|
### Neue Traits: Bestätigung erforderlich
|
||||||
|
|
||||||
|
Bevor ein neuer Trait (kein Match im Ziel-Genome) angelegt wird, **immer einzeln bestätigen lassen**:
|
||||||
|
|
||||||
|
> Soll ich `<trait-key>` als neuen Trait in `.github/<pfad>` anlegen?
|
||||||
|
> Inhalt: <Kurzbeschreibung, 1 Satz>
|
||||||
|
|
||||||
|
Ers nach expliziter Bestätigung anlegen. Nie mehrere neue Traits auf einmal ohne Bestätigung.
|
||||||
|
|
||||||
## Regeln
|
## Regeln
|
||||||
|
|
||||||
|
|
@ -106,4 +115,5 @@ Wende dann die ausgewählten Patches an – editiere die entsprechenden Dateien
|
||||||
- Überspringe Vorschläge, bei denen der Ziel-Trait bereits den gleichen Stand hat (kein Diff)
|
- Überspringe Vorschläge, bei denen der Ziel-Trait bereits den gleichen Stand hat (kein Diff)
|
||||||
- Bei Konflikten (Ziel-Datei hat abweichende Struktur): markiere als ⚠️ und zeige beide Varianten
|
- Bei Konflikten (Ziel-Datei hat abweichende Struktur): markiere als ⚠️ und zeige beide Varianten
|
||||||
- Erstelle KEINE neuen Traits mit Score < 8
|
- Erstelle KEINE neuen Traits mit Score < 8
|
||||||
|
- Neue Traits immer einzeln bestätigen lassen – auch wenn mehrere selektiert wurden
|
||||||
- Passe Einrückung und Stil an die Konventionen des Ziel-Repos an
|
- Passe Einrückung und Stil an die Konventionen des Ziel-Repos an
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue