From 2071d758b585b9c9bd99484e13f8fe32761eadb9 Mon Sep 17 00:00:00 2001 From: Jens Reinemann Date: Mon, 18 May 2026 10:14:54 +0200 Subject: [PATCH] fix(genome): improve distillation precision + propagation safety MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .github/prompts/genome-distill.prompt.md | 18 ++++++++++++++++++ .github/prompts/genome-propagate.prompt.md | 14 ++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.github/prompts/genome-distill.prompt.md b/.github/prompts/genome-distill.prompt.md index 7baa848..737f1a1 100644 --- a/.github/prompts/genome-distill.prompt.md +++ b/.github/prompts/genome-distill.prompt.md @@ -47,6 +47,23 @@ Ersetze in den Diffs: - **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: @@ -95,3 +112,4 @@ Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folg - 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` diff --git a/.github/prompts/genome-propagate.prompt.md b/.github/prompts/genome-propagate.prompt.md index c4198dd..1eac338 100644 --- a/.github/prompts/genome-propagate.prompt.md +++ b/.github/prompts/genome-propagate.prompt.md @@ -20,7 +20,7 @@ Du erhältst destillierte Mutations (klassifiziert, gescored, bereinigt) und sol 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 **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 @@ -98,7 +98,16 @@ Schreibe das Ergebnis in `.github/genome/output/propagation-proposals.md`: Frage den User: > 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 `` als neuen Trait in `.github/` anlegen? +> Inhalt: + +Ers nach expliziter Bestätigung anlegen. Nie mehrere neue Traits auf einmal ohne Bestätigung. ## 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) - Bei Konflikten (Ziel-Datei hat abweichende Struktur): markiere als ⚠️ und zeige beide Varianten - 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