<< All versions

Skill v1.0.1

currentAutomated scan100/100
simhacker/moollm/debugging

6 files

──Details
PublishedOctober 14, 2026 at 02:30 PM
Content Hashsha256:3724d4e46a8eb247...
Git SHA90c8d510bae8
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 5.8 KB)
SKILL.md5.8 KBactive
SKILL.md · 245 lines · 5.8 KB

version: "1.0.1" name: debugging description: Systematic bug investigation with hypothesis tracking license: MIT tier: 2 allowed-tools:

  • read_file
  • write_file
  • list_dir
  • search_replace
  • run_terminal_cmd
  • grep

related: [adventure, sniffable-python, scratchpad, research-notebook, sister-script, session-log, self-repair, play-learn-lift, constructionism] tags: [moollm, development, investigation, hypothesis, testing] inputs: symptom: type: string required: true description: "What's the observable problem?" context: type: string required: false description: "When/where does it happen?" expected: type: string required: false description: "What should happen instead?" outputs:

  • DEBUG.yml
  • HYPOTHESES.md
  • TESTS.md
  • ROOT_CAUSE.md

templates:

  • DEBUG.yml.tmpl

🔧 Debugging Skill

"Hypothesize, test, learn, repeat."

Debug problems methodically. Track hypotheses, test systematically, converge on root causes.

Purpose

Debug problems methodically. Track hypotheses, document tests, record what you learn, and converge on root causes.

When to Use

  • Something isn't working as expected
  • Mysterious behavior needs explanation
  • Performance problems need diagnosis
  • "Works on my machine" situations

The Debugging Loop

OBSERVE → HYPOTHESIZE → TEST → LEARN → (repeat or) → FIX

Terminal States

  • FIX — Bug resolved
  • WONTFIX — Intentional behavior
  • DEFER — Not addressing now

Protocol

Observation Phase

Before guessing, gather facts:

yaml
observation:
symptom: "What's the observable problem?"
context: "When does it happen?"
expected: "What should happen instead?"
evidence:
- "Error message (exact text)"
- "Logs showing the issue"
- "Steps to reproduce"
constraints:
- "What we know for sure"
- "What we've already ruled out"

Hypothesis Tracking

yaml
hypothesis:
id: "hyp-001"
claim: "The bug is caused by X"
confidence: "high|medium|low"
if_true:
- "We would expect to see..."
- "Changing X should fix it"
test:
action: "What to try"
expected: "What we expect if hypothesis is correct"
result:
status: "confirmed|refuted|inconclusive"
observation: "What actually happened"
learned: "What this tells us"

Test Documentation

yaml
test:
id: "test-001"
hypothesis: "hyp-001"
action: "What we did"
before:
state: "System state before test"
after:
state: "System state after test"
result: "confirmed|refuted|inconclusive"
learned: "What we now know"

Schemas

Observation Schema

FieldRequiredPurpose
symptom✓Observable problem
expected✓What should happen
error_messageExact error text
logsRelevant log entries
steps_to_reproduceHow to trigger
constraintsKnown facts
ruled_outEliminated possibilities

Hypothesis Schema

FieldRequiredPurpose
id✓Unique identifier
claim✓What you think is wrong
test✓How to validate
confidencehigh/medium/low
if_trueExpected observations
resultTest outcome
learnedInsight gained

Test Schema

FieldRequiredPurpose
id✓Unique identifier
hypothesis✓Which hypothesis
action✓What was tried
result✓confirmed/refuted/inconclusive
beforeState before
afterState after
learnedInsight

Core Files

FilePurpose
DEBUG.ymlCurrent debugging session
HYPOTHESES.mdAll hypotheses and their status
TESTS.mdTest log
ROOT_CAUSE.mdFinal analysis

Commands

CommandAction
DEBUG [symptom]Start debugging session
OBSERVE [fact]Record observation
HYPOTHESIZE [claim]Propose hypothesis
TEST [action]Document test
LEARN [insight]Record what you learned
ROOT-CAUSE [explanation]Document root cause

The Scientific Method for Bugs

  1. Observe: What exactly is happening?
  2. Question: Why might this be happening?
  3. Hypothesize: Form testable explanation
  4. Predict: What would we see if hypothesis is true?
  5. Test: Try to confirm or refute
  6. Analyze: What did we learn?
  7. Iterate: New hypothesis or fix

Debugging Techniques

Binary Search

Narrow down where the bug lives. Use when the bug is somewhere in a large space.

yaml
technique: binary_search
steps:
- "Find a known good state"
- "Find a known bad state"
- "Check the middle"
- "Repeat until found"

Rubber Duck

Explain the problem in detail. Use when stuck and need fresh perspective. Write detailed observation in DEBUG.yml — forces you to articulate assumptions.

Minimal Reproduction

Simplify until bug is isolated. Use when complex system with unclear cause.

Git Bisect

Find the commit that introduced bug. Use when bug is a regression.

Print Debugging

Add logging to trace execution. Use when you need to understand flow.

Working Set

Always include in context:

  • DEBUG.yml
  • HYPOTHESES.md

Integration

DirectionSkillRelationship
←play-learn-liftDebugging IS learning
→session-logLog all debugging activities
→research-notebookComplex bugs need research
→honest-forgetCompress debugging wisdom
↔adventureDebugging IS adventure
↔roomDebug sessions are rooms
↔cardGit Goblin 🧌, Index Owl 🦉 companions
← v1.0.0All versions