diagnosing-bugs
Use when something is broken, throwing, failing or slow, when the user says "diagnose" or "debug this", or when the user describes a visual, layout or…
Skill by jaqubowsky
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/jaqubowsky-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 and code. 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
- Use when something is broken, throwing, failing or slow, when the user says "diagnose" or "debug this", or when the user describes a visual, layout or responsiveness defect in their own words and in any language ("it's crooked", "it jumps", "it flashes", "it lags", "still wrong", "worse now"). Also use unprompted the moment a second attempted fix for the same symptom fails.
- License
- MIT
- Instructions
- 31 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (4)
- SKILL.md
- hard-bugs.md · references/
- find-polluter.sh · scripts/
- hitl-loop.template.sh · scripts/
SKILL.md (first lines)
# Diagnosing Bugs A fix is earned by evidence on the user's own symptom. The failure this skill prevents is reading code, forming a theory, and patching against it: such a fix cannot be falsified, which is why the second one fails too. **Two strikes and you are in this skill.** A second failed fix for the same symptom means the diagnosis was never grounded: stop patching, say so, and start at step 1. The failed patches stay in place until the loop is red; reverting them is a change like any other, proven by the same loop. A patch harmful on its own (a retry on a call not shown to be idempotent) is reverted as its own fix, with its own check. **Redact** every secret in what you show: `<REDACTED>` in its place, credentials read from env vars, and only the lines of a captured artifact that carry the signal. If the redacted output cannot settle the bug, say so and ask the user. ## Steps 1. **Symptom.** Write down the user's exact symptom: the error text, the wrong output, the timing, the screen and action. Done when a check can tell this symptom from a nearby different one. 2. **Loop.** Build the smallest command that goes red on that symptom: a failing test at the seam that reaches the bug, a curl, a CLI run against a fixture, a `playwright-cli` session (its skill loaded first). Run it and show the invocation and its output. While you build it, a hypothesis labelled as one may choose where to look; it is not yet a cause. Shrink the scenario only while a cut sharpens the next experiment or the regression test. Done when the loop is red on the user's symptom, gives the same verdict on a rerun, and runs unattended in seconds. A visual symptom with no browser automation, a flaky bug, a workspace a test run dirties, or no loop after the cheap options: [references/hard-bugs.md](references/hard-bugs.md). 3. **Cause.** Rank the hypotheses that make different predictions, each stated as "if X is the cause, changing Y turns the loop green". The nearest working example, a sibling route or the same call one commit ago, supplies them: each difference from the broken path is one. Run the experiment that splits the top ones, one variable at a time, debug logs tagged with one prefix such as `[DEBUG-a4f2]`. Done when one hypothesis predicted a result the others did not and the loop showed it. A cause outside your reach, such as a provider's internals, stays unknown even when a synthetic injection reproduces the app's handling of it; the diagnosis says which is which. 4. **Fix.** The regression test goes red first at the seam that reproduces the real pattern; when only a shallower seam exists, that gap is a finding to name. Fix where the bad value is produced, not where it surfaced, and change nothing else in the same commit. Done when the test is green and the step 2 loop, rerun on the original scenario, is green too. 5. **Close.** Grep the debug prefix out, delete throwaway harnesses, and write the diagnosis before or with the fix: symptom, cause, reproduction, what it rests on, what stays open. Name what would have prevented the bug when the answer is structural. Done when the repro no longer reproduces and the cause is recorded where the reviewer reads it. ## Stop Stop and tell the user, naming what you tried and the one input that would unblock you, when no loop goes red after the options in [references/hard-bugs.md](references/hard-bugs.md), when the next experiment needs access only they have, or when a third fix for this symptom fails. Three fixes deep, each working locally and breaking something else, is a wrong structure rather than a wrong hypothesis: name the coupling you keep hitting and put the structural change on the table before more code. ## Rationalizations Each row quotes a plan written without this document, on a bug two patches had already failed to fix. | Excuse | Reality | |---|---| | "The repro says one thing: state shared across requests. That is what the next 20 minutes go after." | A symptom's shape names a class of cause, not a cause. The loop goes red on the symptom first; the class is one hypothesis, ranked against its siblings. | | "The first hit in the submit-to-confirmation path is the suspect." | A grep locates the seam the loop drives. A suspect is a labelled hypothesis: it may pick the next experiment, never the fix. | | "Fix the cause the grep and the red test point at" at 17:52, with the freeze at 18:00 | A red test plus a theory is step 2. The fix waits for the experiment that splits the hypotheses, and the fix at 17:52 is patch three. |
From jaqubowsky/fleet, MIT.
More from jaqubowsky/fleet
- 0.641score
check-feature
jaqubowsky
Walk the criteria of a finished change through the running app in a browser, one screenshot each.
SkillAFreshness: A★ 13Claude Code +9 - 0.641score
mockup
jaqubowsky
Use when the order asks to see how a change, a screen, a flow or a component could look, work or behave before it is built.
SkillAFreshness: A★ 13Claude Code +9 - 0.638score
audit-harness
jaqubowsky
Review a coding session for friction and mistakes.
SkillAFreshness: A★ 13Claude Code +9 - 0.637score
orchestrating-agent-sessions
jaqubowsky
Fleet containers: put one up, steer it, read its task directory, land its branch, close it.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
implement
jaqubowsky
Building the slices of an analysis Plan into working code, one commit per slice.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
to-tickets
jaqubowsky
Break work down into tracker tickets.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
brain
jaqubowsky
Answer a question from the personal knowledge base (LLM wiki) at ~/my-knowledge-base.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
brain-dump
jaqubowsky
Capture a source into the second brain's inbox (raw/inbox/) for later ingestion.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
transcript
jaqubowsky
Use when a recording has to become text - a local audio or video file (mp3, m4a, wav, mp4, mov...), a YouTube or other online video link, a lecture, podcast…
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
babysit-pr
jaqubowsky
Answering an open pull request round after round.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
analyze-task
jaqubowsky
Turning a ticket, bug report or feature request into an evidence-backed analysis before any code is written.
SkillAFreshness: A★ 13Claude Code +9 - 0.635score
pr
jaqubowsky
Writing a pull request body.
SkillAFreshness: A★ 13Claude Code +9
Signals
- Stars
- 13
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 9, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/jaqubowsky/fleet
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jaqubowsky
- 0.641score
check-feature
jaqubowsky
Walk the criteria of a finished change through the running app in a browser, one screenshot each.
SkillAFreshness: A★ 13Claude Code +9 - 0.641score
mockup
jaqubowsky
Use when the order asks to see how a change, a screen, a flow or a component could look, work or behave before it is built.
SkillAFreshness: A★ 13Claude Code +9 - 0.638score
audit-harness
jaqubowsky
Review a coding session for friction and mistakes.
SkillAFreshness: A★ 13Claude Code +9 - 0.637score
orchestrating-agent-sessions
jaqubowsky
Fleet containers: put one up, steer it, read its task directory, land its branch, close it.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
babysit-pr
jaqubowsky
Answering an open pull request round after round.
SkillAFreshness: A★ 13Claude Code +9 - 0.636score
analyze-task
jaqubowsky
Turning a ticket, bug report or feature request into an evidence-backed analysis before any code is written.
SkillAFreshness: A★ 13Claude Code +9
Cite this page
diagnosing-bugs skill. Agent Mart. https://agentmart.dev/skills/jaqubowsky-diagnosing-bugs (last updated 2026-10-24)