diagnosing-bugs
Ciclo de diagnóstico para bugs difíceis e regressões de desempenho.
Skill by matheusdmlopes
Chalk Labs
Need help deploying diagnosing-bugs?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/matheusdmlopes-diagnosing-bugs
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/diagnosing-bugs
What's inside
- Skill name
diagnosing-bugs- Description
- Ciclo de diagnóstico para bugs difíceis e regressões de desempenho. Use quando o usuário disser "diagnostique"/"debugue isso", ou relatar algo quebrado/lançando erro/falhando/lento.
- License
- MIT
- Instructions
- 137 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Files (3)
- SKILL.md
- openai.yaml · agents/
- hitl-loop.template.sh · scripts/
SKILL.md (first lines)
# Diagnóstico de Bugs
Uma disciplina para bugs difíceis. Pule fases apenas quando explicitamente justificado.
Ao explorar a base de código, leia `CONTEXT.md` (se existir) para obter um modelo mental claro dos módulos relevantes e consulte os ADRs na área em que você estiver mexendo.
## Ocultação de dados sensíveis (Redact)
Esta skill faz você exibir comandos, saídas e artefatos capturados. **Oculte todos os segredos primeiro** — escreva `<REDACTED>` no lugar deles. Construa loops usando variáveis de ambiente, para que a credencial permaneça no ambiente em vez de aparecer no que você exibe. Artefatos capturados carregam cabeçalhos de autenticação: cite apenas as linhas que carregam o sinal relevante.
Se a saída ocultada não for suficiente para diagnosticar o bug, diga isso e pergunte ao usuário.
## Fase 1 — Construa um ciclo de feedback
**Esta é a essência da skill.** Todo o resto é mecânico. Se você tiver um sinal de passa/falha **apertado** para o bug — um que fique vermelho _neste_ bug específico — você encontrará a causa; bissecção, teste de hipóteses e instrumentação apenas o consomem. Se você não tiver um, nenhuma quantidade de tempo encarando o código salvará você.
Dedique um esforço desproporcional aqui. **Seja agressivo. Seja criativo. Recuse-se a desistir.**
### Maneiras de construir um — tente-as mais ou menos nesta ordem
1. **Teste que falha** em qualquer costura que alcance o bug — unitário, integração, e2e.
2. **Script curl / HTTP** contra um servidor de desenvolvimento em execução.
3. **Invocação via CLI** com uma entrada de fixture, comparando o diff da saída padrão (stdout) contra um snapshot sabidamente correto.
4. **Script de navegador headless** (Playwright / Puppeteer) — controla a interface, faz asserções no DOM/console/rede.
5. **Reproduzir um rastreamento capturado.** Salve uma requisição de rede / payload / log de eventos real no disco; reproduza-o pelo caminho do código de forma isolada.
6. **Harness descartável.** Suba um subconjunto mínimo do sistema (um serviço, dependências mockadas) que execute o caminho do código com o bug por meio de uma única chamada de função.
7. **Loop de propriedades / fuzzing.** Se o bug for "às vezes produz saída incorreta", execute 1000 entradas aleatórias e procure pelo modo de falha.
8. **Harness de bissecção.** Se o bug apareceu entre dois estados conhecidos (commit, conjunto de dados, versão), automatize "iniciar no estado X, checar, repetir" para que você possa rodar `git bisect run`.
9. **Loop diferencial.** Passe a mesma entrada pela versão antiga vs versão nova (ou duas configurações) e compare o diff das saídas.
10. **Script bash HITL (humano no circuito).** Último recurso. Se um humano precisar clicar, conduza-_o_ com `scripts/hitl-loop.template.sh` para que o ciclo ainda seja estruturado. A saída capturada alimenta você de volta.
Construa o ciclo de feedback certo e o bug estará 90% resolvido.
### Aperte o ciclo
Trate o ciclo como um produto. Assim que tiver _um_ ciclo, **aperte-o**:
- Posso torná-lo mais rápido? (Setup em cache, pular inicializações não relacionadas, restringir o escopo do teste.)
- Posso tornar o sinal mais nítido? (Fazer asserção no sintoma específico, não em "não travou".)
- Posso torná-lo mais determinístico? (Fixar o tempo, definir semente de RNG, isolar o sistema de arquivos, congelar a rede.)
Um ciclo instável de 30 segundos é quase tão ruim quanto nenhum ciclo; um determinístico de 2 segundos é apertado — um superpoder de depuração.
### Bugs não determinísticos
O objetivo não é uma reprodução limpa, mas uma **taxa de reprodução mais alta**. Repita o gatilho 100× em loop, paralelize, adicione estresse, reduza janelas de temporização, injete pausas (sleeps). Um bug instável que ocorre em 50% das vezes é depurável; 1% não é — continue aumentando a taxa até que ele seja depurável.
### Quando você genuinamente não conseguir construir um ciclo
Pare e diga isso explicitamente. Liste o que você tentou. Peça ao usuário: (a) acesso a qualquer ambiente que reproduza o problema, (b) um artefato capturado e com dados sensíveis ocultados (arquivo HAR, dump de log, core dump, gravação de tela com marcações de tempo) ou (c) permissão para adicionar instrumentação temporária de produção. **Não** avance para criar hipóteses sem um ciclo.
### Critério de conclusão — um ciclo apertado que fica vermelho
A Fase 1 está concluída quando o ciclo for **apertado** e **capaz de ficar vermelho**: você pode nomear **um único comando** — o caminho de um script, uma invocação de teste, um curl — que você **já executou pelo menos uma vez** (mostre a invocação e a saída dela, com dados sensíveis ocultados) e que seja:
- [ ] **Capaz de ficar vermelho** — ele executa o caminho de código real do bug e faz asserções sobre o **sintoma exato do usuário**, podendo ficar vermelho neste bug e verde assim que corrigido. Não apenas "executa sem dar erro" — ele precisa ser capaz de _capturar este bug específico_.
- [ ] **Determinístico** — mesmo veredito a cada execução (bugs instáveis: uma taxa alta e fixada de reprodução, conforme acima).
- [ ] **Rápido** — segundos, não minutos.
- [ ] **Executável por agente** — você pode executá-lo sem supervisão; humano no circuito apenas via `scripts/hitl-loop.template.sh`.
Se você se pegar lendo código para criar uma teoria antes que esse comando exista, **pare — pular direto para uma hipótese é a falha exata que esta skill previne.** Sem um comando capaz de ficar vermelho, sem Fase 2.
## Fase 2 — Reproduzir + minimizar
Execute o ciclo. Veja-o ficar vermelho — o bug aparece.
Confirme:
- [ ] O ciclo produz o modo de falha descrito pelo **usuário** — não uma falha diferente que por acaso esteja por perto. Bug errado = correção errada.
- [ ] A falha é reproduzível ao longo de várias execuções (ou, para bugs não determinísticos, reproduzível em uma taxa alta o suficiente para se depurar contra ela).
- [ ] Você capturou o sintoma exato (mensagem de erro, saída incorreta, tempo lento) para que as fases posteriores possam verificar se a correção realmente o soluciona.
### Minimizar
Assim que estiver vermelho, reduza a reprodução ao **menor cenário que ainda fica vermelho**. Corte entradas, chamadores, configuração, dados e etapas **um de cada vez**, reexecutando o ciclo após cada corte — mantenha apenas o que for indispensável para a falha.
Por que se dar ao trabalho: uma reprodução mínima reduz o espaço de hipóteses na Fase 3 (menos partes móveis sob suspeita) e se torna o teste de regressão limpo na Fase 5.
Concluído quando **cada elemento restante for indispensável** — remover qualquer um deles faz o ciclo ficar verde.
Não avance até ter reproduzido **e** minimizado.
## Fase 3 — Hipotetizar
Gere **3–5 hipóteses ranqueadas** antes de testar qualquer uma delas. Gerar uma única hipótese ancora a mente na primeira ideia plausível.
Cada hipótese deve ser **falseável**: declare a previsão que ela faz.
> Formato: "Se <X> for a causa, então <alterar Y> fará o bug desaparecer / <alterar Z> fará o bug piorar."
Se você não conseguir declarar a previsão, a hipótese é puro palpite — descarte-a ou refine-a.
**Mostre a lista ranqueada ao usuário antes de testar.** Muitas vezes ele possui conhecimento de domínio que reordena o ranking instantaneamente ("acabamos de publicar uma alteração no item 3"), ou conhece hipóteses que já descartou. Um ponto de verificação barato que economiza muito tempo. Não fique bloqueado nisso — prossiga com seu ranking se o usuário estiver ausente.
## Fase 4 — Instrumentar
Cada sonda deve mapear para uma previsão específica da Fase 3. **Altere uma variável por vez.**
Preferência de ferramentas:
1. **Depurador / inspeção no REPL** se o ambiente suportar. Um único breakpoint supera dez logs.
2. **Logs direcionados** nas divisas que diferenciam as hipóteses.
3. Nunca "logar tudo e dar grep".
**Marque cada log de depuração** com um prefixo exclusivo, por exemplo, `[DEBUG-a4f2]`. A limpeza ao final se torna um único `grep`. Logs não marcados sobrevivem; logs marcados morrem.
**Branch de desempenho.** Para regressões de desempenho, logs costumam ser enganosos. Em vez disso: estabeleça uma medição de linha de base (harness de temporização, `performance.now()`, profiler, plano de execução de consulta), depois faça a bissecção. Meça primeiro, corrija depois.
## Fase 5 — Corrigir + teste de regressão
Escreva o teste de regressão **antes da correção** — mas apenas se houver uma **costura correta** para ele.
Uma costura correta é aquela em que o teste exercita o **padrão real do bug** tal como ele ocorre no local de chamada. Se a única costura disponível for rasa demais (teste de um único chamador quando o bug precisa de múltiplos chamadores, teste unitário incapaz de reproduzir a cadeia que disparou o bug), um teste de regressão ali dará falsa confiança.
**Se não existir nenhuma costura correta, isso por si só já é o achado.** Anote. A arquitetura da base de código está impedindo que o bug seja blindado. Sinalize isso para a próxima fase.
Se existir uma costura correta:
1. Transforme a reprodução minimizada em um teste que falhe nessa costura.From matheusdmlopes/skills-ptbr, MIT.
More from matheusdmlopes/skills-ptbr
- 0.524score
code-review
matheusdmlopes
Revise as alterações desde um ponto fixo (commit, branch, tag ou merge-base) ao longo de dois eixos — Padrões (o código segue os padrões de código…
SkillBFreshness: BClaude Code +9 - 0.524score
wizard
matheusdmlopes
Gere um assistente interativo em bash que guia um humano pelas etapas que apenas ele pode executar.
SkillBFreshness: BClaude Code +9 - 0.524score
codebase-design
matheusdmlopes
Vocabulário compartilhado para projetar deep modules.
SkillBFreshness: BClaude Code +9 - 0.521score
improve-codebase-architecture
matheusdmlopes
Varra uma base de código em busca de oportunidades de aprofundamento, apresente-as como um relatório HTML visual e sabatine qualquer uma que você escolher.
SkillBFreshness: BClaude Code +9 - 0.521score
prototype
matheusdmlopes
Construa um protótipo descartável para responder a uma dúvida de design.
SkillBFreshness: BClaude Code +9 - 0.521score
triage
matheusdmlopes
Mova issues e PRs externos por uma máquina de estados de papéis de triagem — categorizar, verificar, sabatinar se necessário e escrever briefs prontos para…
SkillBFreshness: BClaude Code +9 - 0.521score
to-tickets
matheusdmlopes
Divida um plano, spec ou a conversa atual em um conjunto de tickets de bala traçante, cada um declarando suas arestas de bloqueio, publicados no tracker…
SkillBFreshness: BClaude Code +9 - 0.521score
setup-matt-pocock-skills
matheusdmlopes
Configure este repositório para as engineering skills — defina seu issue tracker, o vocabulário de labels de triagem e a estrutura de documentos de domínio.
SkillBFreshness: BClaude Code +9 - 0.521score
to-spec
matheusdmlopes
Transforme a conversa atual em uma spec e publique-a no issue tracker do projeto — sem entrevista, apenas a síntese do que já foi discutido.
SkillBFreshness: BClaude Code +9 - 0.521score
tdd
matheusdmlopes
Desenvolvimento orientado a testes (TDD).
SkillBFreshness: BClaude Code +9 - 0.521score
domain-modeling
matheusdmlopes
Construa e refine o modelo de domínio de um projeto.
SkillBFreshness: BClaude Code +9 - 0.521score
wayfinder
matheusdmlopes
Planeje uma grande fatia de trabalho — mais do que uma sessão de agente comporta — como um mapa compartilhado de decision tickets no seu issue tracker, e…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Aug 15, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/matheusdmlopes/skills-ptbr
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from matheusdmlopes
- 0.524score
codebase-design
matheusdmlopes
Vocabulário compartilhado para projetar deep modules.
SkillBFreshness: BClaude Code +9 - 0.524score
wizard
matheusdmlopes
Gere um assistente interativo em bash que guia um humano pelas etapas que apenas ele pode executar.
SkillBFreshness: BClaude Code +9 - 0.524score
code-review
matheusdmlopes
Revise as alterações desde um ponto fixo (commit, branch, tag ou merge-base) ao longo de dois eixos — Padrões (o código segue os padrões de código…
SkillBFreshness: BClaude Code +9 - 0.521score
improve-codebase-architecture
matheusdmlopes
Varra uma base de código em busca de oportunidades de aprofundamento, apresente-as como um relatório HTML visual e sabatine qualquer uma que você escolher.
SkillBFreshness: BClaude Code +9 - 0.521score
domain-modeling
matheusdmlopes
Construa e refine o modelo de domínio de um projeto.
SkillBFreshness: BClaude Code +9 - 0.521score
prototype
matheusdmlopes
Construa um protótipo descartável para responder a uma dúvida de design.
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get diagnosing-bugs running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
diagnosing-bugs skill. Agent Mart. https://agentmart.dev/skills/matheusdmlopes-diagnosing-bugs (last updated 2026-10-24)