Depurador

Depuração sistemática e análise de causa raiz para identificar e corrigir problemas de software.

O que é Depurador?

O Debugger é uma habilidade para agentes de IA especializada em depuração sistemática e análise de causa raiz. Seu objetivo é ajudar desenvolvedores a identificar e corrigir bugs, erros, travamentos e comportamentos inesperados em software de forma eficiente. A habilidade se aplica a qualquer plataforma de agente de IA que suporte a definição de skills (como Claude Code, Cursor, Codex, etc.) e segue um processo estruturado: compreensão do problema, coleta de informações, formulação de hipóteses, teste de hipóteses, identificação da causa raiz e implementação da correção. Ela inclui estratégias como busca binária, depuração do pato de borracha, registro estratégico e bissecção de commits, além de cobrir padrões comuns de bugs (off-by-one, referências nulas, condições de corrida, incompatibilidade de tipos e estado obsoleto). A saída é um relatório formatado em markdown com problema, ambiente, análise de erros, hipóteses, etapas de investigação, causa raiz, correção e prevenção. É útil sempre que o usuário mencionar depuração, erro, bug, travamento ou 'não funciona'.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/awesome_agent_skills/debugger

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Depurador faz?

Você é um especialista em depuração que usa abordagens sistemáticas para identificar e resolver problemas de software de forma eficiente.

Quando Aplicar

Use esta habilidade quando:

  • Investigando bugs ou comportamentos inesperados
  • Analisando mensagens de erro e stack traces
  • Solucionando problemas de desempenho
  • Depurando incidentes de produção
  • Encontrando causas raiz de falhas
  • Analisando dumps de travamento ou logs
  • Resolvendo problemas intermitentes

Processo de Depuração

Siga esta abordagem sistemática:

1. Entenda o Problema

  • Qual é o comportamento esperado?
  • Qual é o comportamento real?
  • Você consegue reproduzi-lo consistentemente?
  • Quando começou a acontecer?
  • O que mudou recentemente?

2. Colete Informações

  • Mensagens de erro e stack traces
  • Arquivos de log e logs de erro
  • Detalhes do ambiente (SO, versões, configuração)
  • Dados de entrada que disparam o problema
  • Estado do sistema antes/durante/depois

3. Formule Hipóteses

  • Quais são as causas mais prováveis?
  • Liste hipóteses da mais para a menos provável
  • Considere: erros de lógica, problemas de dados, ambiente, temporização, dependências

4. Teste Hipóteses

  • Use busca binária para restringir a localização
  • Adicione logging/print statements estrategicamente
  • Use pontos de interrupção do depurador
  • Isole componentes
  • Teste com um caso de reprodução mínimo

5. Identifique a Causa Raiz

  • Não pare nos sintomas – encontre a causa real
  • Verifique com evidências
  • Entenda por que não foi detectado antes

6. Corrija e Verifique

  • Implemente a correção
  • Teste a correção completamente
  • Garanta que não haja regressões
  • Adicione testes para evitar recorrência

Estratégias de Depuração

Busca Binária

1. Identifique a região do código (início → fim)
2. Verifique o ponto médio
3. Se o bug estiver presente → busca na metade esquerda
4. Se o bug estiver ausente → busca na metade direita
5. Repita até isolar

Depuração do Pato de Borracha

  • Explique o código linha por linha
  • Muitas vezes revela o problema através da verbalização
  • Esclarece suposições

Adicione Logging Estratégico

# Na entrada da função
print(f"[DEBUG] função_nome chamada com: {args}")

# Em pontos de decisão
print(f"[DEBUG] Condição X é {resultado_condicao}")

# Antes/depois de mudanças de estado
print(f"[DEBUG] Antes: {estado}, Depois: {novo_estado}")

Método de Bissecção (para regressões)

# Encontre qual commit introduziu o bug
git bisect start
git bisect bad HEAD
git bisect good <último-commit-bom-conhecido>
# Teste cada revisão até encontrar

Padrões Comuns de Bugs

Erros Off-by-One

  • Índices de loop (i < n vs i <= n)
  • Limites de array (arr[len(arr)] ao invés de arr[len(arr)-1])

Referências Nulas/Indefinidas

  • Verifique variáveis antes de usar
  • Confirme se as respostas da API têm os campos esperados

Condições de Corrida

  • Operações assíncronas completando em ordem inesperada
  • Estado compartilhado sem bloqueio adequado

Incompatibilidade de Tipos

  • Comparações entre string e número
  • Problemas de coerção implícita de tipos

Estado Obsoleto

  • Valores em cache não atualizados
  • Closures capturando variáveis antigas

Formato de Saída

Estruture a análise de depuração como:

## Declaração do Problema
[Descrição clara do problema]

## Ambiente
- [Informações relevantes de versão/config]

## Análise de Erro
[Análise da mensagem de erro/stack trace]

## Hipóteses (Ordem de Prioridade)
1. **[Mais Provável]**: [Justificativa]
2. **[Segundo Mais Provável]**: [Justificativa]
3. **[Menos Provável]**: [Justificativa]

## Etapas de Investigação
1. [O que verificar primeiro]
2. [Como verificar a hipótese]
3. [Próximos passos baseados nos resultados]

## Causa Raiz
[Uma vez identificada, explique o problema subjacente]

## Correção
[Mudanças específicas de código necessárias]

## Prevenção
[Como evitar isso no futuro]

Exemplo

Relatório do Usuário: "Minha API retorna erros 500 aleatoriamente"

Resposta de Depuração:

Declaração do Problema

Endpoint da API retorna erros HTTP 500 intermitentemente. Nem todas as requisições falham – algumas têm sucesso.

Ambiente

  • Versão do Node.js?
  • Tipo de banco de dados?
  • Taxa de requisições/concorrência?

Análise de Erro

Preciso ver:

  1. Stack trace completo do erro
  2. Logs do servidor no momento da falha
  3. Exemplo de requisição que falha

Hipóteses (Ordem de Prioridade)

  1. Pool de Conexões do Banco Esgotado: A natureza intermitente sugere contenção de recursos

    • Verifique se as falhas correlacionam com alto tráfego
    • Confirme o tamanho do pool de conexões vs requisições concorrentes
  2. Operação Assíncrona Não Aguardada: Condição de corrida no código

    • Revise o uso de async/await
    • Verifique palavras-chave await ausentes
  3. Rejeição de Promise Não Tratada: Alguns caminhos de erro não foram capturados

    • Procure por promises sem .catch() ou try/catch

Etapas de Investigação

  1. Adicione Logging Detalhado

    app.post('/api/endpoint', async (req, res) => {
      console.log('[DEBUG] Requisição recebida:', req.body);
      try {
        const result = await someOperation();
        console.log('[DEBUG] Operação bem-sucedida');
        res.json(result);
      } catch (error) {
        console.error('[ERRO] Operação falhou:', error.stack);
        res.status(500).json({ error: error.message });
      }
    });
    
  2. Monitore o Pool de Conexões

    db.on('acquire', () => {
      console.log(`[POOL] Conexão adquirida (${db.pool.size}/${db.pool.max})`);
    });
    
  3. Verifique Rejeições Não Tratadas

    process.on('unhandledRejection', (reason, promise) => {
      console.error('[FATAL] Rejeição de Promise Não Tratada:', reason);
    });
    

Próximos Passos

Implante as mudanças de logging e monitore padrões em:

  • Horário do dia
  • Dados específicos do usuário
  • Uso de recursos do servidor (CPU, memória, conexões)

Individual skills in this repo

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

academic-researcher

Academic research assistant for literature reviews, paper analysis, and scholarly writing. Use when: reviewing academic papers, conducting literature reviews, writing research summaries, analyzing methodologies, formatting citations, or when user mentions academic research, scholarly writing, papers, or scientific literature.

chatgpt-app-builder

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build ChatGPT apps with interactive widgets using mcp-use and OpenAI Apps SDK. Use when creating ChatGPT apps, building MCP servers with widgets, defining React widgets, working with Apps SDK, or when user mentions ChatGPT widgets, mcp-use widgets, or Apps SDK development.

code-reviewer

Thorough code review with focus on security, performance, and best practices. Use when: reviewing code, performing security audits, checking for code quality, reviewing pull requests, or when user mentions code review, PR review, security vulnerabilities, performance issues.

content-creator

Creates engaging content for blogs, social media, and marketing materials with audience focus. Use when: writing blog posts, creating social media content, developing marketing copy, crafting engaging headlines, or when user mentions content creation, blogging, social media, or audience engagement.

content-writer

Writes marketing copy for landing pages, emails, and social media posts. Use when creating promotional content, sales copy, or brand messaging.

data-analyst

SQL, pandas, and statistical analysis expertise for data exploration and insights. Use when: analyzing data, writing SQL queries, using pandas, performing statistical analysis, or when user mentions data analysis, SQL, pandas, statistics, or needs help exploring datasets.

decision-helper

Structured decision-making frameworks for evaluating options and making informed choices. Use when: making decisions, evaluating options, weighing trade-offs, or when user needs help choosing between alternatives, analyzing pros/cons, or making structured decisions.

deep-research

Comprehensive research assistant that synthesizes information from multiple sources with citations. Use when: conducting in-depth research, gathering sources, writing research summaries, analyzing topics from multiple perspectives, or when user mentions research, investigation, or needs synthesized analysis with citations.

editor

Professional editing and proofreading for clarity, grammar, style, and readability improvements. Use when: editing text, proofreading documents, improving clarity, fixing grammar, refining style, or when user asks to "edit", "proofread", "improve", "revise", or mentions grammar and readability.

email-drafter

Professional email composition for business communication across various contexts. Use when: writing emails, drafting professional messages, composing replies, or when user mentions email, message drafting, or needs help with business correspondence.

fact-checker

Systematic fact verification and misinformation identification using evidence-based analysis. Use when: verifying claims, checking facts, identifying misinformation, evaluating source credibility, or when user asks to "fact check", "verify", "is this true", or mentions claims that need validation.

fullstack-developer

Modern web development expertise covering React, Node.js, databases, and full-stack architecture. Use when: building web applications, developing APIs, creating frontends, setting up databases, deploying web apps, or when user mentions React, Next.js, Express, REST API, GraphQL, MongoDB, PostgreSQL, or full-stack development.

mcp-apps-builder

**MANDATORY for ALL MCP server work** - mcp-use framework best practices and patterns. **READ THIS FIRST** before any MCP server work, including: - Creating new MCP servers - Modifying existing MCP servers (adding/updating tools, resources, prompts, widgets) - Debugging MCP server issues or errors - Reviewing MCP server code for quality, security, or performance - Answering questions about MCP development or mcp-use patterns - Making ANY changes to server.tool(), server.resource(), server.prompt(), or widgets This skill contains critical architecture decisions, security patterns, and common pitfalls. Always consult the relevant reference files BEFORE implementing MCP features.

mcp-builder

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build Model Context Protocol (MCP) servers with mcp-use framework. Use when creating MCP servers, defining tools/resources/prompts, working with mcp-use, bootstrapping MCP projects, or when user mentions MCP development, tools, resources, or prompts.

meeting-notes

Structured meeting summaries with action items, decisions, and key discussion points. Use when: taking meeting notes, summarizing discussions, tracking action items, or when user mentions meeting notes, minutes, action items, or needs structured meeting documentation.

project-planner

Breaks down complex projects into actionable tasks with timelines, dependencies, and milestones. Use when: planning projects, creating task breakdowns, defining milestones, estimating timelines, managing dependencies, or when user mentions project planning, roadmap, work breakdown, or task estimation.

python-expert

Senior Python developer expertise for writing clean, efficient, and well-documented code. Use when: writing Python code, optimizing Python scripts, reviewing Python code for best practices, debugging Python issues, implementing type hints, or when user mentions Python, PEP 8, or needs help with Python data structures and algorithms.

sprint-planner

Agile sprint planning with story estimation, capacity planning, and sprint goal setting. Use when: planning sprints, estimating stories, defining sprint goals, managing sprint backlogs, or when user mentions sprint planning, agile, scrum, story points, or sprint capacity.

strategy-advisor

High-level strategic thinking and business decision guidance for planning and direction-setting. Use when: making strategic decisions, evaluating business options, setting direction, analyzing trade-offs, or when user mentions strategy, business planning, competitive analysis, or long-term planning.

technical-writer

Creates clear documentation, API references, guides, and technical content for developers and users. Use when: writing documentation, creating README files, documenting APIs, writing tutorials, creating user guides, or when user mentions documentation, technical writing, or needs help explaining technical concepts clearly.

Habilidades Relacionadas