Skip to content
Skills Library
Programming · Testing

debug-methodical

/debug-methodical

Debugging méthodique en 4 phases (reproduce → isolate → fix → verify). Use when investigating a bug, regression, flaky test, or unexpected behavior.

Licence
MIT
Last repository change
27.10.2026

Assessment and security

90/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content25 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
2
Deprecation

No signals detected. Repository changed on 27.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Debugging méthodique en 4 phases (reproduce → isolate → fix → verify). Use when investigating a bug, regression, flaky test, or unexpected behavior.

Original author description

Debugging méthodique en 4 phases (reproduce → isolate → fix → verify). Use when investigating a bug, regression, flaky test, or unexpected behavior.

How it works

  1. Les 4 phases (strictes, dans l'ordre)
  2. Anti-patterns critiques
  3. Techniques avancées
  4. Intégration Claude Craft
  5. Ressources
Original SKILL.md headings · 122 lines, 747 words
SKILL.md preview
---
name: debug-methodical
description: Debugging méthodique en 4 phases (reproduce → isolate → fix → verify). Use when investigating a bug, regression, flaky test, or unexpected behavior.
context: fork
---

# Debug-Methodical — Debugging en 4 phases

Skill inspiré de [obra/superpowers](https://github.com/obra/superpowers). **Objectif :** forcer une méthode rigoureuse au lieu de "try random fixes until it works".

**Règle d'or :** un bug sans reproduction stable est un bug mal compris. Ne JAMAIS fixer avant de reproduire.

## Les 4 phases (strictes, dans l'ordre)

### Phase 1 : REPRODUCE

**Objectif :** exécuter le bug à volonté, dans un environnement contrôlé.

**Checklist :**
- [ ] Étapes de reproduction documentées (Given/When/Then)
- [ ] Reproduction déterministe (>= 3 runs consécutifs identiques)
- [ ] Environnement isolé (local, container, test env)
- [ ] Inputs minimaux (le moins de données/steps possible)
- [ ] Version/commit exacts identifiés

**Sortie :** test automatisé qui **échoue** en exposant le bug (test de régression).

**Signal rouge :** "ça marche sur ma machine" / "parfois ça fail" → reproduction insuffisante, retour Phase 1.

### Phase 2 : ISOLATE

**Objectif :** identifier la **cause racine**, pas juste un symptôme.

**Techniques :**
- **Bisect** : `git bisect` pour trouver le commit fautif
- **Binary search** dans le code : commenter la moitié, puis itérer
- **Print-driven debugging** : logs aux frontières (entrée/sortie fonctions)
- **Debugger** : breakpoints, step-through, variable watch
- **Diff environnements** : que diffère-t-il entre "qui marche" et "qui casse" ?
- **Question the premise** : l'hypothèse initiale est-elle correcte ?

**Checklist :**
- [ ] Cause identifiée (ligne / condition / input exact)
- [ ] Explication du **pourquoi** (pas juste le **quoi**)
- [ ] Chaîne de causalité documentée (A cause B cause C)
- [ ] Autres manifestations potentielles du même bug identifiées

**Signal rouge :** "je pense que c'est X" sans preuve → retour isolate avec instrumentation.

### Phase 3 : FIX

**Objectif :** corriger la cause racine avec le minimum de changement.

**Checklist :**
- [ ] Fix au bon niveau (cause racine, pas symptôme)
- [ ] Changement minimal (KISS, voir rule 05)
- [ ] Pas d'effet de bord sur autres features
- [ ] Pas de fix "au cas où" / spéculatif (voir rule 23 Karpathy)
- [ ] Fix dans le bon layer (domain / infra / UI)

**Signaux rouges :**
- Fix qui ajoute un `try/catch` pour masquer l'erreur → traite le symptôme, pas la cause
- Fix qui nécessite de modifier les tests existants de façon suspecte
- Fix qui "marche" sans que tu saches pourquoi

### Phase 4 : VERIFY

**Objectif :** prouver que le fix marche ET n'a rien cassé d'autre.

**Checklist :**
- [ ] Test de régression (Phase 1) passe maintenant
- [ ] Suite de tests complète passe
- [ ] Reproduction manuelle ne montre plus le bug
- [ ] Scénarios adjacents testés (edge cases proches)
- [ ] Performance non dégradée
- [ ] Logs / monitoring vérifiés en staging si critique

**Règle de régression :** le test écrit en Phase 1 reste dans la codebase **pour toujours**. Un bug fixé ne doit JAMAIS réapparaître (voir `/qa:regression`).

## Anti-patterns critiques

| Anti-pattern | Pourquoi c'est mal |
|--------------|---------------------|
| **Shotgun debugging** | Changer 10 trucs au hasard, aucun apprentissage |
| **Fix du symptôme** | Bug revient sous une autre forme |
| **Skip reproduction** | Fix impossible à valider |
| **Skip verification** | "ça devrait marcher" — preuve ou pas fini |
| **Pas de test de régression** | Bug réapparaît dans 3 mois |
| **Fix avec `catch (Exception)` générique** | Masque d'autres bugs |
| **Commit mélangé fix + refactor** | `git bisect` impossible |

## Techniques avancées

### Pour bugs de concurrence
- Forcer les interleavings (sleep stratégique, stress test)
- Thread dumps / profiler
- Vérifier les invariants atomiquement

### Pour bugs d'intégration
- Snapshot du payload exact (HAR, logs)
- Reproduire avec `curl` ou client minimal
- Vérifier versions exactes des dépendances

### Pour flaky tests
- Run 100x pour mesurer le taux de flakiness
- Identifier la dépendance (temps, ordre, ressource partagée)
- Ne JAMAIS marquer un test `@Flaky` sans ticket de correction

## Intégration Claude Craft

- **`/qa:tdd`** — bug fix en mode TDD (test qui échoue d'abord)
- **`/qa:fix`** — correction automatisée des bugs QA
- **`/qa:regression`** — registre des tests de régression
- **Skill `atomic-tasks`** — découper le debug en phases atomiques
- **Rule 07 (testing)** — bug fix = test de régression obligatoire

## Ressources

- [obra/superpowers](https://github.com/obra/superpowers)
- Rule `.claude/rules/07-testing.md`
- Command `/qa:tdd`, `/qa:regression`

---

**Date de dernière mise à jour :** 2026-04-15
**Version :** 1.0.0

Versions

The database has no other skills named debug-methodical.

Database snapshot: 13.11.2026 · package version 504f5dbdf79c (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100debugging
    Systematic 5-step workflow (Reproduce → Isolate → Identify → Fix → Verify) for finding and fixing bugs in code. Use when the user reports a crash, error, stack trace, unexpected output, regression ("used to work"), flaky behavior, or performance issue — in JavaScript, Java, or…
  • 100whip-debug
    Systematic debugging loop — reproduce, analyze root cause, fix, then challenge with a fresh verification pass to distinguish fundamental fixes from workarounds. Use when debugging issues or when unexpected behavior needs a methodical approach.
  • 100whip-debug
    Systematic debugging loop — reproduce, analyze root cause, fix, then challenge with a fresh verification pass to distinguish fundamental fixes from workarounds. Use when debugging issues or when unexpected behavior needs a methodical approach.
  • 100debug
    Use when encountering a bug, test failure, unexpected behavior, or when the user asks for help debugging. Hypothesis-driven — reproduce, investigate, fix, verify. Standalone — works outside the plan/spec/build workflow.
  • 100debug
    Systematic debugging workflow: reproduce first, write failing test, then fix. Use when encountering bugs, unexplained errors, or unexpected behavior.
  • 100workflow-fix-and-ship
    One bug-fix lifecycle: triage, reproduce, debug, regression test, fix, live check, PR, optional deploy verify. Use when "fix this bug and close the ticket", "patch this and ship", or a named production error. Many reports → workflow-feedback-to-closure.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.