diff --git a/.github/genome/output/.gitkeep b/.github/genome/output/.gitkeep new file mode 100644 index 0000000..6a5eb4d --- /dev/null +++ b/.github/genome/output/.gitkeep @@ -0,0 +1,6 @@ +# Genome Engine Output + +Generierte Dateien (nicht committen): +- `raw-mutations.md` +- `distilled-mutations.md` +- `propagation-proposals.md` diff --git a/.github/genome/genome-distill.prompt.md b/.github/prompts/genome-distill.prompt.md similarity index 100% rename from .github/genome/genome-distill.prompt.md rename to .github/prompts/genome-distill.prompt.md diff --git a/.github/genome/genome-propagate.prompt.md b/.github/prompts/genome-propagate.prompt.md similarity index 100% rename from .github/genome/genome-propagate.prompt.md rename to .github/prompts/genome-propagate.prompt.md diff --git a/.github/prompts/genome.prompt.md b/.github/prompts/genome.prompt.md new file mode 100644 index 0000000..a2ed2d5 --- /dev/null +++ b/.github/prompts/genome.prompt.md @@ -0,0 +1,83 @@ +--- +description: "Genome Engine – Erkennt evolutionäre Verbesserungen an Copilot-Customization-Dateien und überträgt sie auf ein Ziel-Repo." +agent: agent +model: Claude Sonnet 4.6 (copilot) +tools: [read, edit, search, execute] +--- + +# Genome Engine + +> **Skill-Referenz:** Lies `.github/skills/genome/SKILL.md` für das vollständige Konzept. + +Du orchestrierst die 3 Phasen der Genome Engine: **Extraction → Distillation → Propagation**. + +## Parameter ermitteln + +Frage den User (falls nicht angegeben): + +1. **Quell-Repo** – Pfad zum Repository mit den Verbesserungen (Default: aktuelles Repo) +2. **Zeitspanne** – Seit wann nach Mutations suchen (Default: "7 days ago") +3. **Ziel-Repo** – Pfad zum Repo, das die Verbesserungen erhalten soll (Default: aktuelles Repo) + +> Wenn Quell- und Ziel-Repo identisch sind: Extraction + Distillation durchführen, aber Propagation überspringen (sinnlos auf sich selbst). + +## Phase 1: Extraction + +Führe das Extraction-Script aus: + +```bash +python .github/skills/genome/genome-extract.py --since "" --repo "" --output ".github/genome/output/raw-mutations.md" +``` + +Prüfe das Ergebnis: +- Wenn 0 Traits gefunden: Melde "Keine Mutations im Zeitraum" und stoppe. +- Sonst: Zeige kurze Zusammenfassung (Anzahl Traits, Anzahl Mutations) und weiter zu Phase 2. + +## Phase 2: Distillation + +Führe jetzt die Distillation durch. Folge den Anweisungen aus `.github/prompts/genome-distill.prompt.md`: + +1. Lies `.github/genome/output/raw-mutations.md` +2. Klassifiziere jede Mutation (🔴 Critical / 🟡 Evolution / ⚪ Specialized) +3. Score den Übertragungswert (1–10) +4. Sanitize sensitive Daten +5. Filtere Specialized + Score < 4 +6. Schreibe `.github/genome/output/distilled-mutations.md` + +Zeige dem User eine Zusammenfassung: +``` +Distillation: X Critical, Y Evolution (Z Specialized entfernt) +``` + +Wenn 0 Critical + 0 Evolution übrig: Melde "Keine übertragbaren Mutations" und stoppe. + +## Phase 3: Propagation + +> **Nur wenn Quell-Repo ≠ Ziel-Repo.** + +Führe die Propagation durch. Folge den Anweisungen aus `.github/prompts/genome-propagate.prompt.md`: + +1. Lies `.github/genome/output/distilled-mutations.md` +2. Scanne das Ziel-Genome (`.github/` des Ziel-Repos) +3. Matche Traits und generiere Patches +4. Zeige die Checkliste: + - `[x]` Critical (default an) + - `[x]` Evolution mit Score ≥ 7 (default an) + - `[ ]` Evolution mit Score < 7 (default aus) + +Frage den User: +> **Welche Vorschläge soll ich anwenden?** (Nummern, "alle", "critical+evolution≥7", oder "keine") + +Wende die ausgewählten Patches an. + +## Abschluss + +Zeige eine Zusammenfassung: +``` +Genome Engine abgeschlossen: + Quell-Repo: + Zeitraum: + Extrahiert: X Traits, Y Mutations + Destilliert: A Critical, B Evolution + Angewendet: N Patches +``` diff --git a/.github/skills/genome/SKILL.md b/.github/skills/genome/SKILL.md new file mode 100644 index 0000000..46d0074 --- /dev/null +++ b/.github/skills/genome/SKILL.md @@ -0,0 +1,61 @@ +# Genome Engine + +Automatische Erkennung und Übertragung evolutionärer Verbesserungen an Copilot-Customization-Dateien (Skills, Agents, Prompts, Instructions) zwischen Repositories. + +## Trigger-Phrasen + +`genome`, `propagate`, `mutations übertragen`, `traits synchronisieren`, `genome extract`, `genome propagate` + +## Konzept + +Die Genome Engine erkennt Verbesserungen an Copilot-Konfigurationsdateien über Git-History, destilliert sie in übertragbare "Growth Vectors" und schlägt konkrete Patches für andere Repos vor. + +**Begriffe:** +- **Trait** – Ein Skill, Agent, Prompt(-Verbund) oder Instructions-File +- **Genome** – Die Gesamtheit aller Traits eines Projekts +- **Mutation** – Ein Git-Commit-Delta an einem Trait +- **Growth Vector** – Destillierte, bewertete Mutation (bereinigt, klassifiziert, gescored) +- **Propagation** – Konkreter Änderungsvorschlag für ein Ziel-Genome + +## Pipeline + +| Phase | Tool | Input → Output | +|-------|------|----------------| +| 1. Extraction | `genome-extract.py` | Git-History → `raw-mutations.md` | +| 2. Distillation | `genome-distill.prompt.md` | `raw-mutations.md` → `distilled-mutations.md` | +| 3. Propagation | `genome-propagate.prompt.md` | `distilled-mutations.md` + Ziel-Genome → Patches | + +## Usage + +``` +/genome +``` + +Der Router-Prompt fragt nach Quell-Repo und Zeitspanne, dann orchestriert er alle 3 Phasen. + +## Dateien + +| Datei | Zweck | +|-------|-------| +| `SKILL.md` | Diese Dokumentation | +| `genome-extract.py` | Phase 1: Git-Scanning + Trait-Erkennung | + +## Trait-Erkennung + +Pfade werden automatisch zu Trait-Keys aufgelöst: + +``` +.github/skills/gh-tickets/SKILL.md → skill/gh-tickets +.github/agents/code-reviewer.agent.md → agent/code-reviewer +.github/prompts/nextstep.prompt.md → prompt/nextstep (inkl. Sub-Prompts) +.github/copilot-instructions.md → instructions/copilot-instructions +``` + +## Genome-Scope + +Folgende Pfade bilden das Genome: +- `.github/skills/**` +- `.github/agents/**` +- `.github/prompts/**` +- `.github/copilot-instructions.md` +- `.github/*.instructions.md` diff --git a/.github/genome/genome-extract.py b/.github/skills/genome/genome-extract.py similarity index 98% rename from .github/genome/genome-extract.py rename to .github/skills/genome/genome-extract.py index 26ad3c7..2bf198b 100644 --- a/.github/genome/genome-extract.py +++ b/.github/skills/genome/genome-extract.py @@ -7,8 +7,8 @@ Scannt git log für Änderungen im Genome-Scope (.github/skills, agents, prompts Gruppiert Diffs nach Trait und gibt strukturiertes Markdown aus. Usage: - python .github/genome/genome-extract.py --since "7 days ago" - python .github/genome/genome-extract.py --since "4 days ago" --repo /path/to/repo + python .github/skills/genome/genome-extract.py --since "7 days ago" + python .github/skills/genome/genome-extract.py --since "4 days ago" --repo /path/to/repo """ import argparse diff --git a/.gitignore b/.gitignore index 67fe3f2..0133f15 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,6 @@ memories/session/ # Environment secrets (never commit) .env + +# Genome Engine generated output +.github/genome/output/*.md