Przejdź do treści
Biblioteka skilli
Programowanie · Analiza

systematic-debugging

/systematic-debugging

Znajduje przyczynę błędów metodą odtwarzania, izolowania, hipotez i weryfikacji, w tym z git bisect, i blokuje ją testem regresji.

Repozytorium
skillforge ↗
Licencja
MIT
Ostatnia zmiana repozytorium
09.11.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 09.11.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Znajduje przyczynę błędów metodą odtwarzania, izolowania, hipotez i weryfikacji, w tym z git bisect, i blokuje ją testem regresji.

Wyzwalacze z opisu

it works on my machine
Oryginalny opis (EN)

Finds the root cause of bugs with a disciplined reproduce, isolate, hypothesize, verify loop (including git bisect) instead of guess-and-patch, then locks the fix in with a regression test. Use when the user reports a bug, crash, failing test, flaky behavior, regression, or "it works on my machine".

Jak działa

  1. The loop
  2. Common culprits checklist
  3. Flaky tests
Sekcje z nagłówków SKILL.md, w oryginale · 63 linii, 515 słów
Podgląd SKILL.md
---
name: systematic-debugging
description: Finds the root cause of bugs with a disciplined reproduce, isolate, hypothesize, verify loop (including git bisect) instead of guess-and-patch, then locks the fix in with a regression test. Use when the user reports a bug, crash, failing test, flaky behavior, regression, or "it works on my machine".
---

# Systematic Debugging

**Rule zero:** do not change code until you can explain the bug. Patches applied to symptoms create new bugs.

## The loop

### 1. Reproduce
- Get the exact failing command, input, environment and the **full** error output (stack trace, logs, exit code).
- Turn it into a one-command reproduction: a failing test, a script, or a `curl`. Run it and watch it fail.
- Can't reproduce? Diff the environments: versions (`node -v`, `python -V`, lockfile), env vars, config, data, OS, time zone, locale, concurrency/load.

### 2. Minimize
- Shrink the input and the code path until removing anything else makes the bug disappear.
- Binary-search the problem space: comment out halves, feed half the data, disable half the middleware.

### 3. Locate in history (for regressions)
If it used to work, let git find the commit:
```bash
git bisect start
git bisect bad                 # current commit is broken
git bisect good <last-good-sha-or-tag>
git bisect run ./repro.sh      # script exits 0 = good, 1 = bad, 125 = skip
git bisect reset
```

### 4. Hypothesize and test
- Write down 2–3 candidate explanations ranked by likelihood.
- For each one, design an observation that would **disprove** it (a log line, a breakpoint, an assertion, a print of the actual value and type).
- Change **one variable at a time**. Record what you tried and what you saw.
- Read the error message literally and fully. Check the *first* error in the log, not the last.

### 5. Fix the root cause
- Ask "why?" until you reach a cause you can control (the 5 Whys). Example: *crash → null user → session expired → token TTL shorter than cache TTL → fix TTL alignment*, not *add a null check*.
- Search for the same pattern elsewhere: `grep -rn "<the buggy pattern>"`. Fix all instances or list them.

### 6. Prove it
- The reproduction from step 1 now passes. Commit it as a **regression test**.
- Run the full relevant test suite to catch collateral damage.
- Remove temporary logging and debug flags.

### 7. Report
```markdown
**Symptom:** <what the user saw>
**Root cause:** <the actual defect, with file:line>
**Why it happened:** <the chain of events>
**Fix:** <what changed and why it addresses the cause>
**Prevention:** <regression test added, lint rule, monitoring>
```

## Common culprits checklist
- Stale caches or build artifacts (`rm -rf node_modules/.cache dist`, rebuild).
- Wrong version actually running (check what is installed, not what's in the manifest).
- Async: un-awaited promise, missing `return`, race between two writers.
- Mutable shared state or default-mutable arguments.
- Time: time zones, DST, clock skew, `Date` month index starting at 0.
- Encoding: UTF-8 vs Latin-1, BOM, CRLF vs LF.
- Floating point comparison and rounding.
- Environment: missing env var silently defaulting to something.

## Flaky tests
Run the test in a loop to measure the failure rate (`for i in $(seq 50); do <cmd> || echo FAIL; done`). Look for ordering dependence (run in random order / isolation), shared fixtures, real time, real network, and unawaited async work.

Wersje

RepozytoriumWynikLicencja
Ta strona · meyshad/skillforge100MIT
magnus919/agent-skills100MIT
FrancoStino/opencode-skills-collection100MIT
foryourhealth111-pixel/Vibe-Skills100Apache-2.0
GanyuanRan/Aegis100MIT
rootcastleco/rei-skills100MIT
jkaloger/lazyspec100MIT
innei/ryugi100MIT
yusixian/anjian100MIT

Migawka bazy z 13.11.2026 · wersja paczki e30934a3e368 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100debug-detective
    Znajduje przyczyny błędów metodą odtworzenia, izolacji, hipotez, bisekcji i weryfikacji, zastępując zgadywanie systematycznym śledztwem opartym na dowodach, także przy regresjach i niestabilnych testach.
  • 100debugging-expert
    Stosuje metodyczną diagnozę błędów i analizę przyczyny źródłowej przy wyjątkach, crashach, błędach sporadycznych, regresjach, git bisect i wyścigach, by zastąpić zgadywanie poprawek.
  • 100debugging-workflow
    Znajduje przyczynę defektu przez hipotezy i bisekcję zamiast zgadywania, a potem naprawia go z testem regresji, także przy niestabilnych testach i incydentach produkcyjnych.
  • 100diagnose
    Szuka przyczyny defektu przez odtworzenie, minimalizację, testy hipotez i bisekcję, a potem naprawia go testem regresji.
  • 100fix
    Naprawia błąd metodą test-first: pisze padający test odtwarzający błąd, znajduje przyczynę źródłową, poprawia i dodaje test regresji.
  • 100hk-rca
    Prowadzi błąd przez odtworzenie, lokalizację, hipotezę, test, poprawkę i weryfikację, a na końcu podaje przyczynę źródłową w czacie.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.