Systematically fix multiple GitHub issues with parallel analysis and sequential TDD fixes. Use for batch bug-fixing sessions.
Systematischer Workflow zur Behebung mehrerer GitHub Issues mit paralleler Analyse und sequentiellen TDD-Fixes.
Arguments: $ARGUMENTS
IMMER zuerst ausführen - ein Worktree für ALLE Bugs!
EnterWorktree(name: "fix-issues-YYYYMMDD")
Verwende das aktuelle Datum (z.B. "fix-issues-20260224").
# Alle Bug-Issues laden
gh issue list --label "bug" --state open --json number,title,labels,body --limit 50
# Oder mit Priority-Filter
gh issue list --label "bug" --label "priority: critical" --state open --json number,title,labels,body
flutter test
| Label | Reihenfolge | Beispiel |
|---|---|---|
priority: critical | 1 | Security-Bugs, Crashes |
priority: high | 2 | Feature broken |
priority: medium | 3 | Edge Cases, UX |
priority: low | 4 | Code-Qualität |
Prüfe .claude/bug-report.md auf bereits dokumentierte Duplikate:
Bugs in der gleichen Datei sollten zusammen gefixt werden:
Beispiel-Gruppen:
Gruppe 1 (player_repository.dart):
- SEC-006, SEC-007, SEC-008, SEC-009
Gruppe 2 (pending_players_page.dart):
- SEC-001, SEC-002, FN-008/RT-005, RT-006, RT-007
AskUserQuestion:
question: "Welche Issues sollen bearbeitet werden?"
options:
- label: "Alle Issues"
description: "Alle offenen Bug-Issues systematisch abarbeiten"
- label: "Nur KRITISCH"
description: "Nur Issues mit priority: critical"
- label: "Auswahl"
description: "Spezifische Issue-Nummern angeben"
Falls $ARGUMENTS bereits spezifische Issues enthält (z.B. #1 #2 #4), diesen Schritt überspringen.
WICHTIG: Für JEDEN Bug/Gruppe PARALLEL einen Analyzer starten!
Task(
subagent_type: "bug-analyzer",
description: "Analyze Issue #X",
prompt: "Analysiere Issue #X: [TITEL]. Details: [BODY]. Liefere: Root-Cause, betroffene Dateien, Fix-Ansatz.",
run_in_background: true
)
Beispiel für mehrere Issues:
// Alle parallel starten!
Task(subagent_type: "bug-analyzer", prompt: "Issue #1...", run_in_background: true)
Task(subagent_type: "bug-analyzer", prompt: "Issue #2...", run_in_background: true)
Task(subagent_type: "bug-analyzer", prompt: "Issue #3...", run_in_background: true)
Mit TaskOutput auf alle Analyzer warten und sammeln:
Nach Analyse die Reihenfolge optimieren:
AskUserQuestion:
question: "Welcher Fix-Modus?"
options:
- label: "Automatisch (Recommended)"
description: "Läuft durch ohne Bestätigung, pausiert nur bei Fehlern"
- label: "Interaktiv"
description: "Bestätigung vor jedem Bug-Fix, maximale Kontrolle"
- label: "Batch"
description: "Bestätigung pro Gruppe (z.B. alle Security-Bugs zusammen)"
Für jeden Bug/Gruppe einen Task erstellen:
TaskCreate(
subject: "Fix #X: [KURZTITEL]",
description: "Root-Cause: [CAUSE]. Fix: [APPROACH]. Datei: [FILE]",
activeForm: "Fixe Issue #X"
)
PFLICHT: Für JEDEN Bug den vollständigen Zyklus durchlaufen!
// test/features/xxx/xxx_test.dart
test('sollte [erwartetes Verhalten] - Issue #X', () {
// Arrange - Setup für den Bug-Fall
// Act - Aktion die den Bug auslöst
// Assert - Erwartetes korrektes Verhalten
expect(actual, expected);
});
flutter test test/features/xxx/xxx_test.dart
flutter test test/features/xxx/xxx_test.dart
flutter test
dart analyze lib/
Task(
subagent_type: "flutter-reviewer",
prompt: "Review Bug-Fix für Issue #X. Geänderte Dateien: [LISTE]"
)
Bei kritischen Issues: STOPP und fixen!
git add [geänderte Dateien]
git commit -m "$(cat <<'EOF'