gvkhosla/compound-engineering-pi

Sichten und Kategorisieren von Ergebnissen für das CLI-Todo-System

Was ist compound-engineering-pi?

Diese KI-Agenten-Fähigkeit (Skill) namens 'compound-engineering-pi' dient der strukturierten Sichtung (Triage) von Befunden, Entscheidungen oder Issues, die im Rahmen von Code-Reviews, Sicherheitsaudits, Performance-Analysen oder anderen kategorisierten Überprüfungen anfallen. Der Skill arbeitet mit dem 'compound-engineering'-Kontext und dem CLI-Todo-System zusammen. Der Agent präsentiert dem Benutzer jeden Befund einzeln zur Entscheidung: entweder als Todo aufnehmen (mit automatischer Dateierstellung und Statusänderung von 'pending' zu 'ready'), überspringen (wobei die entsprechende Datei gelöscht wird) oder individuell anpassen. Der Workflow ist streng darauf ausgelegt, während der Triage KEINEN Code zu schreiben oder Änderungen zu implementieren – dies ist einer späteren 'resolve'-Phase vorbehalten. Der Skill unterstützt die nahtlose Integration mit Dateisystem-basierten Todos (.context/compound-engineering/todos/ und legacy todos/) und sorgt für eine konsistente YAML-Frontmatter-Struktur in den Todo-Dateien. Nach Abschluss aller Sichtungen erstellt der Agent eine Zusammenfassung mit Statistiken und konkreten nächsten Schritten.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gvkhosla/compound-engineering-pi/tree/HEAD/skills/triage

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Skill: compound-engineering-pi

Ziel: Sichten und Kategorisieren von Befunden für das CLI-Todo-System

  • Setze zuerst das /model auf Haiku
  • Lies dann alle ausstehenden Todos aus den Verzeichnissen .context/compound-engineering/todos/ und todos/ (Legacy)

Präsentiere alle Befunde, Entscheidungen oder Issues nacheinander zur Sichtung. Das Ziel ist es, jedes Element durchzugehen und zu entscheiden, ob es zum CLI-Todo-System hinzugefügt werden soll.

WICHTIG: WÄHREND DER SICHTUNG DARF KEIN CODE GESCHRIEBEN WERDEN!

Dieser Befehl ist geeignet für:

  • Sichtung von Code-Review-Ergebnissen
  • Verarbeitung von Sicherheitsaudit-Ergebnissen
  • Überprüfung von Performance-Analysen
  • Bearbeitung anderer kategorisierter Befunde, die getrackt werden müssen

Arbeitsablauf

Schritt 1: Jeden Befund präsentieren

Für jeden Befund in folgendem Format präsentieren:

---
Issue #X: [Kurzer Titel]

Schweregrad: 🔴 P1 (KRITISCH) / 🟡 P2 (WICHTIG) / 🔵 P3 (SCHÖN-ZU-HABEN)

Kategorie: [Sicherheit/Performance/Architektur/Bug/Feature/usw.]

Beschreibung:
[Detaillierte Erklärung des Problems oder der Verbesserung]

Ort: [dateipfad:zeilennummer]

Problemszenario:
[Schritt für Schritt, was falsch ist oder passieren könnte]

Vorgeschlagene Lösung:
[Wie es behoben werden kann]

Geschätzter Aufwand: [Klein (< 2 Stunden) / Mittel (2-8 Stunden) / Groß (> 8 Stunden)]

---
Möchtest du dies zur Todo-Liste hinzufügen?
1. ja - Todo-Datei erstellen
2. weiter - dieses Element überspringen
3. benutzerdefiniert - vor dem Erstellen ändern

Schritt 2: Benutzerentscheidung behandeln

Wenn der Benutzer "ja" sagt:

  1. Bestehende Todo-Datei aktualisieren (falls vorhanden) oder Neuen Dateinamen erstellen:

    Wenn das Todo bereits existiert (z. B. aus Code-Review):

    • Datei umbenennen von {id}-pending-{priority}-{desc}.md → {id}-ready-{priority}-{desc}.md
    • YAML-Frontmatter aktualisieren: status: pending → status: ready
    • issue_id, priority und description unverändert lassen

    Bei neuem Todo:

    {next_id}-ready-{priority}-{kurzbeschreibung}.md
    

    Zuordnung Schweregrad:

    • 🔴 P1 (KRITISCH) → p1
    • 🟡 P2 (WICHTIG) → p2
    • 🔵 P3 (SCHÖN-ZU-HABEN) → p3

    Beispiel: 042-ready-p1-transaktionsgrenzen.md

  2. YAML-Frontmatter aktualisieren:

    ---
    status: ready # WICHTIG: Von "pending" auf "ready" ändern
    priority: p1 # oder p2, p3 je nach Schweregrad
    issue_id: "042"
    tags: [kategorie, relevante-tags]
    dependencies: []
    ---
    
  3. Datei befüllen oder aktualisieren:

    # [Issue-Titel]
    
    ## Problemstellung
    [Beschreibung aus dem Befund]
    
    ## Erkenntnisse
    - [Wichtige Entdeckungen]
    - Ort: [dateipfad:zeilennummer]
    - [Szenario-Details]
    
    ## Vorgeschlagene Lösungen
    
    ### Option 1: [Primäre Lösung]
    - **Vorteile**: [Nutzen]
    - **Nachteile**: [Nachteile falls vorhanden]
    - **Aufwand**: [Klein/Mittel/Groß]
    - **Risiko**: [Niedrig/Mittel/Hoch]
    
    ## Empfohlene Aktion
    [Wird während der Sichtung ausgefüllt – konkreter Aktionsplan]
    
    ## Technische Details
    - **Betroffene Dateien**: [Dateien auflisten]
    - **Zugehörige Komponenten**: [Betroffene Komponenten]
    - **Datenbankänderungen**: [Ja/Nein – Beschreibung falls ja]
    
    ## Ressourcen
    - Ursprünglicher Befund: [Quelle dieses Issues]
    - Verwandte Issues: [Falls vorhanden]
    
    ## Abnahmekriterien
    - [ ] [Spezifische Erfolgskriterien]
    - [ ] Tests bestehen
    - [ ] Code reviewed
    
    ## Arbeitsprotokoll
    
    ### {Datum} - Für Bearbeitung freigegeben
    **Von:** Claude-Sichtungssystem
    **Aktionen:**
    - Issue während der Sichtungssitzung freigegeben
    - Status von pending → ready geändert
    - Bereit zur Aufnahme und Bearbeitung
    
    **Erkenntnisse:**
    - [Kontext und Einsichten]
    
    ## Notizen
    Quelle: Sichtungssitzung vom {Datum}
    
  4. Freigabe bestätigen: "✅ Freigegeben: {neuer_dateiname} (Issue #{issue_id}) - Status: ready → Bereit zur Bearbeitung"

Wenn der Benutzer "weiter" sagt:

  • Todo-Datei löschen – Aus dem aktuellen Verzeichnis entfernen, da es nicht relevant ist
  • Zum nächsten Element springen
  • Übersprungene Elemente für die Zusammenfassung notieren

Wenn der Benutzer "benutzerdefiniert" sagt:

  • Nachfragen, was geändert werden soll (Priorität, Beschreibung, Details)
  • Informationen aktualisieren
  • Überarbeitete Version präsentieren
  • Erneut fragen: ja/weiter/benutzerdefiniert

Schritt 3: Fortfahren bis alle verarbeitet sind

  • Alle Elemente nacheinander verarbeiten
  • Übersicht mit dateibasierten Todos führen (todos/ + /skill:file-todos) für Transparenz
  • Nicht auf Freigabe zwischen Elementen warten – weiter machen

Schritt 4: Abschließende Zusammenfassung

Nachdem alle Elemente verarbeitet wurden:

## Sichtung abgeschlossen

**Gesamtanzahl:** [X] **Freigegebene Todos (ready):** [Y] **Übersprungene:** [Z]

### Freigegebene Todos (Bereit zur Bearbeitung):

- `042-ready-p1-transaktionsgrenzen.md` – Transaktionsgrenzen-Problem
- `043-ready-p2-cache-optimierung.md` – Cache-Performance-Verbesserung ...

### Übersprungene Elemente (Gelöscht):

- Element #5: [Grund] – Entfernt
- Element #12: [Grund] – Entfernt

### Zusammenfassung der Änderungen:

Während der Sichtung wurden folgende Statusaktualisierungen vorgenommen:

- **Pending → Ready:** Dateinamen und Frontmatter aktualisiert, um den freigegebenen Status abzubilden
- **Gelöscht:** Todo-Dateien für übersprungene Befunde entfernt
- Jede freigegebene Datei hat nun `status: ready` im YAML-Frontmatter

### Nächste Schritte:

1. Freigegebene Todos für die Bearbeitung anzeigen:
   ```bash
   ls .context/compound-engineering/todos/*-ready-*.md todos/*-ready-*.md 2>/dev/null
  1. Mit der Bearbeitung der freigegebenen Elemente beginnen:

    /resolve-todo-parallel  # Mehrere freigegebene Elemente effizient bearbeiten
    
  2. Oder einzelne Elemente auswählen und bearbeiten

  3. Während der Arbeit den Todo-Status aktualisieren:

    • Ready → In Bearbeitung (im lokalen Kontext während der Arbeit)
    • In Bearbeitung → Abgeschlossen (Datei umbenennen: ready → complete, Frontmatter aktualisieren)

## Beispiel-Antwortformat


Issue #5: Fehlende Transaktionsgrenzen für mehrschrittige Operationen

Schweregrad: 🔴 P1 (KRITISCH)

Kategorie: Datenintegrität / Sicherheit

Beschreibung: Der google_oauth2_connected-Callback im GoogleOauthCallbacks-Modul führt mehrere Datenbankoperationen ohne Transaktionsschutz durch. Falls ein Schritt fehlschlägt, bleibt die Datenbank in einem inkonsistenten Zustand.

Ort: app/controllers/concerns/google_oauth_callbacks.rb:13-50

Problemszenario:

  1. User.update gelingt (E-Mail geändert)
  2. Account.save! schlägt fehl (Validierungsfehler)
  3. Ergebnis: User hat geänderte E-Mail, aber kein zugehöriges Account-Objekt
  4. Nächster Login-Versuch schlägt vollständig fehl

Operationen ohne Transaktion:

  • User-Bestätigung (Zeile 13)
  • Warteliste entfernen (Zeile 14)
  • User-Profilaktualisierung (Zeile 21-23)
  • Account-Erstellung (Zeile 28-37)
  • Avatar-Anhang (Zeile 39-45)
  • Journey-Erstellung (Zeile 47)

Vorgeschlagene Lösung: Alle Operationen in einen ApplicationRecord.transaction do ... end-Block einschließen

Geschätzter Aufwand: Klein (30 Minuten)


Möchtest du dies zur Todo-Liste hinzufügen?

  1. ja - Todo-Datei erstellen
  2. weiter - dieses Element überspringen
  3. benutzerdefiniert - vor dem Erstellen ändern

## Wichtige Implementierungsdetails

### Statusübergänge während der Sichtung

**Bei Auswahl "ja":**
1. Datei umbenennen: `{id}-pending-{priority}-{desc}.md` → `{id}-ready-{priority}-{desc}.md`
2. YAML-Frontmatter aktualisieren: `status: pending` → `status: ready`
3. Arbeitsprotokoll mit Sichtungsfreigabe-Eintrag aktualisieren
4. Bestätigen: "✅ Freigegeben: `{dateiname}` (Issue #{issue_id}) - Status: **ready**"

**Bei Auswahl "weiter":**
1. Todo-Datei aus dem aktuellen Verzeichnis löschen
2. Zum nächsten Element springen
3. Keine Datei bleibt im System

### Fortschrittsverfolgung

Jedes Mal, wenn du ein Todo als Überschrift präsentierst, füge Folgendes hinzu:
- **Fortschritt:** X/Y abgeschlossen (z. B. "3/10 abgeschlossen")
- **Geschätzte verbleibende Zeit:** Basierend auf deinem Tempo
- **Tempo:** Zeit pro Befund überwachen und Schätzung anpassen

Beispiel:

Fortschritt: 3/10 abgeschlossen | Geschätzte Zeit: ~2 Minuten verbleibend


### Während der Sichtung keinen Code schreiben

- ✅ Befunde präsentieren
- ✅ Ja/Weiter/Benutzerdefiniert-Entscheidungen treffen
- ✅ Todo-Dateien aktualisieren (umbenennen, Frontmatter, Arbeitsprotokoll)
- ❌ KEINE Fehlerbehebungen implementieren oder Code schreiben
- ❌ KEINE detaillierten Implementierungsdetails hinzufügen
- ❌ Das ist für die /resolve-todo-parallel-Phase

---

Wenn du fertig bist, gib diese Optionen:

```markdown
Was möchtest du als Nächstes tun?

1. /resolve-todo-parallel ausführen, um die Todos zu bearbeiten
2. Todos committen
3. Nichts, entspannen

Verwandte Skills