Tiefenanalyse (OBERSTE DIREKTIVE)
Du führst eine akribische Tiefenanalyse durch. Das Problem liegt IMMER im Quellcode.
Argument
$ARGUMENTS = Problembeschreibung ODER Dateipfad zum Analysieren
Verbotene Aussagen
Du darfst NIEMALS sagen:
- •"Bitte F5 drücken" / "Bitte die App neu starten"
- •"Bei mir funktioniert es" / "Der Code sieht korrekt aus"
- •"Das sollte jetzt funktionieren" (ohne Beweis)
- •Jede Form von "der User muss etwas tun damit es funktioniert"
Analyse-Protokoll
Phase 1: Kontext sammeln
- •Issue-Tracker prüfen: Lies
docs/issues/issue.md— gibt es verwandte Issues? - •Betroffene Dateien identifizieren: Welche Module sind involviert?
- •Letzte Änderungen prüfen:
git log --oneline -20undgit difffür relevante Dateien
Phase 2: Vollständiger Datenfluss-Trace (Tauri v2)
Verfolge den Datenfluss Schritt für Schritt durch alle Schichten:
code
1. Frontend (renderer/js/*.js) → Welche Funktion löst das Problem aus? → Welche window.api.*() Methode wird aufgerufen? → Was wird als Argument übergeben? 2. Bridge (renderer/js/tauri-bridge.js) → Ist die Methode korrekt gemappt (makeInvoke)? → Stimmt der Command-Name (snake_case)? → Werden Parameter korrekt weitergeleitet? 3. Tauri-Command (src-tauri/src/commands.rs) → Ist der #[tauri::command] korrekt definiert? → Sind Parameter-Typen korrekt? → Werden Parameter escaped (PowerShell-Injection)? → Werden Pfade validiert? → Ist der Command in lib.rs registriert? 4. PowerShell-Ausführung (src-tauri/src/ps.rs) → Wird run_ps() / run_ps_json() verwendet? → Hat der Aufruf einen Timeout? → Ist das PowerShell-Script korrekt (Syntax, UTF-8)? 5. Rückweg: ps.rs → commands.rs → Bridge → Frontend → Wird das Ergebnis korrekt als JSON zurückgegeben? → Kommt es im Frontend an? → Wird es korrekt dargestellt (escapeHtml)?
Phase 3: State-Management-Analyse
- •_loaded Flags: Werden sie bei Fehler korrekt zurückgesetzt?
- •Timer/Intervalle: Laufen setInterval-Timer weiter wenn sie nicht sollten?
- •Event-Listener: Werden sie bei jedem Aufruf neu registriert (Akkumulation)?
- •DOM-State: Stimmt der DOM-Zustand mit dem Daten-State überein?
Phase 4: Security-Analyse (bei sicherheitsrelevanten Problemen)
- •Command Injection: Wird User-Input in
format!()für PowerShell ohne.replace("'", "''")eingesetzt? - •XSS: Wird
innerHTMLmit unescapten Variablen verwendet? - •Path Traversal: Werden Pfade vom Frontend ohne Validierung an Dateioperationen weitergegeben?
- •CSP: Ist die Content Security Policy in
tauri.conf.jsonkonfiguriert (nichtnull)?
Phase 5: Plattform-Analyse (falls relevant)
- •Windows-spezifisch: Registry, PowerShell, Dateipfade (Backslashes)
- •Tauri-spezifisch: CSP in tauri.conf.json, Capabilities, withGlobalTauri
- •WebView-spezifisch: WebView2-Einschränkungen, JavaScript-Interop
Phase 6: CSS & UI-Analyse (falls visuelles Problem)
- •CSS-Variablen: Stimmen die Werte in
renderer/css/style.css? - •Theme-Konflikte: Dark/Light Theme korrekt implementiert?
- •WCAG-Kontrast: Text-auf-Hintergrund mindestens 4.5:1?
- •Akzentfarben:
--accentnur für Borders/Backgrounds, nie für Content-Text? - •display:none + Animationen: Verbrauchen versteckte Animationen Ressourcen?
Phase 7: PowerShell-Analyse (falls PS involviert)
- •Wird
crate::ps::run_ps()verwendet? - •Werden Parameter VOR dem
format!()escaped? - •Gibt es einen Timeout (tokio::time::timeout)?
- •Multi-Line: Werden Newlines beibehalten?
- •Werden PS-Prozesse sequenziell aufgerufen? (nie parallel)
Ausgabeformat
markdown
## Tiefenanalyse: [Problem-Titel] ### Symptom Was der User sieht/erlebt ### Datenfluss-Trace Schritt-für-Schritt Pfad durch den Code mit Datei:Zeile Referenzen ### Wurzelursache Die ECHTE Ursache im Code (mit Datei:Zeile) ### Betroffene Dateien - datei.rs:123 - Beschreibung - datei.js:456 - Beschreibung ### Vorgeschlagener Fix Konkreter Code-Vorschlag ### Verwandte Risiken Was könnte durch den Fix brechen?
Wichtige Hinweise
- •Visuelles Ergebnis ist die Wahrheit. Nicht der Code, nicht die Theorie.
- •Einmal melden reicht. Der User darf das gleiche Problem nie zweimal melden müssen.
- •Keine Zwischenlösungen. Der Code muss sich selbst korrigieren.
- •Beweislast liegt bei der KI. Nicht beim User.
- •Verwandte Skills: Nach der Analyse kann
/fix-bugfür die Umsetzung verwendet werden.