Pular para o conteúdo
Skillpedia
Código em geral41 mil · #4844

debugging-strategies

Faz seu agente encontrar e consertar erros em qualquer código. Ele usa técnicas para descobrir a causa raiz de problemas rapidamente.

O que ela faz

Esta ferramenta ajuda a encontrar e corrigir erros em códigos de computador de forma organizada. Ela ensina métodos para investigar problemas, em vez de adivinhar.

Quando usar

  • ✓Quando um programa não funciona como esperado.
  • ✓Para descobrir por que um programa está lento.
  • ✓Ao tentar entender um código que você não escreveu.

Exemplo do que pedir para a IA

“Meu programa está travando quando clico no botão 'Salvar'. Como posso descobrir o porquê?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/developer-essentials/skills/debugging-strategies/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/developer-essentials/skills/debugging-strategies/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta sugere seguir um processo científico: observar o problema, criar uma hipótese sobre a causa, testar essa hipótese e analisar os resultados. Ela também incentiva a não assumir nada e a explicar o problema para si mesmo ou para outros.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill debugging-strategies

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/developer-essentials/skills/debugging-strategies/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Estratégias de Debugging

Transforme o debugging de um processo frustrante de tentativa e erro em resolução de problemas sistemática com estratégias comprovadas, ferramentas poderosas e abordagens metódicas.

Quando Usar Esta Habilidade

  • Rastrear bugs difíceis de encontrar
  • Investigar problemas de desempenho
  • Entender bases de código desconhecidas
  • Fazer o debug de problemas em produção
  • Analisar dumps de falhas e traces de pilha (stack traces)
  • Monitorar o desempenho da aplicação (profiling)
  • Investigar vazamentos de memória
  • Fazer o debug de sistemas distribuídos

Princípios Fundamentais

1. O Método Científico

1. Observe: Qual é o comportamento real? 2. Hipotetize: O que pode estar causando isso? 3. Experimente: Teste sua hipótese 4. Analise: Isso provou ou refutou sua teoria? 5. Repita: Até encontrar a causa raiz

2. Mentalidade de Debugging

Não Assuma:

  • "Não pode ser X" - Sim, pode ser
  • "Eu não mudei Y" - Verifique de qualquer forma
  • "Funciona na minha máquina" - Descubra por quê

Faça:

  • Reproduza consistentemente
  • Isole o problema
  • Mantenha anotações detalhadas
  • Questione tudo
  • Faça pausas quando estiver travado

3. Debugging com o Pato de Borracha

Explique seu código e o problema em voz alta (para um pato de borracha, colega ou para si mesmo). Frequentemente revela o problema.

Processo Sistemático de Debugging

Fase 1: Reproduzir

## Reproduction Checklist

1. **Can you reproduce it?**
   - Always? Sometimes? Randomly?
   - Specific conditions needed?
   - Can others reproduce it?

2. **Create minimal reproduction**
   - Simplify to smallest example
   - Remove unrelated code
   - Isolate the problem

3. **Document steps**
   - Write down exact steps
   - Note environment details
   - Capture error messages

Fase 2: Coletar Informações

## Information Collection

1. **Error Messages**
   - Full stack trace
   - Error codes
   - Console/log output

2. **Environment**
   - OS version
   - Language/runtime version
   - Dependencies versions
   - Environment variables

3. **Recent Changes**
   - Git history
   - Deployment timeline
   - Configuration changes

4. **Scope**
   - Affects all users or specific ones?
   - All browsers or specific ones?
   - Production only or also dev?

Fase 3: Formular Hipótese

## Hypothesis Formation

Based on gathered info, ask:

1. **What changed?**
   - Recent code changes
   - Dependency updates
   - Infrastructure changes

2. **What's different?**
   - Working vs broken environment
   - Working vs broken user
   - Before vs after

3. **Where could this fail?**
   - Input validation
   - Business logic
   - Data layer
   - External services

Fase 4: Testar e Verificar

## Testing Strategies

1. **Binary Search**
   - Comment out half the code
   - Narrow down problematic section
   - Repeat until found

2. **Add Logging**
   - Strategic console.log/print
   - Track variable values
   - Trace execution flow

3. **Isolate Components**
   - Test each piece separately
   - Mock dependencies
   - Remove complexity

4. **Compare Working vs Broken**
   - Diff configurations
   - Diff environments
   - Diff data

Antes de selecionar ferramentas de debugging ou realizar análise de bisect, diferencial, trace ou memória, leia references/tools-and-techniques.md.

Padrões de Debugging por Tipo de Problema

Padrão 1: Bugs Intermitentes

## Strategies for Flaky Bugs

1. **Add extensive logging**
   - Log timing information
   - Log all state transitions
   - Log external interactions

2. **Look for race conditions**
   - Concurrent access to shared state
   - Async operations completing out of order
   - Missing synchronization

3. **Check timing dependencies**
   - setTimeout/setInterval
   - Promise resolution order
   - Animation frame timing

4. **Stress test**
   - Run many times
   - Vary timing
   - Simulate load

Padrão 2: Problemas de Desempenho

## Performance Debugging

1. **Profile first**
   - Don't optimize blindly
   - Measure before and after
   - Find bottlenecks

2. **Common culprits**
   - N+1 queries
   - Unnecessary re-renders
   - Large data processing
   - Synchronous I/O

3. **Tools**
   - Browser DevTools Performance tab
   - Lighthouse
   - Python: cProfile, line_profiler
   - Node: clinic.js, 0x

Padrão 3: Bugs em Produção

## Debugging em Produção

1. **Coletar evidências**
   - Rastreamento de erros (Sentry, Bugsnag)
   - Logs da aplicação
   - Relatos de usuários
   - Métricas/monitoramento

2. **Reproduzir localmente**
   - Usar dados de produção (anonimizados)
   - Combinar o ambiente
   - Seguir os passos exatos


…
Perguntas frequentes

O que é 'Rubber Duck Debugging'?

É uma técnica onde você explica seu código e o problema em voz alta, como se estivesse falando com um pato de borracha. Isso muitas vezes ajuda a clarear as ideias e encontrar a solução.

Como posso reproduzir um erro?

Tente repetir os passos que levaram ao erro. Anote exatamente o que você fez, em qual situação e se o erro acontece sempre ou só às vezes. Tente simplificar ao máximo para isolar o problema.

O que fazer se eu não conseguir encontrar o erro?

Faça uma pausa, revise suas anotações, tente explicar o problema para outra pessoa ou use a técnica do pato de borracha. Às vezes, verificar erros comuns como digitação, valores nulos ou caminhos de arquivo incorretos pode ajudar.

Detalhes

Descrição original do autor

Master systematic debugging techniques, profiling tools, and root cause analysis to efficiently track down bugs across any codebase or technology stack. Use when investigating bugs, performance issues, or unexpected behavior.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4844
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas