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
Mensagem pronta para colar
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-strategiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/developer-essentials/skills/debugging-strategies/SKILL.md -o SKILL.mdConteú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
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC