Pular para o conteúdo
Skillpedia
Testes48 mil · #2739

debugging-and-error-recovery

Faz seu agente investigar a causa raiz de problemas de forma organizada. Ajuda a corrigir falhas em testes, compilações ou comportamentos inesperados.

O que ela faz

Este guia ajuda a encontrar e corrigir erros em programas de computador de forma organizada. Ele ensina a parar, investigar a causa raiz e depois consertar, evitando adivinhar.

Quando usar

  • ✓Quando um teste falha após uma mudança.
  • ✓Quando o programa para de funcionar inesperadamente.
  • ✓Quando você não sabe por que algo deu errado.

Exemplo do que pedir para a IA

“Meu código está dando um erro estranho que não consigo entender, pode me ajudar a investigar?”

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/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/debugging-and-error-recovery/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/debugging-and-error-recovery/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele sugere seguir passos como reproduzir o erro, descobrir onde ele acontece, simplificar o problema e depois corrigir a causa real. Por fim, ele pede para adicionar um teste para evitar que o erro volte.

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 sickn33/agentic-awesome-skills --skill debugging-and-error-recovery

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/debugging-and-error-recovery/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.

Depuração e Recuperação de Erros

Visão Geral

Depuração sistemática com triagem estruturada. Quando algo quebra, pare de adicionar funcionalidades, preserve evidências e siga um processo estruturado para encontrar e corrigir a causa raiz. Adivinhar desperdiça tempo. A lista de verificação de triagem funciona para falhas de teste, erros de compilação, bugs em tempo de execução e incidentes de produção.

Quando Usar

  • Testes falham após uma alteração de código
  • A compilação quebra
  • O comportamento em tempo de execução não corresponde às expectativas
  • Um relatório de bug chega
  • Um erro aparece em logs ou no console
  • Algo funcionava antes e parou de funcionar

A Regra "Pare a Linha"

Quando algo inesperado acontecer:

1. STOP adding features or making changes
2. PRESERVE evidence (error output, logs, repro steps)
3. DIAGNOSE using the triage checklist
4. FIX the root cause
5. GUARD against recurrence
6. RESUME only after verification passes

Não avance além de um teste falho ou compilação quebrada para trabalhar na próxima funcionalidade. Erros se acumulam. Um bug na Etapa 3 que não é corrigido torna as Etapas 4-6 incorretas.

A Lista de Verificação de Triagem

Trabalhe nestas etapas em ordem. Não pule etapas.

Etapa 1: Reproduzir

Faça a falha acontecer de forma confiável. Se você não conseguir reproduzi-la, não poderá corrigi-la com confiança.

Can you reproduce the failure?
├── YES → Proceed to Step 2
└── NO
    ├── Gather more context (logs, environment details)
    ├── Try reproducing in a minimal environment
    └── If truly non-reproducible, document conditions and monitor

Quando um bug não é reproduzível:

Cannot reproduce on demand:
├── Timing-dependent?
│   ├── Add timestamps to logs around the suspected area
│   ├── Try with artificial delays (setTimeout, sleep) to widen race windows
│   └── Run under load or concurrency to increase collision probability
├── Environment-dependent?
│   ├── Compare Node/browser versions, OS, environment variables
│   ├── Check for differences in data (empty vs populated database)
│   └── Try reproducing in CI where the environment is clean
├── State-dependent?
│   ├── Check for leaked state between tests or requests
│   ├── Look for global variables, singletons, or shared caches
│   └── Run the failing scenario in isolation vs after other operations
└── Truly random?
    ├── Add defensive logging at the suspected location
    ├── Set up an alert for the specific error signature
    └── Document the conditions observed and revisit when it recurs

Para falhas de teste:

# Run the specific failing test
npm test -- --grep "test name"

# Run with verbose output
npm test -- --verbose

# Run in isolation (rules out test pollution)
npm test -- --testPathPattern="specific-file" --runInBand

Etapa 2: Localizar

Restrinja ONDE a falha acontece:

Which layer is failing?
├── UI/Frontend     → Check console, DOM, network tab
├── API/Backend     → Check server logs, request/response
├── Database        → Check queries, schema, data integrity
├── Build tooling   → Check config, dependencies, environment
├── External service → Check connectivity, API changes, rate limits
└── Test itself     → Check if the test is correct (false negative)

Use bisseção para bugs de regressão:

# Find which commit introduced the bug
git bisect start
git bisect bad                    # Current commit is broken
git bisect good <known-good-sha> # This commit worked
# Git will checkout midpoint commits; run your test at each
git bisect run npm test -- --grep "failing test"

Etapa 3: Reduzir

Crie o caso mínimo de falha:

  • Remova código/configuração não relacionados até que apenas o bug permaneça
  • Simplifique a entrada para o menor exemplo que aciona a falha
  • Reduza o teste ao mínimo necessário para reproduzir o problema

Uma reprodução mínima torna a causa raiz óbvia e evita corrigir sintomas em vez de causas.

Etapa 4: Corrigir a Causa Raiz

Corrija o problema subjacente, não o sintoma:

Symptom: "The user list shows duplicate entries"

Symptom fix (bad):
  → Deduplicate in the UI component: [...new Set(users)]

Root cause fix (good):
  → The API endpoint has a JOIN that produces duplicates
  → Fix the query, add a DISTINCT, or fix the data model

Pergunte: "Por que isso acontece?" até chegar à causa real, não apenas onde ela se manifesta.

Etapa 5: Proteger Contra Recorrência

Escreva um teste que capture essa falha específica:

// O bug: títulos de tarefas com caracteres especiais quebraram a busca
it('encontra tarefas com caracteres especiais no título', async () => {

…
Perguntas frequentes

O que é 'preservar evidências'?

Significa guardar informações importantes sobre o erro, como mensagens de erro, logs ou os passos exatos que levaram ao problema, antes de fazer qualquer outra alteração.

O que é 'bisection'?

É uma técnica para encontrar qual mudança específica causou um problema, comparando versões antigas e novas do código até achar o ponto exato onde o erro apareceu.

Por que não devo consertar apenas o sintoma?

Consertar o sintoma é como tampar um vazamento sem resolver a causa. O problema pode voltar ou causar outros erros. É melhor achar e corrigir a causa raiz para uma solução definitiva.

Detalhes

Descrição original do autor

Guides systematic root-cause debugging. Use when tests fail, builds break, behavior doesn't match expectations, or you encounter any unexpected error. Use when you need a systematic approach to finding and fixing the root cause rather than guessing.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas