wshobson/strategies-de-debogage

Maîtrisez les techniques de débogage systématique, les outils de profilage et l'analyse des causes profondes pour traquer efficacement les bugs dans n'importe quelle base de code ou pile technologique. Utilisez cette compétence lors de l'investigation de bugs, de problèmes de performance ou de comportements inattendus.

Qu'est-ce que strategies-de-debogage ?

Cette compétence vous dote d'une approche structurée pour le débogage de logiciels, couvrant les techniques systématiques, les outils de profilage et l'analyse des causes racines. Elle est conçue pour vous aider à traquer efficacement les bugs, les problèmes de performance et les comportements inattendus dans tout type de codebase ou pile technologique. La compétence détaille des stratégies éprouvées comme la recherche binaire (bisection), les assertions ciblées, la différenciation de code, et l'utilisation d'outils de profilage (CPU, mémoire, I/O) pour isoler précisément l'origine d'un problème. Elle vous guide également dans la construction d'hypothèses, la lecture de traces de pile, et la confrontation systématique entre comportement observé et comportement attendu. Cette compétence est utile pour tout développeur ou ingénieur logiciel utilisant des agents d'IA comme Claude Code ou Cursor, et est compatible avec tout langage de programmation ou framework (Python, JavaScript, Java, etc.). Elle fonctionne en intégrant des méthodologies inspirées du débogage professionnel, vous permettant de réduire le temps passé à identifier des bugs complexes et d'augmenter la fiabilité de vos correctifs.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/skills/debugging-strategies

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait strategies-de-debogage ?

Maîtrisez les techniques de débogage systématique, les outils de profilage et l'analyse des causes profondes pour traquer efficacement les bugs dans n'importe quelle base de code ou pile technologique. Utilisez cette compétence lors de l'investigation de bugs, de problèmes de performance ou de comportements inattendus.

Techniques de débogage

  • Recherche binaire (bisection): Isolez rapidement le commit ou le changement de code responsable du bug en réduisant de moitié l'espace de recherche à chaque étape.
  • Assertions ciblées: Ajoutez des assertions temporaires ou des points d'arrêt pour valider des hypothèses sur l'état des variables et le flux d'exécution.
  • Différenciation de code: Comparez deux versions du code (avant/après le bug) pour identifier les différences pertinentes.
  • Traces de pile (stack traces): Analysez les exceptions et les traces d'appels pour remonter à la source du problème.
  • Relecture de code guidée: Parcourez le code suspect avec un regard neuf, en suivant le flux de données et les chemins d'exécution.

Outils de profilage

  • Profilage CPU: Utilisez des profileurs CPU (comme cProfile pour Python, perf pour Linux, ou les outils intégrés des IDE) pour identifier les goulots d'étranglement.
  • Profilage mémoire: Détectez les fuites mémoire et les allocations excessives avec des outils comme Valgrind, memory-profiler Python, ou les heap snapshots JavaScript.
  • Profilage I/O: Surveillez les opérations d'entrée/sortie disque, réseau et base de données avec strace, Wireshark, ou les métriques de requêtes.
  • Profilage base de données: Analysez les requêtes lentes avec EXPLAIN, les logs de requêtes et les outils de monitoring.

Analyse des causes profondes

  1. Reproduisez le bug: Obtenez un moyen fiable et rapide de reproduire le problème.
  2. Formulez des hypothèses: Émettez des hypothèses sur la cause probable (ex: "le format de date est incorrect").
  3. Testez chaque hypothèse: Validez ou infirmez chaque hypothèse avec un test minimal (assertion, log, ou expérience).
  4. Isolez la cause: Une fois l'hypothèse validée, isolez exactement la ligne ou le composant responsable.
  5. Corrigez et vérifiez: Appliquez le correctif et confirmez que le bug est résolu sans introduire de régression.

Workflow recommandé

  1. Comprendre le comportement attendu vs comportement observé
  2. Collecter des informations: logs, stack traces, métriques, captures réseau
  3. Établir une ligne de base: À quel moment le bug a-t-il été introduit ?
  4. Diviser pour régner: Isolez progressivement la zone problématique (modules, fonctions, lignes)
  5. Documenter les découvertes: Notez ce qui a été testé et exclu pour éviter de re-parcourir les mêmes pistes

Exemple d'utilisation

> D'après les logs, l'application plante lorsque l'utilisateur clique sur le bouton "Valider". 
> La trace de pile indique `TypeError: cannot read property 'length' of undefined` dans `validation.js:42`.
> User story: l'utilisateur doit entrer un nom pour valider.
> 
> Appliquons la technique de recherche binaire: testons avec un formulaire vide vs un formulaire rempli.
> Hypothèse: la variable `nom` est `undefined` quand le champ est vide.
> Ajout d'une assertion: `console.assert(nom !== undefined, "nom devrait être défini")`.
> Confirmation: l'assertion échoue. Cause: absence de valeur par défaut pour `nom` dans le gestionnaire d'événement.
> Correction: initialiser `nom` à une chaîne vide si non défini.

Références

Individual skills in this repo

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

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

Skills associés