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

4.2 KiB
Raw Blame History

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)
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:

# 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`