agentleFS
iadr-deviadr-dev/colab/skills/systematic-debugging/SKILL.md

systematic-debugging

Skill2 starsChanged 7 months agoMITView on GitHub

Hypothesis-driven debugging loop. Forces explicit hypothesis formation before any fix attempt. Prevents guess-and-check debugging. Use when investigating or fixing an observed bug, failing test, runtime error, broken behavior, or performance regression.

190 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use chinese-code-review, chinese-commit-conventions and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Leodorareluctant259Skill

    chinese-code-review

    中文代码审查规范——在保持专业严谨的同时,用符合国内团队文化的方式给出有效反馈

    Also in 8 projects that use this

  • Leodorareluctant259Skill

    chinese-commit-conventions

    中文 Git 提交规范 — 适配国内团队的 commit message 规范和 changelog 自动化

    Also in 8 projects that use this

  • obraSkill

    diagnosing-superpowers

    Use when a superpowers session went wrong and your human partner wants to know why — repeated work, ignored plans, stumbles, poor results, a skill that didn't fire, "it took too long", "why is it so expensive", "what is it doing" — or wants to build a bug report for the superpowers maintainers, for the current session or a past one identified by id or path, on any harness.

    Also in 20 projects that use this

  • mjunaidcaSkill

    building-chatgpt-apps

    Guides creation of ChatGPT Apps with interactive widgets using OpenAI Apps SDK and MCP servers. Use when building ChatGPT custom apps with visual UI components, embedded widgets, or rich interactive experiences. Covers widget architecture, MCP server setup with FastMCP, response metadata, and Developer Mode configuration. NOT when building standard MCP servers without widgets (use building-mcp-servers skill instead).

    Also in 4 projects that use this

  • mjunaidcaSkill

    building-chat-interfaces

    Build AI chat interfaces with custom backends, authentication, and context injection. Use when integrating chat UI with AI agents, adding auth to chat, injecting user/page context, or implementing httpOnly cookie proxies. Covers ChatKitServer, useChatKit, and MCP auth patterns. NOT when building simple chatbots without persistence or custom agent integration.

    Also in 4 projects that use this

  • +2 more from Leodorareluctant259
  • +5 more from mjunaidca

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. 0 are common, 16 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 177 edited versions we read keep these.

  • 16

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never guess-and-check. Always hypothesize first, then design a test for the hypothesis.

    line 13
  2. Distinctive:

    Create a fast, deterministic, agent-runnable pass/fail signal for the bug.

    line 17
  3. Distinctive:

    Prefer, in order: failing test, curl/CLI script, browser script, replayed trace, throwaway harness, or stress loop for flakes.

    line 18
  4. Distinctive:

    If you cannot build a loop, stop and report what artifact or environment access is missing.

    line 21
  5. Distinctive:

    Run the loop and confirm it matches the user's bug.

    line 26
  6. Distinctive:

    Document: exact inputs → expected output → actual output

    line 27
  7. Distinctive:

    If the loop finds a different bug, fix the loop first

    line 29
  8. Distinctive:

    Write 3 hypotheses, ordered by likelihood (most likely first):

    line 33
  9. Very specific:

    Use targeted instrumentation only.

    line 51
  10. Distinctive:

    If confirmed: root cause found → go to Step 6.

    line 61
  11. Distinctive:

    If ruled out: move to H2. Repeat.

    line 62
  12. Distinctive:

    If all 3 ruled out: write 3 new hypotheses based on what you learned.

    line 63
  13. Distinctive:

    Write a regression test that captures the bug (RED)

    line 67
  14. Distinctive:

    Run regression test (GREEN)

    line 69
  15. Distinctive:

    Remove all tagged debug instrumentation

    line 71
  16. Distinctive:

    Run full test suite — no regressions

    line 72
  17. Distinctive:

    Always trace back to WHY, not just WHAT.

    line 79

“Common” is measured: kept by at least 6 in 10 of the 177 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Systematic Debugging

Never guess-and-check. Always hypothesize first, then design a test for the hypothesis.

Step 1: Build the Feedback Loop

Create a fast, deterministic, agent-runnable pass/fail signal for the bug. Prefer, in order: failing test, curl/CLI script, browser script, replayed trace, throwaway harness, or stress loop for flakes.

If you cannot build a loop, stop and report what artifact or environment access is missing. Do not patch from code reading alone.

Step 2: Reproduce

Run the loop and confirm it matches the user's bug.

  • Document: exact inputs → expected output → actual output
  • For flakes: raise the reproduction rate until the signal is useful
  • If the loop finds a different bug, fix the loop first

Step 3: Hypothesize

Write 3 hypotheses, ordered by likelihood (most likely first):

H1: IF [condition] THEN [expected] BUT we see [actual]
    Evidence for: [why this is likely]
    Evidence against: [why this might be wrong]

H2: [same format]
H3: [same format]

Step 4: Test Most Likely Hypothesis

Design a targeted test that confirms OR rules out H1. A good test is:

  • Targeted: tests H1 specifically, not the whole system
  • Binary: clearly confirms OR rules out
  • Fast: no full rebuild needed

Use targeted instrumentation only. Tag temporary logs with a unique prefix like [DEBUG-a4f2] so cleanup is mechanical.

Step 5: Record and Iterate

H1: [confirmed | ruled out]
Evidence: [what you observed]

If confirmed: root cause found → go to Step 6. If ruled out: move to H2. Repeat. If all 3 ruled out: write 3 new hypotheses based on what you learned.

Step 6: Fix with Confidence

  1. Write a regression test that captures the bug (RED)
  2. Fix the root cause (not the symptom)
  3. Run regression test (GREEN)
  4. Re-run the original feedback loop
  5. Remove all tagged debug instrumentation
  6. Run full test suite — no regressions

Common Mistake: Fixing the Symptom

Symptom: API returns 500 Root cause: DB connection pool exhausted Wrong fix: retry API call → symptom addressed, root cause remains

Always trace back to WHY, not just WHAT.

See references/debug-hypotheses.md for hypothesis templates by error type. See references/feedback-loops.md for ways to construct a reliable debug loop.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.