one-pass-debug

SKILL.md

ONE-PASS DEBUG — Omniscient Zero-Iteration Debugging Protocol

"NEVER touch code until you're 1000% certain. Simulate first. Execute once. Done."

CONTRACT

Input: Bug report, error message, failing test, broken behavior, stack trace, or "it doesn't work" Output: Single surgical fix applied with zero guessing, zero iteration, zero rollback needed Success: Problem solved in ONE code change. No "let me try this" loops.


THE GOLDEN RULE

┌─────────────────────────────────────────────────────────────────┐
│  ⛔ NEVER TOUCH CODE UNTIL PRE-FLIGHT CHECKLIST = 100% GREEN   │
│                                                                 │
│  If ANY uncertainty exists → GATHER MORE EVIDENCE              │
│  If simulation reveals gaps → MAP THE UNKNOWN                  │
│  If root cause is assumed → PROVE IT FIRST                     │
│                                                                 │
│  CODE CHANGES ARE THE LAST STEP, NOT THE FIRST                 │
└─────────────────────────────────────────────────────────────────┘

PHASE 1: SCOPE LOCK (2 minutes max)

Goal: Define EXACT problem boundaries. No scope creep. No tangents.

Checklist

□ What EXACTLY is broken? (One sentence, no "and")
□ What is the EXPECTED behavior?
□ What is the ACTUAL behavior?
□ When did it LAST work? (Commit hash, date, or "never")
□ What CHANGED since it last worked?

Decision Tree

Can you answer ALL 5 questions with certainty?
├─ YES → Proceed to Phase 2
└─ NO → STOP. Get answers first. DO NOT PROCEED.

Output Template

SCOPE LOCK COMPLETE:
- Broken: [exact symptom]
- Expected: [exact behavior]  
- Actual: [exact behavior]
- Last worked: [timestamp/commit]
- Changed since: [specific changes]

PHASE 2: CONTEXT HARVEST (5-15 minutes)

Goal: Gather ALL relevant evidence. Leave no stone unturned.

Mandatory Collection

1. ERROR EVIDENCE
   □ Full stack trace (not truncated)
   □ Exact error message (copy-paste, not paraphrased)
   □ Error code if present
   □ Line numbers + file paths

2. STATE EVIDENCE  
   □ Input that triggers bug
   □ Environment (OS, runtime version, config)
   □ Relevant variable values at crash point
   □ Database/API state if applicable

3. CODE EVIDENCE
   □ The failing code block (with 20 lines context above/below)
   □ Related functions/methods it calls
   □ Recent changes (git diff or equivalent)
   □ Test that reproduces the bug

4. TIMELINE EVIDENCE
   □ When bug first appeared
   □ Frequency (always/sometimes/rare)
   □ Conditions that trigger vs don't trigger

Evidence Sufficiency Check

Can you answer these WITHOUT guessing?
├─ What exact line fails? → If NO, add logging/breakpoints
├─ What exact value causes failure? → If NO, inspect state
├─ What exact condition triggers it? → If NO, test variations
└─ ALL YES? → Proceed to Phase 3

PHASE 3: ROOT CAUSE DEDUCTION (The Core)

Goal: Eliminate ALL possibilities until ONE remains. Not guessing—PROVING.

The Deduction Matrix

┌────────────────────────────────────────────────────────────────┐
│ HYPOTHESIS → EVIDENCE → VERDICT                                │
├────────────────────────────────────────────────────────────────┤
│ H1: [theory]                                                   │
│   Evidence for: [what supports this]                           │
│   Evidence against: [what contradicts this]                    │
│   Verdict: ✓ PROVEN / ✗ ELIMINATED / ? NEEDS MORE DATA        │
├────────────────────────────────────────────────────────────────┤
│ H2: [theory]                                                   │
│   Evidence for: [...]                                          │
│   Evidence against: [...]                                      │
│   Verdict: ✓ / ✗ / ?                                          │
├────────────────────────────────────────────────────────────────┤
│ H3: [theory]                                                   │
│   ... continue until ONE remains proven                        │
└────────────────────────────────────────────────────────────────┘

Hypothesis Generation Rules

ALWAYS generate minimum 3 hypotheses:
1. The obvious cause (what it looks like)
2. The upstream cause (what feeds into it)
3. The environmental cause (what surrounds it)

COMMON ROOT CAUSE CATEGORIES:
- Data: null/undefined, wrong type, missing field, stale cache
- Logic: off-by-one, wrong operator, inverted condition, race condition
- State: mutation, async timing, lifecycle order, memory leak
- Config: wrong env var, missing dependency, version mismatch
- Integration: API contract change, network, timeout, auth

Elimination Protocol

For each hypothesis:
1. What would be TRUE if this hypothesis is correct?
2. What would be FALSE if this hypothesis is correct?
3. Check the evidence against both.
4. If evidence contradicts → ELIMINATE
5. If evidence supports → KEEP, gather more proof
6. Continue until ONE hypothesis has overwhelming evidence

Root Cause Certainty Gate

⛔ DO NOT PROCEED UNLESS:
□ Only ONE hypothesis remains
□ You can explain WHY all others are wrong
□ You can predict EXACTLY what the fix will change
□ You can describe the bug to a colleague in 30 seconds

PHASE 4: MENTAL SIMULATION (Critical)

Goal: Execute the fix IN YOUR MIND first. Find edge cases before touching code.

Simulation Protocol

1. TRACE FORWARD
   - Start at the bug
   - Apply your fix mentally
   - Trace execution path forward
   - What changes? What stays same?

2. TRACE BACKWARD  
   - Start at desired outcome
   - What must be true for fix to work?
   - What assumptions are you making?
   - Are those assumptions valid?

3. EDGE CASE SWEEP
   □ What if input is null/empty?
   □ What if input is maximum size?
   □ What if called multiple times?
   □ What if called out of order?
   □ What if network/IO fails?
   □ What if concurrent access?

4. BLAST RADIUS CHECK
   □ What other code calls this function?
   □ Will fix break any of those callers?
   □ Are there tests that will now fail?
   □ Are there dependent systems affected?

Simulation Output

MENTAL SIMULATION COMPLETE:
- Fix location: [file:line]
- Fix action: [exact change]
- Execution path verified: [YES/NO]
- Edge cases checked: [list]
- Blast radius: [none/contained/widespread]
- Side effects: [none/list them]
- Confidence: [must be 100% to proceed]

PHASE 5: PRE-FLIGHT CHECKLIST

⛔ MANDATORY GATE — Code changes BLOCKED until ALL green

┌─────────────────────────────────────────────────────────────────┐
│                    PRE-FLIGHT CHECKLIST                         │
├─────────────────────────────────────────────────────────────────┤
│ □ Scope is locked (no creep)                                   │
│ □ All evidence collected (no gaps)                             │
│ □ Root cause PROVEN (not assumed)                              │
│ □ Other hypotheses ELIMINATED (with evidence)                  │
│ □ Mental simulation passed (all paths traced)                  │
│ □ Edge cases checked (no surprises)                            │
│ □ Blast radius known (side effects mapped)                     │
│ □ Fix is MINIMAL (smallest possible change)                    │
│ □ Fix is SURGICAL (touches only what's needed)                 │
│ □ Rollback plan exists (if impossible scenario)                │
├─────────────────────────────────────────────────────────────────┤
│ ALL GREEN? → Execute Phase 6                                   │
│ ANY RED?   → Return to appropriate phase. DO NOT PROCEED.      │
└─────────────────────────────────────────────────────────────────┘

PHASE 6: SURGICAL EXECUTION

Goal: One precise cut. No exploratory surgery.

Execution Rules

1. Make the SMALLEST change that fixes the root cause
2. Change ONE thing at a time (even if fix has multiple parts)
3. Each change must be independently testable
4. Comment WHY if the fix is non-obvious
5. NO "while I'm here" improvements—fix ONLY the bug

Fix Template

// FIX: [ticket/issue number]
// ROOT CAUSE: [one sentence]
// CHANGE: [what you're changing and why]
[minimal code change here]

Post-Fix Validation

□ Bug reproduction test now passes
□ All existing tests still pass
□ Manual verification of expected behavior
□ Edge cases from simulation verified
□ No new warnings/errors introduced

PHASE 7: CLOSURE PROTOCOL

Goal: Ensure bug CANNOT return. Document for future.

Closure Checklist

□ Root cause documented (for future reference)
□ Regression test added (catches if bug returns)
□ Related code reviewed (same pattern elsewhere?)
□ Knowledge shared (team aware of pattern)

Closure Statement

BUG RESOLVED:
- Root cause: [one sentence]
- Fix applied: [file:line, change summary]
- Regression test: [test name/location]
- Pattern risk: [none/low/medium—where else might this exist?]

ANTI-PATTERNS (What Creates Loops)

❌ "Let me try this"

Changing code to see what happens = GUESSING → You will loop. Go back to Phase 3.

❌ "It might be..."

Uncertainty = insufficient evidence → Go back to Phase 2. Collect more.

❌ "I'll fix this and that"

Multiple changes = unknown cause of success → ONE change. ONE test. ONE conclusion.

❌ "The stack trace points here"

Stack trace shows WHERE, not WHY → Phase 3 finds WHY. Don't skip it.

❌ "Works on my machine"

Environment difference = missing evidence → Add environment to Phase 2 collection.

❌ "I've seen this before"

Pattern matching without proof = assumption → PROVE it's the same. Evidence required.


UNIVERSAL APPLICABILITY

This protocol works for ALL code because it targets the DEBUG PROCESS, not the language:

Domain Phase 2 Additions Phase 3 Focus
Frontend Console logs, network tab, DOM state State management, async timing, render cycles
Backend Server logs, DB queries, API traces Request lifecycle, auth flow, data transform
Mobile Device logs, crash reports, memory profile Lifecycle, threading, platform APIs
Database Query plans, locks, transaction logs Joins, indexes, constraints, isolation
Infra System logs, metrics, config diffs Resource limits, network, permissions
ML/AI Training logs, tensor shapes, gradients Data pipeline, model architecture, hyperparams

QUICK REFERENCE

PHASE 1: SCOPE LOCK      → What EXACTLY is broken?
PHASE 2: CONTEXT HARVEST → Gather ALL evidence
PHASE 3: ROOT CAUSE      → Prove ONE cause, eliminate rest
PHASE 4: SIMULATION      → Run fix mentally first
PHASE 5: PRE-FLIGHT      → ALL checks green?
PHASE 6: EXECUTION       → One surgical change
PHASE 7: CLOSURE         → Prevent return, document

THE PROMISE

If you complete all phases with discipline:

  • ZERO "let me try this" loops
  • ZERO "that didn't work, let me try something else"
  • ZERO debugging sessions lasting hours
  • ONE pass from bug to fix
  • 100% confidence before touching code

This is not debugging. This is SURGERY.


© 2025 APEX Business Systems Ltd. Edmonton, AB, Canada. Licensed for use within Claude AI skills framework. All rights reserved.

Weekly Installs
1
GitHub Stars
1
First Seen
Feb 3, 2026
Installed on
openclaw1
kimi-cli1
codex1
claude-code1
antigravity1
gemini-cli1