diagnose
Loop disciplinado de diagnóstico para bugs difíceis e regressões de performance.
Skill by hcb2019
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/hcb2019-diagnose
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/diagnose
What's inside
- Skill name
diagnose- Description
- Loop disciplinado de diagnóstico para bugs difíceis e regressões de performance. Reproduzir → minimizar → hipotetizar → instrumentar → corrigir → teste de regressão. Use quando o usuário disser "diagnostica isso" / "debuga isso", reportar um bug, disser que algo está quebrado/falhando, ou descrever uma regressão de performance.
- License
- MIT
- Instructions
- 114 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- name: "diagnose" does not match folder "diagnostico"
Files (2)
- SKILL.md
- hitl-loop.template.sh · scripts/
SKILL.md (first lines)
# Diagnose
A discipline for hard bugs. Skip phases only with explicit justification.
When exploring the code, use the project's domain glossary to get a clear mental model of the relevant modules and consult ADRs in the area you're investigating.
## Phase 1 — Build a feedback loop
**This is the skill.** Everything else is mechanical. If you have a fast, deterministic, agent-executable pass/fail signal for the bug, you will find the cause — bisection, hypothesis testing, and instrumentation just consume that signal. If you don't have one, no amount of time staring at the code will save you.
Invest disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**
### Ways to build one — try roughly in this order
1. **Failing test** at the seam that reaches the bug — unit, integration, e2e.
2. **Curl / HTTP script** against a running dev server.
3. **CLI invocation** with a fixture input, diffing stdout against a known snapshot.
4. **Headless browser script** (Playwright / Puppeteer) — control the UI, assert on DOM/console/network.
5. **Replay a captured trace.** Save a real network request / payload / event log to disk; replay it through the code path in isolation.
6. **Throwaway harness.** Stand up a minimal subset of the system (one service, mocked dependencies) that exercises the bug path with a single function call.
7. **Property / fuzz loop.** If the bug is "sometimes the output is wrong," run 1000 random inputs and search for the failure mode.
8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate "start at state X, check, repeat" so you can run `git bisect run`.
9. **Differential loop.** Run the same input through old vs new version (or two configurations) and diff the outputs.
10. **Bash HITL (Human-in-the-Loop) script.** Last resort. If a human needs to click, guide them with `scripts/hitl-loop.template.sh` so the loop is still structured. Captured output is fed back to you.
Build the right feedback loop and the bug is 90% fixed.
### Iterate on the loop itself
Treat the loop as a product. After you have a loop, ask:
- Can I make it faster? (Cache setup, skip unrelated initialization, narrow test scope.)
- Can I make the signal sharper? (Assert on the specific symptom, not "didn't crash.")
- Can I make it more deterministic? (Fix time, seed RNG, isolate filesystem, freeze network.)
A flaky 30-second loop is barely better than no loop. A deterministic 2-second loop is a debugging superpower.
### Non-deterministic bugs
The goal is not a clean reproduction, but a **higher reproduction rate**. Run the trigger in a loop 100×, parallelize, add stress, shrink time windows, inject sleeps. A bug with 50% flakiness is debuggable; 1% is not — keep driving the rate up until it is debuggable.
### When you genuinely cannot build a loop
Stop and say so explicitly. List what you tried. Ask the user for: (a) access to the environment that reproduces the bug, (b) a captured artifact (HAR file, log dump, core dump, timestamped screen recording), or (c) permission to add temporary instrumentation in production. **Do not** proceed to hypotheses without a loop.
Do not advance to Phase 2 until you have a loop you believe in.
## Phase 2 — Reproduce
Run the loop. Observe the bug appear.
Confirm:
- [ ] The loop produces the failure mode the **user** described — not a different failure that happens to be nearby. Wrong bug = wrong fix.
- [ ] The failure is reproducible across multiple runs (or, for non-deterministic bugs, reproducible at a rate high enough to debug).
- [ ] You captured the exact symptom (error message, wrong output, slowness) so later phases can verify the fix actually resolves it.
Do not proceed until you reproduce the bug.
## Phase 3 — Hypothesize
Generate **3–5 ranked hypotheses** before testing any of them. Generating a single hypothesis anchors on the first plausible idea.
Each hypothesis must be **falsifiable**: state the prediction it makes.
> Format: "If <X> is the cause, then <changing Y> will make the bug disappear / <changing Z> will make it worse."
If you cannot state the prediction, the hypothesis is a guess — discard or refine.
**Show the ranked list to the user before testing.** They often have domain knowledge that re-ranks instantly ("we just deployed a change to #3"), or know hypotheses they've already ruled out. Cheap checkpoint, big time savings. Do not block — proceed with your ranking if the user is AFK.
## Phase 4 — Instrument
Each probe must map to a specific prediction from Phase 3. **Change one variable at a time.**
Tool preference:
1. **Debugger / REPL inspection** if the environment supports it. One breakpoint is worth ten logs.
2. **Targeted logs** at the boundaries that distinguish the hypotheses.
3. Never "log everything and grep."
**Tag every debug log** with a unique prefix, e.g., `[DEBUG-a4f2]`. Cleanup at the end becomes a simple grep. Untagged logs survive; tagged logs die.
**Performance branch.** For performance regressions, logs are usually the wrong approach. Instead: establish a baseline measurement (timing harness, `performance.now()`, profiler, query plan), then bisect. Measure first, fix later.
## Phase 5 — Fix + regression test
Write the regression test **before the fix** — but only if there is a **correct seam** for it.
A correct seam is one where the test exercises the **actual bug pattern** as it occurs at the call site. If the only available seam is too shallow (single-caller test when the bug needs multiple callers, unit test that doesn't replicate the chain that triggered the bug), a regression test there breeds false confidence.
**If no correct seam exists, that itself is the finding.** Note it. The code architecture is preventing the bug from being contained. Flag this for the next phase.
If a correct seam exists:
1. Turn the minimized reproduction into a failing test at that seam.
2. Watch it fail.
3. Apply the fix.
4. Watch it pass.
5. Re-run the Phase 1 feedback loop against the original (non-minimized) scenario.
## Phase 6 — Cleanup + post-mortem
Mandatory before declaring done:
- [ ] Original reproduction no longer reproduces (re-run the Phase 1 loop)
- [ ] Regression test passes (or seam absence is documented)
- [ ] All `[DEBUG-...]` instrumentation removed (`grep` for the prefix)
- [ ] Throwaway prototypes deleted (or moved to a clearly marked debug location)
- [ ] The hypothesis that proved correct is stated in the commit / PR message — so the next debugger learns
**Then ask: what would have prevented this bug?** If the answer involves architectural change (no adequate test seam, tangled callers, hidden coupling), hand off to the `/improve-codebase-architecture` skill with the specific details. Make the recommendation **after** the fix is in place, not before — you have more information now than when you started.From hcb2019/claude-code-skills, MIT.
More from hcb2019/claude-code-skills
- 0.495score
git-guardrails-claude-code
hcb2019
Configura hooks do Claude Code para bloquear comandos git perigosos (push, reset --hard, clean, branch -D, etc.) antes que sejam executados.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
humanizador-pt-br
hcb2019
Remove traços de escrita de IA de textos em português brasileiro, preservando a voz e expertise do autor.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
tdd
hcb2019
Desenvolvimento orientado a testes com loop red-green-refactor.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
setup-pre-commit
hcb2019
Configura hooks de pre-commit com Husky, lint-staged (Prettier), verificação de tipos e testes no repositório atual.
SkillCFreshness: C★ 1Claude Code +9 - 0.493score
prototype
hcb2019
Constrói um protótipo descartável para explorar um design antes de se comprometer com ele.
SkillCFreshness: C★ 1Claude Code +9 - 0.493score
improve-codebase-architecture
hcb2019
Encontra oportunidades de aprofundamento em um código, informado pela linguagem de domínio no CONTEXT.md e pelas decisões em docs/adr/.
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
write-a-skill
hcb2019
Crie novas skills de agente com estrutura adequada, disclosure progressivo e recursos empacotados.
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
grill-with-docs
hcb2019
Sessão de sabatina que desafia seu plano contra o modelo de domínio existente, afia a terminologia e atualiza a documentação (CONTEXT.md, ADRs) inline…
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
caveman
hcb2019
Modo de comunicação ultra-comprimido.
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
to-issues
hcb2019
Quebra um plano, spec ou PRD em issues independentes no tracker de issues do projeto usando fatias verticais tracer-bullet.
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
to-prd
hcb2019
Transforma o contexto atual da conversa em um PRD (Documento de Requisitos do Produto) e publica no tracker de issues do projeto.
SkillCFreshness: C★ 1Claude Code +9 - 0.490score
triage
hcb2019
Triagem de issues através de uma máquina de estados guiada por papéis de triagem.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 8, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/hcb2019/claude-code-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from hcb2019
- 0.495score
git-guardrails-claude-code
hcb2019
Configura hooks do Claude Code para bloquear comandos git perigosos (push, reset --hard, clean, branch -D, etc.) antes que sejam executados.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
setup-pre-commit
hcb2019
Configura hooks de pre-commit com Husky, lint-staged (Prettier), verificação de tipos e testes no repositório atual.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
tdd
hcb2019
Desenvolvimento orientado a testes com loop red-green-refactor.
SkillCFreshness: C★ 1Claude Code +9 - 0.494score
humanizador-pt-br
hcb2019
Remove traços de escrita de IA de textos em português brasileiro, preservando a voz e expertise do autor.
SkillCFreshness: C★ 1Claude Code +9 - 0.493score
improve-codebase-architecture
hcb2019
Encontra oportunidades de aprofundamento em um código, informado pela linguagem de domínio no CONTEXT.md e pelas decisões em docs/adr/.
SkillCFreshness: C★ 1Claude Code +9 - 0.493score
prototype
hcb2019
Constrói um protótipo descartável para explorar um design antes de se comprometer com ele.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
diagnose skill. Agent Mart. https://agentmart.dev/skills/hcb2019-diagnose (last updated 2026-10-24)