AgentSkillsCN

fix-bug

为 Tauri 应用程序的存储分析构建结构化的 Bug 修复流程。先阅读开放问题,深入剖析问题根源,实施修复方案,更新变更日志,最终闭环问题处理。适用于收到 Bug 报告,或需要修复某个问题时使用。调用方式为 /fix-bug [Bug 描述或 Issue 参考]。

SKILL.md
--- frontmatter
name: fix-bug
description: Strukturierter Bug-Fix-Workflow für die Speicher Analyse Tauri-App. Liest offene Issues, führt Tiefenanalyse durch, implementiert den Fix, aktualisiert das Änderungsprotokoll und schließt den Kreislauf. Nutze diesen Skill wenn ein Bug gemeldet wird oder ein Issue behoben werden soll. Aufruf mit /fix-bug [bug-beschreibung oder issue-referenz].

Bug-Fix-Workflow

Du behebst einen Bug in der Speicher Analyse Tauri-App. Das Problem liegt IMMER im Quellcode.

Argument

$ARGUMENTS = Bug-Beschreibung ODER Verweis auf ein Issue in docs/issues/issue.md

Phase 1: Issue & Kontext erfassen

  1. Issue-Tracker prüfen: Lies docs/issues/issue.md — gibt es ein passendes offenes Issue?
  2. Git-Historie prüfen: git log --oneline -10 und git diff für Kontext
  3. Betroffene Module identifizieren: Welche Dateien sind involviert?

Phase 2: Tiefenanalyse (OBERSTE DIREKTIVE)

Verfolge den vollständigen Datenfluss durch alle Schichten:

code
Frontend (renderer/js/*.js)
  → window.api.*() Aufruf
    → Bridge (renderer/js/tauri-bridge.js) - Methode korrekt gemappt?
      → Tauri-Command (src-tauri/src/commands.rs) - Command korrekt?
        → PowerShell (src-tauri/src/ps.rs) - Script korrekt?
          → Rückweg: JSON → commands.rs → Bridge → Frontend → DOM

Prüfe zusätzlich:

  • CSS-Regeln die das Problem verursachen könnten (renderer/css/style.css)
  • Event-Handler und DOM-State im Frontend
  • Timer/Intervalle die nicht aufgeräumt werden
  • PowerShell-Escaping und UTF-8-Encoding

Phase 3: Fix implementieren

  1. Minimaler Fix: Nur die Wurzelursache beheben, kein Refactoring
  2. Security beachten:
    • PowerShell-Parameter escapen: .replace("'", "''")
    • Pfade vom Frontend validieren
    • Fehlermeldungen sicher anzeigen: textContent, nicht innerHTML
    • Dynamische Inhalte mit escapeHtml() escapen
  3. Konventionen einhalten:
    • Async/Await (kein blockierender Code)
    • Error-Handling mit try/catch
    • Deutsche UI-Texte mit korrekten Umlauten
    • PowerShell via crate::ps::run_ps()
  4. Lifecycle beachten:
    • Timer in destroy() aufräumen
    • _loaded Flags bei Fehler zurücksetzen
  5. Keine Zwischenlösungen: Der Fix muss ohne User-Aktion wirken (kein "Bitte F5 drücken")

Phase 4: Verifizierung

  1. Datenfluss nochmal durchgehen: Stimmt der Pfad jetzt?
  2. Seiteneffekte prüfen: Könnte der Fix andere Features beeinträchtigen?
  3. Edge Cases bedenken: Leere Daten, Fehler, Timeouts
  4. Visuell prüfen: /visual-verify bei UI-Änderungen (PFLICHT)

Phase 5: Dokumentation

  1. Git Commit: git add . && git commit -m "fix: <Beschreibung>" && git push
  2. Änderungsprotokoll: /changelog fix <Beschreibung>
  3. Issue aktualisieren: Status in docs/issues/issue.md auf "In Prüfung" setzen (NICHT auf erledigt — nur Simon darf das)

Ausgabeformat

markdown
## Bug-Fix: [Titel]

### Symptom
Was der User sieht/erlebt

### Wurzelursache
Die ECHTE Ursache im Code (mit Datei:Zeile)

### Fix
Was geändert wurde (mit Datei:Zeile)

### Geänderte Dateien
- datei.rs:123 - Beschreibung der Änderung

### Risiko-Bewertung
Welche anderen Features könnten betroffen sein

Verbotene Aussagen

  • "Bitte F5 drücken" / "Bitte die App neu starten"
  • "Bei mir funktioniert es" / "Der Code sieht korrekt aus"
  • "Das sollte jetzt funktionieren" (ohne Beweis)