Guia investigacao estruturada de bugs para times N2/N3 antes de escalar para engenharia, com analise de causa raiz e evidencias completas
Guia times de suporte (N2/N3) numa investigacao profunda de bugs antes de escalar para engenharia. O objetivo e que o time de engenharia receba um pacote completo com: problema validado, causa raiz identificada, evidencias concretas, referencias da funcionalidade, comportamento esperado vs real, e passos de reproducao.
/bug-report {ID} {Titulo}
Exemplos:
/bug-report BUG-042 Pagamento duplicado no checkout mobile/bug-report BUG-105 Timeout intermitente na API de relatorios/bug-report BUG-200 Filtro de busca ignora acentos --from PROJ-789 (preenche a partir de ticket)/bug-report BUG-300 Login falha apos reset de senha --export (gera relatorio para copiar)Verificar no CLAUDE.md do projeto:
--export presente?
## Integracao Notion (bugs) ou database de bugs configurada?
Detectar integracao Jira (independente do modo):
Verificar se algum MCP de Jira esta configurado no ambiente:
jira_*, getJiraIssue, createJiraIssue, jira-create-issue, ou similares estao disponiveis## Integracao Jira existe no CLAUDE.md do projeto (pode conter: jira_project_key, jira_bug_issue_type, jira_board_id)--from fornecido)Se o usuario passou --from {referencia}, resolver ANTES de iniciar:
Identificar tipo de fonte:
getJiraIssuegetJiraIssuenotion-fetchgetConfluencePageExtrair informacoes:
Usar como base para pre-preencher o relatorio.
Registrar referencia: > Fonte: [{tipo}]({url})
Validar ID: verificar se ja existe relatorio com esse ID.
Classificar severidade:
Criar arquivo: .claude/bugs/{id-em-kebab-case}.md
Guiar investigacao (10 passos):
REGRA CRITICA — Extrair antes de perguntar:
Antes de fazer qualquer pergunta, analisar TODA a informacao que o investigador ja forneceu (no comando, na mensagem inicial, ou via --from). Extrair e pre-preencher tudo que for possivel:
Conduzir a investigacao fazendo uma pergunta de cada vez apenas para os passos que ainda tem lacuna. Esperar a resposta antes de avancar.
Se ja fornecido na mensagem inicial: confirmar o que foi extraido — "Entendi que o sintoma reportado e: '{sintoma extraido}'. Esta correto? Tem algo a mais?"
Se nao fornecido: Pergunte: "Qual o bug reportado? O que o usuario/cliente disse que esta acontecendo?"
Objetivo: capturar exatamente o que foi relatado, sem interpretar. Registrar as palavras do usuario/cliente.
Nao aceitar o sintoma como o bug real. O que o usuario reporta e frequentemente consequencia de algo mais profundo.
Aplicar teste de nivel: Pergunte: "Esse sintoma ('{sintoma}') e o que o usuario ve. Mas o que esta causando isso? E possivel que o bug real esteja em outra camada?"
Explorar:
Registrar:
sintoma visivel | bug intermediario | bug raizSe ja fornecido: confirmar — "Entendi que o esperado era '{X}' e o que acontece e '{Y}'. Correto?"
Se nao fornecido ou incompleto: Pergunte: "Qual o comportamento esperado (o que deveria acontecer)? E qual o comportamento real (o que acontece de fato)?"
Objetivo: documentar a discrepancia de forma clara e testavel.
Complementar com:
Se ja fornecido: confirmar — "O bug esta em '{modulo/tela}', no fluxo de '{fluxo}'. Correto? Tem dependencias que devo saber?"
Se nao fornecido: Pergunte: "Qual funcionalidade/modulo/tela e afetada? Que fluxo do usuario leva ate esse ponto?"
Objetivo: mapear exatamente ONDE o bug acontece no produto.
Coletar:
Se passos ja fornecidos: confirmar e complementar — "Voce mencionou os passos: {passos extraidos}. Falta algum detalhe? Pre-condicoes? Ambiente?"
Se nao fornecidos: Pergunte: "Como reproduzir o bug? Quais passos exatos? Em que ambiente?"
Objetivo: documentar passos de reproducao que engenharia pode seguir sem ambiguidade.
Estrutura obrigatoria:
sempre | intermitente (~X%) | uma vezSe nao conseguir reproduzir:
Se evidencias ja fornecidas (logs, screenshots, metricas na mensagem): confirmar — "Voce ja trouxe estas evidencias: {lista}. Tem mais alguma? Logs com timestamp, metricas de monitoramento, relatos de outros usuarios?"
Se nao fornecidas: Pergunte: "Que evidencias existem? Logs, screenshots, gravacoes, metricas, relatos de outros usuarios?"
Objetivo: compilar todas as evidencias disponiveis.
Tipos de evidencia:
Este passo e OBRIGATORIO e NAO pode ser pulado nem aceito com respostas rasas.
Para cada possivel causa, conduzir cadeia de "por que?" com minimo 3 niveis:
Pergunte: "Por que voce acha que esse bug acontece? Qual a causa mais provavel?"
Se o investigador responder de forma rasa ou tentar pular:
{INCOMPLETO — investigador nao conseguiu aprofundar, precisa de apoio de engenharia para diagnostico} e avisar: "Este report vai para engenharia com a analise de causa raiz incompleta. Isso pode aumentar o tempo de resolucao."Minimo aceitavel: 3 niveis de "por que?" com respostas substantivas (nao "nao sei" repetido).
Apos encadear:
Registrar cada cadeia:
### Hipotese 1 — {titulo}
1. Por que? → {resposta}
2. Por que? → {resposta}
3. Por que? → {resposta}
**Causa raiz provavel:** {resumo}
**Tipo:** codigo | dados | infra | config | processo
Sintetizar o impacto do bug:
Baseado na investigacao, recomendar:
Pergunte: "Com base no que investigamos, o que voce recomenda como solucao? Qual area do codigo/sistema provavelmente precisa de mudanca?"
Estrutura:
Validar que o relatorio esta completo para engenharia:
| Criterio | Status |
|---|---|
| Engenharia consegue reproduzir so com este relatorio? | sim/nao |
| Causa raiz tem evidencia (nao e so suposicao)? | sim/nao |
| Comportamento esperado tem referencia (spec/doc)? | sim/nao |
| Impacto esta quantificado (usuarios, negocio)? | sim/nao |
| Recomendacao aponta area especifica do sistema? | sim/nao |
Se algum "nao": voltar ao passo correspondente e completar.
Se o investigador nao tem a informacao:
{PENDENTE — precisa de acesso a logs/metricas/codigo}Registrar (se modo repo):
.claude/bugs/{id}.mdVerificacao pos-criacao (OBRIGATORIO):
| Secao | Obrigatorio |
|---|---|
| Sintoma reportado | sim |
| Validacao do sintoma | sim |
| Comportamento esperado vs real | sim |
| Contexto da funcionalidade | sim |
| Reproducao (passos) | sim |
| Evidencias | sim (>=1 evidencia concreta) |
| Porques encadeados | sim (>=3 niveis, >=1 hipotese) |
| Mapa de impacto | sim |
| Recomendacao para engenharia | sim |
| Calibracao de completude | sim (todos "sim" ou justificativa) |
Criar card no Jira (se integracao disponivel):
Se MCP Jira foi detectado no passo 0, oferecer criacao automatica:
Perguntar: "Integracao Jira detectada. Quer que eu crie o card de bug automaticamente no Jira?"
Se sim:
Montar o card com os dados da investigacao:
project: "{jira_project_key do CLAUDE.md ou perguntar ao usuario}"
issuetype: "{jira_bug_issue_type ou 'Bug'}"
summary: "[Bug][{Vertical/Sistema}] {titulo do bug}"
priority: "{mapear severidade: critico→Highest, alto→High, medio→Medium, baixo→Low}"
description: "{relatorio completo formatado — mesma estrutura do template de saida}"
labels: ["bug", "{tipo-causa-raiz: codigo|dados|infra|config|processo}"]
Campos adicionais (preencher se o projeto Jira tiver):
environment: ambiente onde o bug foi reproduzidocomponents: modulo/sistema afetado (do passo 4)affects_version: versao do sistema se identificadaAnexar evidencias (se a ferramenta suportar):
Vincular a issues relacionadas:
--from foi usado e a fonte era Jira, criar link "is caused by" ou "relates to"Registrar no relatorio local:
> Card Jira: [{key}]({url}) no header do relatorioInformar: "Card criado: {PROJ-XXX} — {url}. Severidade: {severidade}. Assignee nao definido — atribua ao engenheiro responsavel."
Se MCP Jira nao disponivel:
Informar: "Nenhuma integracao Jira detectada. Copie o relatorio para criar o card manualmente. O formato ja esta compativel com o template de bugs do Jira."
Se o usuario recusar criacao automatica:
Seguir normalmente — o relatorio local ja e suficiente.
Informar o investigador:
Mesma logica do modo repo, mas criar pagina no Notion:
notion-create-pages com conteudo completonotion-fetch