thebeardedbearsas/claude-craft

debug-methodical

Debugging méthodique en 4 phases (reproduce → isolate → fix → verify).

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/thebeardedbearsas/claude-craft --skill debug-methodical

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Debug-Methodical — Debugging en 4 phases

Skill inspiré de 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-patternPourquoi c'est mal
Shotgun debuggingChanger 10 trucs au hasard, aucun apprentissage
Fix du symptômeBug revient sous une autre forme
Skip reproductionFix impossible à valider
Skip verification"ça devrait marcher" — preuve ou pas fini
Pas de test de régressionBug réapparaît dans 3 mois
Fix avec `catch (Exception)` génériqueMasque d'autres bugs
Commit mélangé fix + refactorgit 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


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

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills