bollwerk/.github/knowledge-conduit/Concept.md
2026-05-18 13:22:08 +02:00

290 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Knowledge Conduit Konzept
## Ziel
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 Dev+AI-Teams bereitgestellt.
```mermaid
graph LR
A[Team A<br/>Verbesserungen] -->|Git-History| E[Extraction]
E -->|raw improvements| D[Distillation]
D -->|Insights| T[Transfer]
T -->|Patches| B[Team B<br/>aktualisiert]
```
---
## Begriffe
```mermaid
graph TD
G[Knowledge Conduit] --> 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 |
| --------------- | ----------------------------------------------------------------------------------------- |
| **Capability** | Ein Skill, Agent, Prompt(-Verbund) oder Instructions-File inkl. aller zugehörigen Dateien |
| **Conduit** | Der Kanal, durch den Wissen zwischen Dev+AI-Teams fließt |
| **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-Repo anzuwenden |
---
## Scope
Folgende Pfade bilden die KI-Tooling-Landschaft:
- `.github/skills/**`
- `.github/agents/**`
- `.github/prompts/**`
- `.github/copilot-instructions.md`
- `.github/*.instructions.md`
---
## Capability-Erkennung
Capabilities werden aus dem Dateipfad abgeleitet. Die Granularität hängt vom Capability-Typ ab:
```mermaid
graph TD
F[Dateipfad] --> S{Pfad-Pattern?}
S -->|.github/skills/X/...| SK["skill/X"]
S -->|.github/agents/X.agent.md| AG["agent/X"]
S -->|.github/prompts/X.prompt.md| PM{Verbund?}
S -->|.github/*.instructions.md| IN["instructions/X"]
PM -->|"X-*.prompt.md existiert"| VB["prompt/X<br/>(Verbund)"]
PM -->|Keine Sub-Prompts| SA["prompt/X<br/>(Standalone)"]
```
### Skills
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 → 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/<ordnername>` 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 Capability-Schlüssel.
```
.github/agents/android-implementer.agent.md → capability: agent/android-implementer
.github/agents/code-reviewer.agent.md → capability: agent/code-reviewer
```
**Regel:** `agent/<dateiname-ohne-extension>` 1:1-Zuordnung Datei → Capability.
### Prompts
Prompts unterscheiden zwei Varianten: **Standalone** und **Verbund**.
#### Standalone-Prompts
Einzeldateien ohne Router-Beziehung. Der **Dateiname** ist der Capability-Schlüssel.
```
.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/<dateiname-ohne-extension>` 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 **eine** Capability. Der **Router-Name** ist der Capability-Schlüssel.
```
.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 `<name>.prompt.md` ist ein Router, wenn Dateien `<name>-*.prompt.md` im selben Verzeichnis existieren. Alle gehören zur selben Verbund-Capability.
### Instructions
Instructions-Dateien sind Einzeldateien. Der **Dateiname** ist der Capability-Schlüssel.
```
.github/copilot-instructions.md → capability: instructions/copilot-instructions
.github/kotlin-conventions.instructions.md → capability: instructions/kotlin-conventions
```
**Regel:** `instructions/<dateiname-ohne-extension>` 1:1-Zuordnung Datei → Capability.
---
## Improvement-Typen
| 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 |
---
## Pipeline
```mermaid
flowchart TD
GIT[(Git-History)] --> SCRIPT[kc-extract.py]
SCRIPT --> RAW[raw-improvements.md]
RAW --> AGENT1[KI-Agent: Distillation]
AGENT1 -->|Klassifizieren + Scoren + Sanitizen| DIST[distilled-insights.md]
DIST --> AGENT2[KI-Agent: Transfer]
ZIEL[Ziel-Repo] --> AGENT2
AGENT2 --> PATCHES[transfer-proposals.md]
style SCRIPT fill:#2d4a2d,stroke:#4a7c4a
style AGENT1 fill:#4a3d2d,stroke:#7c6a4a
style AGENT2 fill:#2d3d4a,stroke:#4a6a7c
```
### Phase 1: Extraction (Script)
**Input:** Repo-Pfad + Zeitspanne (z.B. `--since "7 days ago"`)
**Output:** `raw-improvements.md`
- Scannt `git log` für Änderungen im KI-Tooling-Scope
- Gruppiert Diffs nach Capability (siehe Capability-Erkennung oben)
- Gibt pro Capability alle Commits mit Diff, Message und Autor aus
**Tool:** `kc-extract.py` (Python)
### Phase 2: Distillation (Agent)
**Input:** `raw-improvements.md`
**Output:** `distilled-insights.md`
```mermaid
flowchart TD
M[Improvement] --> K{Klassifizierung}
K -->|Bugfix fuer alle| C[CRITICAL]
K -->|Generelle Verbesserung| E[EVOLUTION]
K -->|Nur dieses Projekt| S[SPECIALIZED]
C --> SC[Score 1-10]
E --> SC
S --> X[Entfernt]
SC --> SAN[Sanitization]
SAN -->|Score ge 4| OUT[distilled-insights.md]
SAN -->|Score lt 4| X
```
- Scored jedes Improvement (110) nach Übertragungswert
- Filtert sensitive Daten (Usernames, Maschinenpfade, Tokens, projektspezifische IDs)
- Specialized Improvements werden komplett entfernt
**Tool:** `kc-distill.prompt.md`
### Phase 3: Transfer (Agent)
**Input:** `distilled-insights.md` + Ziel-Repo
**Output:** `transfer-proposals.md`
- Matched Capabilities zwischen Quell- und Ziel-Repo
- Erstellt konkrete Änderungsvorschläge pro Capability
- Formatiert als Checkliste mit Default-Auswahl:
| Kategorie | Default | Bedingung |
| ---------------- | ------- | --------- |
| 🔴 Critical | ✅ an | immer |
| 🟡 Evolution ≥ 7 | ✅ an | Score ≥ 7 |
| 🟡 Evolution < 7 | ❌ aus | Score < 7 |
| ⚪ Specialized | — | gefiltert |
**Tool:** `kc-transfer.prompt.md`
---
## Zeitbasierte Transferlogik
```mermaid
sequenceDiagram
participant R as Quell-Repo
participant T as Ziel-Repo
Note over T: Letzter .github/-Commit = T_target
R->>R: git log --since T_target
R->>R: 12 Commits an .github/ gefunden
R-->>T: Improvements extrahiert → Distillation → Transfer
```
1. Letzter `.github/`-Commit im Ziel-Repo ermitteln → `T_target`
2. Alle `.github/`-Commits im Quell-Repo seit `T_target` extrahieren
3. Das Delta zwischen `T_target` und jetzt ist der Evolutionszeitraum
---
## Dateistruktur
```mermaid
graph TD
subgraph skills [skills/knowledge-conduit/]
SK[SKILL.md]
EX[kc-extract.py]
end
subgraph prompts [prompts/]
OR[knowledge-conduit.prompt.md]
DI[kc-distill.prompt.md]
PR[kc-transfer.prompt.md]
end
subgraph output [knowledge-conduit/output/]
RM[raw-improvements.md]
DM[distilled-insights.md]
PP[transfer-proposals.md]
end
subgraph concept [knowledge-conduit/]
CO[Concept.md]
end
OR -->|ruft auf| EX
OR -->|delegiert an| DI
OR -->|delegiert an| PR
EX -->|schreibt| RM
DI -->|liest| RM
DI -->|schreibt| DM
PR -->|liest| DM
PR -->|schreibt| PP
```
| # | Datei | Typ | Ort |
| --- | ----------------------------- | ------------- | ----------------------------------- |
| 1 | `kc-extract.py` | Python Script | `.github/skills/knowledge-conduit/` |
| 2 | `knowledge-conduit.prompt.md` | Orchestrator | `.github/prompts/` |
| 3 | `kc-distill.prompt.md` | Prompt | `.github/prompts/` |
| 4 | `kc-transfer.prompt.md` | Prompt | `.github/prompts/` |
| 5 | `SKILL.md` | Skill-Doku | `.github/skills/knowledge-conduit/` |
| 6 | `Concept.md` | Konzept | `.github/knowledge-conduit/` |
| 7 | `raw-improvements.md` | Generiert | `.github/knowledge-conduit/output/` |
| 8 | `distilled-insights.md` | Generiert | `.github/knowledge-conduit/output/` |
| 9 | `transfer-proposals.md` | Generiert | `.github/knowledge-conduit/output/` |
> Generierte Dateien (79) sind gitignored.
---
## Zukünftige Erweiterungen
- Multi-Repo-Registry: Zentrale Sammlung von Insights aus vielen Dev+AI-Teams
- Automatische Erkennung des Transfer-Zeitraums über Repo-Vergleich
- CI-Integration: Transfer-Check bei jedem Push
- Community-Sharing: Öffentliche Insights als "Capability Packages"