diff --git a/.github/genome/Concept Genome Engine.md b/.github/genome/Concept Genome Engine.md index 3e5f812..4b744ae 100644 --- a/.github/genome/Concept Genome Engine.md +++ b/.github/genome/Concept Genome Engine.md @@ -2,14 +2,14 @@ ## Ziel -Automatische Erkennung evolutionärer Verbesserungen an Copilot-Customization-Dateien (Skills, Agents, Prompts, Instructions) über Git-History hinweg. Die erkannten Verbesserungen werden destilliert, bewertet und als Propagation-Vorschläge für andere Projekte bereitgestellt. +Automatische Erkennung von Verbesserungen an KI-Tooling-Dateien (Skills, Agents, Prompts, Instructions) über Git-History hinweg. Die erkannten Improvements werden destilliert, bewertet und als Transfer-Vorschläge für andere Projekte bereitgestellt. ```mermaid graph LR A[Repo A
Verbesserungen] -->|Git-History| E[Extraction] - E -->|raw-mutations| D[Distillation] - D -->|Growth Vectors| P[Propagation] - P -->|Patches| B[Repo B
aktualisiert] + E -->|raw improvements| D[Distillation] + D -->|Insights| T[Transfer] + T -->|Patches| B[Repo B
aktualisiert] ``` --- @@ -18,25 +18,25 @@ graph LR ```mermaid graph TD - G[🧬 Genome
Gesamtheit aller Traits] --> T1[Trait: Skill] - G --> T2[Trait: Agent] - G --> T3[Trait: Prompt] - G --> T4[Trait: Instructions] - T1 -->|Git-Delta| M1[Mutation] - T3 -->|Git-Delta| M2[Mutation] - M1 -->|destilliert| GV1[Growth Vector
Score 8/10 🟡] - M2 -->|destilliert| GV2[Growth Vector
Score 9/10 🔴] - GV1 --> PR[Propagation
Konkrete Patches] + G[🧬 Genome
Gesamtheit aller Capabilities] --> T1[Capability: Skill] + G --> T2[Capability: Agent] + G --> T3[Capability: Prompt] + G --> T4[Capability: Instructions] + T1 -->|Git-Delta| M1[Improvement] + T3 -->|Git-Delta| M2[Improvement] + M1 -->|destilliert| GV1[Insight
Score 8/10 🟡] + M2 -->|destilliert| GV2[Insight
Score 9/10 🔴] + GV1 --> PR[Transfer
Konkrete Patches] GV2 --> PR ``` -| Begriff | Bedeutung | -| ----------------- | ----------------------------------------------------------------------------------------- | -| **Trait** | Ein Skill, Agent, Prompt(-Verbund) oder Instructions-File inkl. aller zugehörigen Dateien | -| **Genome** | Die Gesamtheit aller Traits eines Projekts | -| **Mutation** | Ein Git-Commit-Delta an einem Trait (siehe Mutation-Typen) | -| **Growth Vector** | Destillierte, bewertete Mutation (bereinigt, klassifiziert, gescored) | -| **Propagation** | Konkreter Änderungsvorschlag für ein Ziel-Genome | +| Begriff | Bedeutung | +| ---------------- | -------------------------------------------------------------------------------------------- | +| **Capability** | Ein Skill, Agent, Prompt(-Verbund) oder Instructions-File inkl. aller zugehörigen Dateien | +| **Genome** | Die Gesamtheit aller Capabilities eines Projekts – das "KI-Wissen" eines Repos | +| **Improvement** | Ein Git-Commit-Delta an einer Capability – eine konkrete Verbesserung am KI-Tooling | +| **Insight** | Destilliertes, bewertetes Improvement (bereinigt, klassifiziert, gescored, übertragbar) | +| **Transfer** | Konkreter Änderungsvorschlag, um ein Insight auf ein Ziel-Genome anzuwenden | --- @@ -52,9 +52,9 @@ Folgende Pfade bilden das Genome: --- -## Trait-Erkennung +## Capability-Erkennung -Traits werden aus dem Dateipfad abgeleitet. Die Granularität hängt vom Trait-Typ ab: +Capabilities werden aus dem Dateipfad abgeleitet. Die Granularität hängt vom Capability-Typ ab: ```mermaid graph TD @@ -69,27 +69,27 @@ graph TD ### Skills -Ein Skill besteht aus einem Ordner mit mehreren zusammengehörigen Dateien (SKILL.md, Scripte, Templates). Der **Ordnername** ist der Trait-Schlüssel. +Ein Skill besteht aus einem Ordner mit mehreren zusammengehörigen Dateien (SKILL.md, Scripte, Templates). Der **Ordnername** ist der Capability-Schlüssel. ``` -.github/skills/gh-tickets/SKILL.md → trait: skill/gh-tickets -.github/skills/gh-tickets/queries.graphql → trait: skill/gh-tickets -.github/skills/android-build/SKILL.md → trait: skill/android-build -.github/skills/android-build/android-dev.ps1 → trait: skill/android-build +.github/skills/gh-tickets/SKILL.md → capability: skill/gh-tickets +.github/skills/gh-tickets/queries.graphql → capability: skill/gh-tickets +.github/skills/android-build/SKILL.md → capability: skill/android-build +.github/skills/android-build/android-dev.ps1 → capability: skill/android-build ``` -**Regel:** `skill/` – alle Dateien im Ordner gehören zum selben Trait. +**Regel:** `skill/` – alle Dateien im Ordner gehören zur selben Capability. ### Agents -Ein Agent besteht aus genau einer Datei. Der **vollständige Dateiname** (ohne Pfad, ohne Extension) ist der Trait-Schlüssel. +Ein Agent besteht aus genau einer Datei. Der **vollständige Dateiname** (ohne Pfad, ohne Extension) ist der Capability-Schlüssel. ``` -.github/agents/android-implementer.agent.md → trait: agent/android-implementer -.github/agents/code-reviewer.agent.md → trait: agent/code-reviewer +.github/agents/android-implementer.agent.md → capability: agent/android-implementer +.github/agents/code-reviewer.agent.md → capability: agent/code-reviewer ``` -**Regel:** `agent/` – 1:1-Zuordnung Datei → Trait. +**Regel:** `agent/` – 1:1-Zuordnung Datei → Capability. ### Prompts @@ -97,49 +97,49 @@ Prompts unterscheiden zwei Varianten: **Standalone** und **Verbund**. #### Standalone-Prompts -Einzeldateien ohne Router-Beziehung. Der **Dateiname** ist der Trait-Schlüssel. +Einzeldateien ohne Router-Beziehung. Der **Dateiname** ist der Capability-Schlüssel. ``` -.github/prompts/commit.prompt.md → trait: prompt/commit -.github/prompts/ship.prompt.md → trait: prompt/ship -.github/prompts/publish.prompt.md → trait: prompt/publish +.github/prompts/commit.prompt.md → capability: prompt/commit +.github/prompts/ship.prompt.md → capability: prompt/ship +.github/prompts/publish.prompt.md → capability: prompt/publish ``` -**Regel:** `prompt/` – 1:1-Zuordnung Datei → Trait. +**Regel:** `prompt/` – 1:1-Zuordnung Datei → Capability. #### Verbund-Prompts (Router + Sub-Workflows) -Wenn eine Prompt-Datei eine Routing-Tabelle mit Verweisen auf andere `.prompt.md`-Dateien enthält, bilden Router + referenzierte Dateien **einen** Trait. Der **Router-Name** ist der Trait-Schlüssel. +Wenn eine Prompt-Datei eine Routing-Tabelle mit Verweisen auf andere `.prompt.md`-Dateien enthält, bilden Router + referenzierte Dateien **eine** Capability. Der **Router-Name** ist der Capability-Schlüssel. ``` -.github/prompts/nextstep.prompt.md → trait: prompt/nextstep -.github/prompts/nextstep-implementation.prompt.md → trait: prompt/nextstep -.github/prompts/nextstep-planning.prompt.md → trait: prompt/nextstep -.github/prompts/nextstep-tech-decision.prompt.md → trait: prompt/nextstep +.github/prompts/nextstep.prompt.md → capability: prompt/nextstep +.github/prompts/nextstep-implementation.prompt.md → capability: prompt/nextstep +.github/prompts/nextstep-planning.prompt.md → capability: prompt/nextstep +.github/prompts/nextstep-tech-decision.prompt.md → capability: prompt/nextstep ``` -**Verbund-Erkennung:** Eine Datei `.prompt.md` ist ein Router, wenn Dateien `-*.prompt.md` im selben Verzeichnis existieren. Alle gehören zum selben Verbund-Trait. +**Verbund-Erkennung:** Eine Datei `.prompt.md` ist ein Router, wenn Dateien `-*.prompt.md` im selben Verzeichnis existieren. Alle gehören zur selben Verbund-Capability. ### Instructions -Instructions-Dateien sind Einzeldateien. Der **Dateiname** ist der Trait-Schlüssel. +Instructions-Dateien sind Einzeldateien. Der **Dateiname** ist der Capability-Schlüssel. ``` -.github/copilot-instructions.md → trait: instructions/copilot-instructions -.github/kotlin-conventions.instructions.md → trait: instructions/kotlin-conventions +.github/copilot-instructions.md → capability: instructions/copilot-instructions +.github/kotlin-conventions.instructions.md → capability: instructions/kotlin-conventions ``` -**Regel:** `instructions/` – 1:1-Zuordnung Datei → Trait. +**Regel:** `instructions/` – 1:1-Zuordnung Datei → Capability. --- -## Mutation-Typen +## Improvement-Typen -| Typ | Bedeutung | Beispiel | -| ---------------- | ------------------------------------ | ----------------------------------------------------- | -| `content-change` | Inhalt einer Datei im Trait geändert | `nextstep-implementation.prompt.md` optimiert | -| `member-added` | Neue Datei zum Trait hinzugefügt | Neuer `nextstep-migration.prompt.md` + Router-Eintrag | -| `member-removed` | Datei aus dem Trait entfernt | `nextstep-test.prompt.md` gelöscht | +| Typ | Bedeutung | Beispiel | +| ---------------- | -------------------------------------------- | ----------------------------------------------------- | +| `content-change` | Inhalt einer Datei in der Capability geändert | `nextstep-implementation.prompt.md` optimiert | +| `member-added` | Neue Datei zur Capability hinzugefügt | Neuer `nextstep-migration.prompt.md` + Router-Eintrag | +| `member-removed` | Datei aus der Capability entfernt | `nextstep-test.prompt.md` gelöscht | --- @@ -150,16 +150,16 @@ flowchart LR subgraph "Phase 1: Extraction" direction TB GIT[(Git-History)] --> SCRIPT[genome-extract.py] - SCRIPT --> RAW[raw-mutations.md] + SCRIPT --> RAW[raw-improvements.md] end subgraph "Phase 2: Distillation" direction TB - RAW2[raw-mutations.md] --> AGENT1[KI-Agent] - AGENT1 --> |"Klassifizieren\nScoren\nSanitizen"| DIST[distilled-mutations.md] + RAW2[raw-improvements.md] --> AGENT1[KI-Agent] + AGENT1 --> |"Klassifizieren\nScoren\nSanitizen"| DIST[distilled-insights.md] end - subgraph "Phase 3: Propagation" + subgraph "Phase 3: Transfer" direction TB - DIST2[distilled-mutations.md] --> AGENT2[KI-Agent] + DIST2[distilled-insights.md] --> AGENT2[KI-Agent] ZIEL[Ziel-Genome] --> AGENT2 AGENT2 --> PATCHES[Konkrete Patches] end @@ -170,22 +170,22 @@ flowchart LR ### Phase 1: Extraction (Script) **Input:** Repo-Pfad + Zeitspanne (z.B. `--since "7 days ago"`) -**Output:** `raw-mutations.md` +**Output:** `raw-improvements.md` - Scannt `git log` für Änderungen im Genome-Scope -- Gruppiert Diffs nach Trait (siehe Trait-Erkennung oben) -- Gibt pro Trait alle Commits mit Diff, Message und Autor aus +- Gruppiert Diffs nach Capability (siehe Capability-Erkennung oben) +- Gibt pro Capability alle Commits mit Diff, Message und Autor aus **Tool:** `genome-extract.py` (Python) ### Phase 2: Distillation (Agent) -**Input:** `raw-mutations.md` -**Output:** `distilled-mutations.md` +**Input:** `raw-improvements.md` +**Output:** `distilled-insights.md` ```mermaid flowchart TD - M[Mutation] --> K{Klassifizierung} + M[Improvement] --> K{Klassifizierung} K -->|Bugfix für alle| C[🔴 Critical] K -->|Generelle Verbesserung| E[🟡 Evolution] K -->|Nur dieses Projekt| S[⚪ Specialized] @@ -193,23 +193,23 @@ flowchart TD E --> SC S --> X[❌ Entfernt] SC --> SAN[Sanitization
Pfade, Tokens, IDs ersetzen] - SAN --> |Score ≥ 4| OUT[→ distilled-mutations.md] + SAN --> |Score ≥ 4| OUT[→ distilled-insights.md] SAN --> |Score < 4| X ``` -- Scored jede Mutation (1–10) nach Übertragungswert +- Scored jedes Improvement (1–10) nach Übertragungswert - Filtert sensitive Daten (Usernames, Maschinenpfade, Tokens, projektspezifische IDs) -- Specialized Mutations werden komplett entfernt +- Specialized Improvements werden komplett entfernt **Tool:** `genome-distill.prompt.md` -### Phase 3: Propagation (Agent) +### Phase 3: Transfer (Agent) -**Input:** `distilled-mutations.md` + Ziel-Genome -**Output:** `propagation-proposals.md` +**Input:** `distilled-insights.md` + Ziel-Genome +**Output:** `transfer-proposals.md` -- Matched Traits zwischen Quell- und Ziel-Genome -- Erstellt konkrete Änderungsvorschläge pro Trait +- Matched Capabilities zwischen Quell- und Ziel-Genome +- Erstellt konkrete Änderungsvorschläge pro Capability - Formatiert als Checkliste mit Default-Auswahl: | Kategorie | Default | Bedingung | @@ -232,7 +232,7 @@ sequenceDiagram Note over T: Letzter .github/-Commit = T_target R->>R: git log --since T_target R->>R: 12 Commits an .github/ gefunden - R-->>T: Mutations extrahiert → Distillation → Propagation + R-->>T: Improvements extrahiert → Distillation → Transfer ``` 1. Letzter `.github/`-Commit im Ziel-Repo ermitteln → `T_target` @@ -255,12 +255,12 @@ graph TD PR[genome-propagate.prompt.md
Phase 3] end subgraph ".github/genome/output/" - RM[raw-mutations.md
generiert] - DM[distilled-mutations.md
generiert] - PP[propagation-proposals.md
generiert] + RM[raw-improvements.md
generiert] + DM[distilled-insights.md
generiert] + PP[transfer-proposals.md
generiert] end - subgraph "docs/" - CO[genome-engine.md
Dieses Konzept] + subgraph ".github/genome/" + CO[Concept Genome Engine.md
Dieses Konzept] end OR -->|"ruft auf"| EX OR -->|"delegiert an"| DI @@ -280,9 +280,9 @@ graph TD | 4 | `genome-propagate.prompt.md` | Prompt | `.github/prompts/` | | 5 | `SKILL.md` | Skill-Doku | `.github/skills/genome/` | | 6 | `genome-engine.md` | Konzept | `docs/` | -| 7 | `raw-mutations.md` | Generiert | `.github/genome/output/` | -| 8 | `distilled-mutations.md` | Generiert | `.github/genome/output/` | -| 9 | `propagation-proposals.md` | Generiert | `.github/genome/output/` | +| 7 | `raw-improvements.md` | Generiert | `.github/genome/output/` | +| 8 | `distilled-insights.md` | Generiert | `.github/genome/output/` | +| 9 | `transfer-proposals.md` | Generiert | `.github/genome/output/` | > Generierte Dateien (7–9) sind gitignored. @@ -290,7 +290,7 @@ graph TD ## Zukünftige Erweiterungen -- Multi-Repo-Registry: Zentrale Sammlung von Growth Vectors aus vielen Projekten -- Automatische Erkennung des Evolutionszeitraums über Repo-Vergleich -- CI-Integration: Propagation-Check bei jedem Push -- Community-Sharing: Öffentliche Growth Vectors als "Trait Packages" +- Multi-Repo-Registry: Zentrale Sammlung von Insights aus vielen Projekten +- Automatische Erkennung des Transfer-Zeitraums über Repo-Vergleich +- CI-Integration: Transfer-Check bei jedem Push +- Community-Sharing: Öffentliche Insights als "Capability Packages" diff --git a/.github/prompts/genome-distill.prompt.md b/.github/prompts/genome-distill.prompt.md index bc9fc4c..3f1f2ef 100644 --- a/.github/prompts/genome-distill.prompt.md +++ b/.github/prompts/genome-distill.prompt.md @@ -1,20 +1,20 @@ --- -description: "Genome Engine Phase 2: Distilliert raw-mutations.md – klassifiziert, scored und bereinigt Mutations für Cross-Repo-Propagation." +description: "Genome Engine Phase 2: Destilliert raw-improvements.md – klassifiziert, scored und bereinigt Improvements für Cross-Repo-Transfer." model: Claude Opus 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. +Du erhältst eine Datei mit rohen Git-Improvements aus KI-Tooling-Dateien. Deine Aufgabe: **klassifizieren, scoren, bereinigen** – damit nur übertragbare Verbesserungen übrig bleiben. ## Input -Lies die Datei `.github/genome/output/raw-mutations.md`. +Lies die Datei `.github/genome/output/raw-improvements.md`. ## Aufgabe -Für **jeden Trait** und jede Mutation darin: +Für **jede Capability** und jedes Improvement darin: ### 1. Klassifizierung @@ -26,7 +26,7 @@ Für **jeden Trait** und jede Mutation darin: ### 2. Scoring (1–10) -Bewerte den **Übertragungswert** jeder Critical/Evolution-Mutation: +Bewerte den **Übertragungswert** jedes Critical/Evolution-Improvements: - **9–10:** Universell wertvoll, jedes Repo profitiert - **7–8:** Breit anwendbar, gutes Pattern @@ -64,7 +64,7 @@ Ersetze in den Diffs: ### 4. Filterung -- **Specialized** Mutations: komplett entfernen (nicht in Output aufnehmen) +- **Specialized** Improvements: komplett entfernen (nicht in Output aufnehmen) - **Reine Formatting-Änderungen** (nur Whitespace/Tabellenausrichtung): entfernen - **Renames ohne inhaltliche Änderung**: entfernen @@ -72,16 +72,16 @@ Ersetze in den Diffs: ### Fehler 1: `member-added` pauschal als Specialized verwerfen -Neue Dateien (`member-added`) sind oft die **wertvollsten** Mutations. Ein neuer Skill, Prompt oder Agent ist nach Sanitization häufig hochgradig übertragbar. Prüfe: +Neue Dateien (`member-added`) sind oft die **wertvollsten** Improvements. Ein neuer Skill, Prompt oder Agent ist nach Sanitization häufig hochgradig übertragbar. Prüfe: - Enthält die Datei ein **allgemeines Pattern** (z.B. Checkliste, Workflow-Struktur, Fehlerklassen-Katalog)? - Ist sie nach Pfad-/Namen-Sanitization auf andere Projekte anwendbar? - → Wenn ja: **Evolution** (Score 7–9), nicht Specialized. **Nur** als Specialized werten, wenn der **gesamte Inhalt** projektspezifisch ist (z.B. nur eine Entity-Definition für eine bestimmte App). -### Fehler 2: Nur den ersten Teil der raw-mutations lesen +### Fehler 2: Nur den ersten Teil der raw-improvements lesen -Die raw-mutations-Datei kann **tausende Zeilen** lang sein. Skills, Scripts und neue Traits stehen oft am Ende. **Lies die GESAMTE Datei** bevor du klassifizierst – nicht nur die ersten 1000–2000 Zeilen. +Die raw-improvements-Datei kann **tausende Zeilen** lang sein. Skills, Scripts und neue Capabilities stehen oft am Ende. **Lies die GESAMTE Datei** bevor du klassifizierst – nicht nur die ersten 1000–2000 Zeilen. ### Fehler 3: Mehrteilige Commits nicht trennen @@ -98,7 +98,7 @@ PowerShell/Python-Scripts die ein **universelles DevOps-Problem** lösen (z.B. E ### Fehler 5: Zu konservativ scoren -Eine Conversion-Rate von < 10% ist ein Warnsignal. Bei typischen aktiven Repos mit 20+ Traits sollte die Rate bei **15–30%** liegen (bezogen auf Traits mit mindestens einer Evolution, nicht auf Mutations-Gesamtzahl). +Eine Conversion-Rate von < 10% ist ein Warnsignal. Bei typischen aktiven Repos mit 20+ Capabilities sollte die Rate bei **15–30%** liegen (bezogen auf Capabilities mit mindestens einer Evolution, nicht auf Improvements-Gesamtzahl). ## Regeln zur Diff-Analyse @@ -125,13 +125,13 @@ Gehe für jeden Commit wie folgt vor: ## Output-Format -Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folgendem Format: +Schreibe das Ergebnis in `.github/genome/output/distilled-insights.md` mit folgendem Format: ````markdown -# Distilled Mutations +# Distilled Insights **Quelle:** -**Zeitraum:** +**Zeitraum:** **Distilliert:** **Ergebnis:** X Critical, Y Evolution (Z Specialized entfernt) @@ -139,7 +139,7 @@ Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folg ## 🔴 Critical -### Trait: `` +### Capability: `` **Score:** N/10 **Zusammenfassung:** <1-Satz was gefixt wurde> @@ -153,7 +153,7 @@ Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folg ## 🟡 Evolution -### Trait: `` +### Capability: `` **Score:** N/10 **Zusammenfassung:** <1-Satz was verbessert wurde> @@ -167,11 +167,11 @@ Schreibe das Ergebnis in `.github/genome/output/distilled-mutations.md` mit folg ## Regeln -- Fasse mehrere Commits am selben Trait zu EINER Mutation zusammen, wenn sie dasselbe verbessern +- Fasse mehrere Commits an derselben Capability zu EINEM Improvement 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` +- Schreibe am Ende einen **Analyse-Bericht** in den Chat (nicht in die Datei): `Capabilities: N | Improvements: 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 a66b757..0b45c6e 100644 --- a/.github/prompts/genome-propagate.prompt.md +++ b/.github/prompts/genome-propagate.prompt.md @@ -1,47 +1,47 @@ --- -description: "Genome Engine Phase 3: Propagiert distilled Mutations auf ein Ziel-Genome – erstellt konkrete Änderungsvorschläge als Checkliste." +description: "Genome Engine Phase 3: Transferiert distilled Insights auf ein Ziel-Genome – erstellt konkrete Änderungsvorschläge als Checkliste." model: Claude Opus 4.6 (copilot) tools: [read, edit, search] --- -# Genome Propagation +# Genome Transfer -Du erhältst destillierte Mutations (klassifiziert, gescored, bereinigt) und sollst konkrete Änderungsvorschläge für das **aktuelle Repo** erstellen. +Du erhältst destillierte Insights (klassifiziert, gescored, bereinigt) und sollst konkrete Änderungsvorschläge für das **aktuelle Repo** erstellen. ## Input -1. Lies `.github/genome/output/distilled-mutations.md` (die Growth Vectors) +1. Lies `.github/genome/output/distilled-insights.md` (die Insights) 2. Scanne das Ziel-Genome dieses Repos: `.github/skills/`, `.github/agents/`, `.github/prompts/`, `.github/copilot-instructions.md` ## Aufgabe -### 1. Trait-Matching +### 1. Capability-Matching -Für jeden Growth Vector aus `distilled-mutations.md`: +Für jeden Insight aus `distilled-insights.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 in die Checkliste aufnehmen, aber IMMER als "neu" kennzeichnen – nie automatisch anwenden) +- Prüfe ob eine **gleichnamige Capability** im Ziel-Genome existiert → direktes Match +- Prüfe ob eine **funktional äquivalente Capability** existiert (anderer Name, gleicher Zweck) → adaptiertes Match +- Kein Match → **neue Capability** (nur bei Score ≥ 8 in die Checkliste aufnehmen, aber IMMER als "neu" kennzeichnen – nie automatisch anwenden) ### 2. Patch-Generierung Erstelle für jedes Match einen konkreten Änderungsvorschlag: -- **Bestehender Trait:** Zeige den Ist-Zustand (relevanter Ausschnitt) und den vorgeschlagenen Soll-Zustand -- **Neuer Trait:** Zeige die vollständige neue Datei +- **Bestehende Capability:** Zeige den Ist-Zustand (relevanter Ausschnitt) und den vorgeschlagenen Soll-Zustand +- **Neue Capability:** Zeige die vollständige neue Datei - Passe Platzhalter (``, `` etc.) an die Werte dieses Repos an ### 3. Checkliste formatieren ## Output-Format -Schreibe das Ergebnis in `.github/genome/output/propagation-proposals.md`: +Schreibe das Ergebnis in `.github/genome/output/transfer-proposals.md`: ````markdown -# Propagation Proposals +# Transfer Proposals **Ziel-Repo:** -**Quelle:** +**Quelle:** **Erstellt:** **Vorschläge:** X Critical, Y Evolution @@ -51,7 +51,7 @@ Schreibe das Ergebnis in `.github/genome/output/propagation-proposals.md`: ### 🔴 Critical -- [x] **``** (Score N/10) – +- [x] **``** (Score N/10) –
Änderung anzeigen @@ -67,7 +67,7 @@ Schreibe das Ergebnis in `.github/genome/output/propagation-proposals.md`: ### 🟡 Evolution (Score ≥ 7) -- [x] **``** (Score N/10) – +- [x] **``** (Score N/10) –
Änderung anzeigen @@ -82,7 +82,7 @@ Schreibe das Ergebnis in `.github/genome/output/propagation-proposals.md`: ### 🟡 Evolution (Score < 7) -- [ ] **``** (Score N/10) – +- [ ] **``** (Score N/10) –
Änderung anzeigen @@ -104,21 +104,21 @@ Frage den User: Wende dann die ausgewählten Patches an – mit folgenden Einschränkungen: -### Neue Traits: Bestätigung erforderlich +### Neue Capabilities: Bestätigung erforderlich -Bevor ein neuer Trait (kein Match im Ziel-Genome) angelegt wird, **immer einzeln bestätigen lassen**: +Bevor eine neue Capability (kein Match im Ziel-Genome) angelegt wird, **immer einzeln bestätigen lassen**: -> Soll ich `` als neuen Trait in `.github/` anlegen? +> Soll ich `` als neue Capability in `.github/` anlegen? > Inhalt: -Ers nach expliziter Bestätigung anlegen. Nie mehrere neue Traits auf einmal ohne Bestätigung. +Erst nach expliziter Bestätigung anlegen. Nie mehrere neue Capabilities auf einmal ohne Bestätigung. ## Regeln - Default-Auswahl: Critical = an, Evolution ≥ 7 = an, Evolution < 7 = aus -- Überspringe Vorschläge, bei denen der Ziel-Trait bereits den gleichen Stand hat (kein Diff) +- Überspringe Vorschläge, bei denen die Ziel-Capability 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 +- Erstelle KEINE neuen Capabilities mit Score < 8 +- Neue Capabilities immer einzeln bestätigen lassen – auch wenn mehrere selektiert wurden - Passe Einrückung und Stil an die Konventionen des Ziel-Repos an ``` diff --git a/.github/prompts/genome.prompt.md b/.github/prompts/genome.prompt.md index 8322e34..bd2d1db 100644 --- a/.github/prompts/genome.prompt.md +++ b/.github/prompts/genome.prompt.md @@ -45,31 +45,31 @@ Stelle dem User zu Beginn **immer** folgende Fragen über das `vscode_askQuestio Warte auf die Antworten, bevor du mit Phase 1 beginnst. -> Wenn Quell- und Ziel-Repo identisch sind: Extraction + Distillation durchführen, aber Propagation überspringen (sinnlos auf sich selbst). +> Wenn Quell- und Ziel-Repo identisch sind: Extraction + Distillation durchführen, aber Transfer ü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" +python .github/skills/genome/genome-extract.py --since "" --repo "" --output ".github/genome/output/raw-improvements.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. +- Wenn 0 Capabilities gefunden: Melde "Keine Improvements im Zeitraum" und stoppe. +- Sonst: Zeige kurze Zusammenfassung (Anzahl Capabilities, Anzahl Improvements) 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) +1. Lies `.github/genome/output/raw-improvements.md` +2. Klassifiziere jedes Improvement (🔴 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` +6. Schreibe `.github/genome/output/distilled-insights.md` Zeige dem User eine Zusammenfassung: @@ -77,17 +77,17 @@ 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. +Wenn 0 Critical + 0 Evolution übrig: Melde "Keine übertragbaren Insights" und stoppe. -## Phase 3: Propagation +## Phase 3: Transfer > **Nur wenn Quell-Repo ≠ Ziel-Repo.** -Führe die Propagation durch. Folge den Anweisungen aus `.github/prompts/genome-propagate.prompt.md`: +Führe den Transfer durch. Folge den Anweisungen aus `.github/prompts/genome-propagate.prompt.md`: -1. Lies `.github/genome/output/distilled-mutations.md` +1. Lies `.github/genome/output/distilled-insights.md` 2. Scanne das Ziel-Genome (`.github/` des Ziel-Repos) -3. Matche Traits und generiere Patches +3. Matche Capabilities und generiere Patches 4. Zeige die Checkliste: - `[x]` Critical (default an) - `[x]` Evolution mit Score ≥ 7 (default an) diff --git a/.github/skills/genome/SKILL.md b/.github/skills/genome/SKILL.md index 4b03a51..8d483db 100644 --- a/.github/skills/genome/SKILL.md +++ b/.github/skills/genome/SKILL.md @@ -1,30 +1,30 @@ # Genome Engine -Automatische Erkennung und Übertragung evolutionärer Verbesserungen an Copilot-Customization-Dateien (Skills, Agents, Prompts, Instructions) zwischen Repositories. +Automatische Erkennung und Übertragung von Verbesserungen am KI-Tooling (Skills, Agents, Prompts, Instructions) zwischen Repositories. ## Trigger-Phrasen -`genome`, `propagate`, `mutations übertragen`, `traits synchronisieren`, `genome extract`, `genome propagate` +`genome`, `transfer`, `improvements übertragen`, `capabilities synchronisieren`, `genome extract`, `genome transfer` ## 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. +Die Genome Engine erkennt Verbesserungen an KI-Konfigurationsdateien über Git-History, destilliert sie in übertragbare "Insights" 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 +- **Capability** – Ein Skill, Agent, Prompt(-Verbund) oder Instructions-File +- **Genome** – Die Gesamtheit aller Capabilities eines Projekts +- **Improvement** – Ein Git-Commit-Delta an einer Capability +- **Insight** – Destilliertes, bewertetes Improvement (bereinigt, klassifiziert, gescored) +- **Transfer** – 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 | +| Phase | Tool | Input → Output | +| --------------- | ---------------------------- | --------------------------------------------------- | +| 1. Extraction | `genome-extract.py` | Git-History → `raw-improvements.md` | +| 2. Distillation | `genome-distill.prompt.md` | `raw-improvements.md` → `distilled-insights.md` | +| 3. Transfer | `genome-propagate.prompt.md` | `distilled-insights.md` + Ziel-Genome → Patches | ## Usage @@ -36,18 +36,18 @@ Der Router-Prompt fragt nach Quell-Repo und Zeitspanne, dann orchestriert er all ## Dateien -| Datei | Ort | Zweck | -| ---------------------------- | ------------------------ | --------------------------------------- | -| `SKILL.md` | `.github/skills/genome/` | Diese Dokumentation | -| `genome-extract.py` | `.github/skills/genome/` | Phase 1: Git-Scanning + Trait-Erkennung | -| `genome.prompt.md` | `.github/prompts/` | Orchestrator (Router für alle 3 Phasen) | -| `genome-distill.prompt.md` | `.github/prompts/` | Phase 2: Klassifizierung + Scoring | -| `genome-propagate.prompt.md` | `.github/prompts/` | Phase 3: Patch-Generierung für Ziel | -| `Concept Genome Engine.md` | `.github/genome/` | Vollständiges Konzept-Dokument | +| Datei | Ort | Zweck | +| ---------------------------- | ------------------------ | --------------------------------------------- | +| `SKILL.md` | `.github/skills/genome/` | Diese Dokumentation | +| `genome-extract.py` | `.github/skills/genome/` | Phase 1: Git-Scanning + Capability-Erkennung | +| `genome.prompt.md` | `.github/prompts/` | Orchestrator (Router für alle 3 Phasen) | +| `genome-distill.prompt.md` | `.github/prompts/` | Phase 2: Klassifizierung + Scoring | +| `genome-propagate.prompt.md` | `.github/prompts/` | Phase 3: Transfer-Vorschläge für Ziel | +| `Concept Genome Engine.md` | `.github/genome/` | Vollständiges Konzept-Dokument | -## Trait-Erkennung +## Capability-Erkennung -Pfade werden automatisch zu Trait-Keys aufgelöst: +Pfade werden automatisch zu Capability-Keys aufgelöst: ``` .github/skills/gh-tickets/SKILL.md → skill/gh-tickets diff --git a/.github/skills/genome/genome-extract.py b/.github/skills/genome/genome-extract.py index 1cff82e..a33a9d1 100644 --- a/.github/skills/genome/genome-extract.py +++ b/.github/skills/genome/genome-extract.py @@ -2,9 +2,9 @@ """ Genome Engine – Phase 1: Extraction -Extrahiert Mutations aus der Git-History für Copilot-Customization-Dateien. +Extrahiert Improvements aus der Git-History für KI-Tooling-Dateien. Scannt git log für Änderungen im Genome-Scope (.github/skills, agents, prompts, instructions). -Gruppiert Diffs nach Trait und gibt strukturiertes Markdown aus. +Gruppiert Diffs nach Capability und gibt strukturiertes Markdown aus. Usage: python .github/skills/genome/genome-extract.py --since "7 days ago" @@ -64,7 +64,7 @@ def is_in_genome_scope(filepath: str) -> bool: def get_trait_key(filepath: str, repo_path: str) -> str | None: - """Leitet den Trait-Key aus einem Dateipfad ab.""" + """Leitet den Capability-Key aus einem Dateipfad ab.""" # Skills: skill/ m = re.match(r"^\.github/skills/([^/]+)/", filepath) @@ -107,7 +107,7 @@ def get_trait_key(filepath: str, repo_path: str) -> str | None: def get_mutation_type(status: str) -> str: - """Bestimmt den Mutation-Typ aus dem Git-Status-Buchstaben.""" + """Bestimmt den Improvement-Typ aus dem Git-Status-Buchstaben.""" if status.startswith("A"): return "member-added" elif status.startswith("D"): @@ -117,7 +117,7 @@ def get_mutation_type(status: str) -> str: def extract_mutations(repo_path: str, since: str) -> dict[str, list[dict]]: - """Extrahiert alle Mutations aus der Git-History.""" + """Extrahiert alle Improvements aus der Git-History.""" mutations: dict[str, list[dict]] = defaultdict(list) # Git-Log abrufen @@ -201,26 +201,26 @@ def extract_mutations(repo_path: str, since: str) -> dict[str, list[dict]]: def generate_markdown(mutations: dict[str, list[dict]], repo_path: str, since: str) -> str: """Generiert die Markdown-Ausgabe.""" lines = [] - lines.append("# Raw Mutations") + lines.append("# Raw Improvements") lines.append("") lines.append(f"**Extrahiert:** {datetime.now().strftime('%Y-%m-%d %H:%M')}") lines.append(f"**Zeitraum:** seit {since}") lines.append(f"**Repository:** {Path(repo_path).resolve().name}") - lines.append(f"**Traits mit Mutations:** {len(mutations)}") + lines.append(f"**Capabilities mit Improvements:** {len(mutations)}") lines.append("") lines.append("---") lines.append("") if not mutations: - lines.append("*Keine Mutations im angegebenen Zeitraum gefunden.*") + lines.append("*Keine Improvements im angegebenen Zeitraum gefunden.*") else: for trait_key in sorted(mutations.keys()): trait_mutations = mutations[trait_key] - lines.append(f"## Trait: `{trait_key}`") + lines.append(f"## Capability: `{trait_key}`") lines.append("") - lines.append("| Mutations | Dateien |") - lines.append("|-----------|---------|") + lines.append("| Improvements | Dateien |") + lines.append("|-------------|---------|") unique_files = sorted(set(m["file"] for m in trait_mutations)) lines.append(f"| {len(trait_mutations)} | {', '.join(unique_files)} |") @@ -259,11 +259,11 @@ def main(): parser = argparse.ArgumentParser(description="Genome Engine – Extraction") parser.add_argument("--since", default="7 days ago", help='Zeitspanne (z.B. "7 days ago")') parser.add_argument("--repo", default=".", help="Pfad zum Repository") - parser.add_argument("--output", default="", help="Output-Pfad (default: .github/genome/output/raw-mutations.md)") + parser.add_argument("--output", default="", help="Output-Pfad (default: .github/genome/output/raw-improvements.md)") args = parser.parse_args() repo_path = os.path.abspath(args.repo) - output_path = args.output or os.path.join(repo_path, ".github/genome/output/raw-mutations.md") + output_path = args.output or os.path.join(repo_path, ".github/genome/output/raw-improvements.md") print(f"Genome Extract: Scanning commits since '{args.since}'...") @@ -278,9 +278,9 @@ def main(): total_mutations = sum(len(v) for v in mutations.values()) print() print("Extraction abgeschlossen:") - print(f" Traits: {len(mutations)}") - print(f" Mutations: {total_mutations}") - print(f" Output: {output_path}") + print(f" Capabilities: {len(mutations)}") + print(f" Improvements: {total_mutations}") + print(f" Output: {output_path}") if __name__ == "__main__":