Communitygithub.com

Fehlerbehebung

Verwende diesen Skill, wenn ein Fehler auftritt: ein Test schlägt fehl, CI ist rot, eine API liefert ein falsches Ergebnis, ein Stacktrace erscheint oder der Benutzer sagt, dass etwas kaputt ist oder repariert werden muss.

Was ist Fehlerbehebung?

Der Skill „Fix Bug“ ist ein hochspezialisierter Debugging-Assistent für KI-Agenten, die in Software-Repositorys arbeiten. Er wird nur aktiviert, wenn ein echtes Fehlerszenario vorliegt – wie ein fehlgeschlagener Test, eine rote CI-Pipeline, ein unerwartetes API-Ergebnis oder ein Stacktrace –, und nicht für neue Features ohne Fehler, Dokumentation oder reine Typbearbeitung. Der Skill folgt einer strengen Prozedur: Zuerst wird die Fehlerursache durch das Lesen aller Fehlerinformationen identifiziert, dann werden mindestens drei Hypothesen auf dem heißen Pfad aufgestellt, gefolgt von einer instrumentierten Reproduktion mit temporären Logs. Nach dem Einkreisen der Ursache werden alle Logs gelöscht, ein reproduzierender Test geschrieben und erst dann die eigentliche Fehlerbehebung durchgeführt. Der Skill unterstützt die Plattformen von CopilotKit, überschreibt deren Debugging-Funktionen jedoch nicht. Eine optionale Überprüfung („prove-it“) wird nur auf Anfrage des Benutzers geladen und bestätigt, dass die Lösung im tatsächlichen Benutzerpfad funktioniert. Der Skill vermeidet Symptomkorrekturen, erzwungene Tests oder das Verstecken von Fehlern und stellt sicher, dass nur die Grundursache sowie identische Muster in der gleichen Datei oder benachbarten Modulen behoben werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AlemTuzlak/skills/tree/HEAD/skills/fix-bug

In Ihrer bevorzugten KI fragen

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

Dokumentation

Fehler beheben

Finde die Grundursache. Behandele kein Symptom. App oder Bibliothek ändert daran nichts.

Dieser Skill lädt prove-it erst nach einer grünen Reparatur und nur, wenn der Benutzer es auswählt oder bereits um einen Beweis gebeten hat. Er überschreibt keine CopilotKit-Debug-Skills.

Wann verwenden

Laden, wenn ein Fehler vorliegt: fehlgeschlagener Test, rote CI, unerwartetes Ergebnis, Stacktrace oder der Benutzer sagt, es sei kaputt / repariere das.

Überspringe Greenfield-Features ohne Fehler. Überspringe Dokumentation und reine Typbearbeitungen.

Harte Bedingungen

  1. Keine Reparatur, bis die Ursache aus Logs ermittelt ist. Kein „Versuch ein paar Dinge“.
  2. Mindestens drei Hypothesen auf dem heißen Pfad, an unterschiedlichen Stellen (unsere Funktion, Aufrufer, Abhängigkeit).
  3. Debug-Logs vor und nach jedem hypothetischen Pfad. Wenn eine Drittanbieter-Bibliothek auf dem Spiel einen Debug-Modus hat, schalte ihn für diese Jagd ein.
  4. Wenn die Ursache ermittelt ist: Lösche jedes Log, das dieser Skill hinzugefügt hat, und schalte das Drittanbieter-Debug aus. Schreibe dann den fehlschlagenden Test. Dann reparieren. Logs dürfen nicht in die Reparatur gelangen.
  5. Überspringe, lösche oder deaktiviere den fehlschlagenden Test nicht, um grün zu werden. Verschlucke den Fehler nicht (|| true, leerer catch). Erhöhe kein Timeout, um einen Wettlauf zu verstecken.
  6. Repariere die Grundursache sowie dasselbe Muster in dieser Datei / dem benachbarten Modul. Kein zusätzliches Refactoring.
  7. Lade prove-it nicht, es sei denn, der Benutzer wählt es aus oder hat bereits darum gebeten, diese Reparatur zu beweisen. Eine grüne Suite ist kein Beweis. Standardmäßig überspringen.

Heißer Pfad

Vom fehlschlagenden Test (oder der Benutzeraktion) den Stack hinunter bis zur Fehlerzeile, plus die Funktionen, die dort aufgerufen werden und die selbst aufgerufen werden.

Beginne dort. Eliminiere. Eingrenzen. Erweitere nur, wenn alle Hypothesen auf diesem Pfad tot sind.

Verfahren

Verfahren 1: Lesen

  1. Lies den vollständigen Fehler, Stack oder CI-Log. Jede Zeile.
  2. Lies den fehlschlagenden Testkörper, falls vorhanden.
  3. Lies den Diff, der ihn wahrscheinlich eingeführt hat, falls vorhanden.
  4. Bearbeite noch nicht.

Verfahren 2: Hypothesen

  1. Kartiere den heißen Pfad (Dateien und Funktionen).
  2. Schreibe mindestens drei Hypothesen: „Der Fehler wird durch X verursacht, weil Y.“ Sie müssen den heißen Pfad abdecken (nicht drei Schätzungen an einer Zeile).
  3. Wenn du keine drei schreiben kannst, hast du nicht genug gelesen. Kehre zu Verfahren 1 zurück.

Verfahren 3: Instrumentieren

  1. Überprüfe für jedes in einer Hypothese genannte Drittanbieter-Paket seine Dokumentation auf ein Debug-Flag oder eine Umgebungsvariable. Falls vorhanden, schalte es ein.
  2. Füge temporäre Logs vor und nach jedem hypothetischen Zweig hinzu (Eingabe rein, Ausgabe raus). Verwende den vorhandenen Logger des Repos oder console. Füge kein Logging-Paket hinzu.
  3. Reproduziere einmal. Lies die Logs. Streiche Hypothesen durch, die die Logs widerlegen.
  4. Wenn alle drei tot sind, erweitere den heißen Pfad um einen Schritt (den nächsten Aufrufer oder die nächste Abhängigkeit). Neue Hypothesen. Neue Logs. Eliminiere erneut.
  5. Wenn eine Ursache ermittelt ist: lösche alle Logs, die dieser Skill hinzugefügt hat. Schalte das Drittanbieter-Debug aus. Bestätige, dass der Arbeitsbaum keine dieser Logs mehr enthält.

Verfahren 4: Fehlschlagender Test, dann reparieren

  1. Schreibe einen Test, der wegen dieses Fehlers fehlschlägt (rot). Unabhängiger erwarteter Wert. Überspringe diesen Schritt nicht.
  2. Führe ihn aus. Er muss aus dem von dir genannten Grund fehlschlagen.
  3. Repariere nur die Grundursache. Repariere auch Kopien desselben Fehlers in dieser Datei / dem benachbarten Modul.
  4. Führe diesen Test aus (grün). Führe dann die vorhandenen Tests für dieses Paket / die Suite dieser Datei aus.
  5. Wenn ein neuer Fehler auftritt, behandle ihn als neuen Fehler. Beginne bei Verfahren 1. Liefere die erste Reparatur nicht über einem neuen Bruch aus.

Verfahren 5: Optional beweisen

  1. Nachdem die Suite für dieses Paket grün ist und die Logs verschwunden sind, frage einmal. Optionen: prove-it laden oder überspringen. Standardmäßig überspringen.
  2. Warte. Lade prove-it nicht, bis er es auswählt.
  3. Wenn er in diesem Gespräch bereits darum gebeten hat, diese Reparatur zu beweisen, überspringe die Frage. Lade prove-it.
  4. Bei überspringen: sage, dass die Reparatur nicht bewiesen ist als Benutzerpfad. Behandle die grüne Suite nicht als Beweis. Verfahren 6.
  5. Wenn er prove-it auswählt: lade prove-it und folge ihm. Dann Verfahren 6.
  6. Klicke nicht durch die App, rufe nicht die API auf und schreibe keinen Beweisbericht innerhalb dieses Skills. Diese Arbeit gehört zu prove-it.

Verfahren 6: Stopp

Nach dem Überspringen oder nachdem prove-it zurückgekehrt ist, anhalten.

Entscheidungsbaum

  • Fehler im Spiel → Verfahren 1 → 2 → 3 → 4 → 5 → 6.
  • Kann nicht reproduziert werden → anhalten. Sage nicht reproduziert. Frage nach Schritten. Rate nicht bei der Reparatur.
  • Logs widerlegen jede Hypothese auf dem heißen Pfad → erweitern, erneut Verfahren 2.
  • Test nach der Reparatur immer noch rot → falsche Ursache. Mache die Reparatur rückgängig. Zurück zu Verfahren 2.
  • Gleiches Muster in der nächsten Funktion → repariere es in derselben Änderung (Harte Bedingung 6).
  • Suite grün, noch keine Beweisfrage → Verfahren 5 (fragen, Standard ist überspringen).
  • Benutzer hat bereits darum gebeten, diese Reparatur zu beweisen → lade prove-it, dann Verfahren 6.

Rote Flaggen

SignalWas es bedeutetStattdessen tun
Eine Hypothese, dann ein PatchGeratenVerfahren 2. Drei auf dem heißen Pfad.
Reparatur ohne LogsKeine EliminierungVerfahren 3.
console.log im Diff immer noch vorhandenLogs nicht gelöschtVerfahren 3 Schritt 5. Dann der Test.
DEBUG=* von Drittanbieter noch eingeschaltetJagd-Flag ausgeliefertSchalte es zusammen mit den Logs aus.
.skip / fehlschlagenden Test löschenSymptomRepariere den Code.
`true` / leerer catch
Längeres TimeoutVersteckter WettlaufRepariere den Wettlauf.
Refactoring während der ReparaturVorbeifahrtNur Grundursache + gleiches Muster.
Testlauf im gesamten MonorepoUngefragtDieses Paket / diese Suite.
„Funktioniert auf meinem Rechner“Andere UmgebungGleicher Befehl / gleiche Bedingungen wie der Fehler.
prove-it ohne Frage ladenUngefragter BeweisVerfahren 5. Standardmäßig überspringen.
Mini-Browser-Durchlauf innerhalb dieses SkillsDuplikat von prove-itLade prove-it, nachdem sie es ausgewählt haben.
„Tests bestanden, also ist es bewiesen“Grüne Suite als Beweis behandeltVerfahren 5. Überspringen bedeutet nicht bewiesen.

Fehlerbehandlung

  • Nicht reproduziert: sage das. Liste auf, was du ausgeführt hast. Erfinde keine Reparatur.
  • Kein Debug-Modus für die Abhängigkeit: überspringe diesen Schritt. Protokolliere trotzdem unseren Code auf dem heißen Pfad.
  • Logs sind riesig: protokolliere nur die hypothetischen Zweige, nicht jede Zeile in der Datei.
  • Fehlschlagender Test kann noch nicht geschrieben werden (kein Rahmen): ein Ein-Datei-Skript, das den Fehler behauptet, ist der Ersatz. Immer noch rot, dann reparieren, dann grün.
  • Reparatur lässt einen anderen Test fehlschlagen: Verfahren 1 für diesen Fehler. Schiebe die erste Reparatur erst, wenn die Kaskade behoben ist.
  • prove-it fehlt auf diesem Agenten: sage das. Biete Überspringen an. Erfinde kein zweites Beweisverfahren hier.
  • Sie wählen prove-it, überspringen es dann darin: die Reparatur ist nicht bewiesen. Verfahren 6.

Dieser Skill platziert keine Helfer oder schreibt Dokumentation. Beweis ist nur Verfahren 5.

Individual skills in this repo

This repo contains 14 individual skills — each has its own dedicated page.

AlemTuzlak/skills

Use when the user wants to write a blog post about a feature, product change, PR, git diff, or any technical topic - accepts marketing briefs, PRs, git refs, codebase paths, or freeform descriptions as input

AlemTuzlak/skills

Use when the user wants to generate a changelog, release notes, or document what changed between versions, tags, or PRs

AlemTuzlak/skills

Use when writing, editing, or organizing documentation, when planning what docs a feature needs, and whenever planning or implementing a new feature or change in a repo (docs ship with the code). Also use when tempted to write docs without showing the discovered readers to the user, without asking for tone, or without loading simple-english and i-have-adhd. Triggers on "write docs for X", "document this feature", "add a guide", "update the docs", "reorganize the docs", "plan feature X", "implement X", or /docs.

AlemTuzlak/skills

Use when the user invokes /i-have-adhd, says they have ADHD, or asks for ADHD-friendly output. Also used as a required writing filter by the docs skill. Don't use for marketing copy or after the user says "stop adhd mode" or "normal mode".

AlemTuzlak/skills

Use when a settled change must be turned into an ordered stack of small blocks before anyone implements. Don't use for unsettled intent, typos, comments, formatting, docs-only work, or writing the implementation itself.

AlemTuzlak/skills

Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers

AlemTuzlak/skills

Use when the user wants to turn a raw talking-head / screen-share recording into a finished, edited, annotated video plus a full content package. Removes silences, flags mistakes for the user to cut, transcribes, adds transcript-synced overlays (code, on-screen code highlights, word highlights, lists, comparisons, diagrams, section labels, punch-in zooms), renders with original audio, then generates blog/socials/YouTube content. Triggers on "produce a video", "edit my video", "annotate my recording", "/produce-video".

AlemTuzlak/skills

Use when the user runs /prove-it or says prove it, prove the changes, show me in the browser, or asks to prove a UI or API change. Don't use only because the agent is about to say done, for types-only work, or for docs with no behavior to prove.

AlemTuzlak/skills

Use when the user wants to write, draft, or author an RFC (Request for Comments) / technical design doc for a feature, change, or architectural decision. Interactively interviews the user, grounds the proposal in the actual codebase, presents 2-3 concrete API/code-snippet approaches to choose from, then writes a review-ready RFC. Triggers on "write an RFC", "draft an RFC", "RFC for X", "design doc for X", or /rfc.

AlemTuzlak/skills

Use when the user wants to deeply learn a new topic from scratch. Runs a pre-interview (current knowledge, end-goal proficiency, depth, practice load, background, scope), researches online (articles, niche-influencer blogs, canonical docs, subtopic landscape), then produces a structured markdown course with mandatory visual diagrams, evidence-based learning-science features (retrieval practice, spaced callbacks, worked-example fading, concept ledger, jargon gate, analogy hygiene), and a self-contained interactive HTML mini-course. Triggers on /teach-me, "teach me about X", "I want to learn X", "deep dive on X", "create a course on X", "study X with me".

AlemTuzlak/skills

Use when the change intent is already settled and the agent must map what a behavior change touches before an implementation plan or any code. Use for new features, bug fixes, and refactors that move a boundary. Don't use for typos, comments, formatting, lockfile-only diffs, docs with no code, or while the user is still deciding what they want.

AlemTuzlak/skills

Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".

AlemTuzlak/skills

Use when the user wants to write a video script for a product demo, feature walkthrough, launch video, or social media video about a feature or product change

AlemTuzlak/skills

Use when the user wants YouTube metadata for a video — a click-worthy title, an SEO/above-the-fold description, tags, and timestamped chapters. Accepts a transcript (ideally timestamped SRT), a topic, a PR, or a freeform description. Used standalone and by /produce-video. Triggers on "youtube title", "youtube description", "youtube chapters", "youtube tags", "youtube metadata", "youtube-copy".

Verwandte Skills