Skill: compound-engineering-pi
Ziel: Sichten und Kategorisieren von Befunden für das CLI-Todo-System
- Setze zuerst das
/modelauf Haiku - Lies dann alle ausstehenden Todos aus den Verzeichnissen
.context/compound-engineering/todos/undtodos/(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:
-
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}.mdZuordnung Schweregrad:
- 🔴 P1 (KRITISCH) →
p1 - 🟡 P2 (WICHTIG) →
p2 - 🔵 P3 (SCHÖN-ZU-HABEN) →
p3
Beispiel:
042-ready-p1-transaktionsgrenzen.md - Datei umbenennen von
-
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: [] --- -
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} -
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
-
Mit der Bearbeitung der freigegebenen Elemente beginnen:
/resolve-todo-parallel # Mehrere freigegebene Elemente effizient bearbeiten -
Oder einzelne Elemente auswählen und bearbeiten
-
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:
- User.update gelingt (E-Mail geändert)
- Account.save! schlägt fehl (Validierungsfehler)
- Ergebnis: User hat geänderte E-Mail, aber kein zugehöriges Account-Objekt
- 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?
- ja - Todo-Datei erstellen
- weiter - dieses Element überspringen
- 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