| name | debugging-protocol |
| description | Structured debugging: hypothesis generation, validation, root cause analysis. For complex bugs, flaky tests, intermittent failures. |
Debugging Protocol
Rigorous framework: beyond ad-hoc troubleshooting to structured hypothesis → validation.
Workflow
1. Initialize
Copy template assets/debugging-session-template.md → docs/debugging/{issue}-{YYYY-MM-DD}-{HHmm}.md
2. Define Problem
- Symptom: observable behavior vs expected
- Scope: which components involved
3. Hypotheses
List distinct, testable hypotheses. Avoid vague guesses. Differentiate layers (frontend vs backend). Example: "race condition in UI state" vs "DB schema misconfiguration."
4. Validation Tasks
Per hypothesis:
- Objective: prove/disprove what
- Steps: precise, reproducible
- Code pattern: exact command/query/script
- Success criteria: what output confirms hypothesis
5. Execute & Document
Per task: status (✅ VALIDATED / ❌ FAILED / ⚠️ INCONCLUSIVE), findings (evidence), conclusion.
6. Root Cause
Synthesize: primary root cause, confidence level, proposed fixes.
Best Practices
- Be specific ("grep 'Error 500' in
/var/log/nginx/access.log" not "check logs")
- Isolate variables: one change at a time
- Validate assumptions first (config, versions)
- Preserve evidence (trace IDs, timestamps, repro scripts)
Active Debugging Techniques
Binary Search for Regressions
When a regression has no obvious cause:
- Identify last known good state (commit, deploy, config change)
git bisect start → git bisect bad (current) → git bisect good (known good)
- At each step: run failing test or reproduce symptom
- Result: exact commit that introduced the regression
- Root cause analysis on that commit's diff
Concurrency Debugging Checklist
For race conditions, deadlocks, and data races:
Memory Debugging Patterns
For leaks, corruption, and excessive allocation:
Postmortem Integration
After resolving a complex bug:
- Extract regression test — codify the fix as a test that would have caught it
- Update monitoring — add alert/log pattern to detect symptom earlier
- Handoff — for formal postmortem (P0-P2 incidents), hand off debugging session document to
@incident-responder
Full postmortem template and blameless review process: @.gemini/skills/incident-response/SKILL.md
Language Modules
Load from languages/ for language-specific tools, hypothesis categories, validation strategies:
| Module | Runtime |
|---|
| Rust | cargo, rustc, tokio |
| Frontend | Vue 3, React, browser, Vite |
Compliance
- Error Handling GEMINI.md § Error Handling Principles
- Logging — load
logging-and-observability-principles skill
- Testing Strategy GEMINI.md § Testing Strategy (regression test for fix)
- Incident Response @.gemini/skills/incident-response/SKILL.md (for postmortem handoff)