debugging-protocol
Debugging Protocol
Overview
This skill provides a rigorous framework for debugging complex software issues. It moves beyond ad-hoc troubleshooting to a structured process of hypothesis generation and validation.
Use this skill to:
- Formalize a debugging session.
- Systematically eliminate potential root causes.
- Document findings for future reference or team communication.
Protocol Workflow
To run a structured debugging session, follow these steps:
1. Initialize the Session
Create a new debugging document using the provided template. This serves as the "source of truth" for the investigation.
Template location: assets/debugging-session-template.md
2. Define the Problem
Clearly articulate the System Context and Problem Statement.
- Symptom: What is the observable behavior? How does it differ from expected behavior?
- Scope: Which components are involved?
3. Formulate Hypotheses
List distinct, testable hypotheses.
- Avoid vague guesses.
- Differentiate between layers (e.g., "Frontend Hypothesis" vs "Backend Hypothesis").
- Example: "Race condition in UI state update" vs "Database schema misconfiguration".
4. Design Validation Tasks
For each hypothesis, design a specific validation task.
- Objective: What are you trying to prove or disprove?
- Steps: Precise, reproducible actions.
- Code Pattern: Provide the exact code or command to run (e.g., a specific SQL query, a Python script using the client library, a
curlcommand). - Success Criteria: Explicitly state what output confirms the hypothesis.
5. Execute and Document
Run the tasks in order. For each task, record:
- Status: ✅ VALIDATED, ❌ FAILED, or ⚠️ INCONCLUSIVE.
- Findings: Key observations and raw evidence (logs, screenshots).
- Conclusion: Does this support or refute the hypothesis?
6. Determine Root Cause
Synthesize the findings into a Root Cause Analysis.
- Identify the Primary Root Cause.
- Assign a Confidence Level.
- Propose specific fixes.
Best Practices
- Be Specific: Don't just say "check the logs." Say "grep for 'Error 500' in
/var/log/nginx/access.log". - Isolate Variables: Change one thing at a time.
- Validate Assumptions: Verify configuration and versions first (e.g., "Task 1: Validate Current Schema").
- Preserve Evidence: Keep the specific trace IDs, log timestamps, or reproduction scripts.
More from irahardianto/monarch
mobile-design
Create distinctive, production-grade mobile interfaces with high design quality using Flutter. Use this skill when the user asks to build mobile apps, screens, widgets, animations, or UI components. Generates creative, polished Flutter code that avoids generic standard widget aesthetics.
12knowledge-searching
Retrieves implementation knowledge, code examples, and documentation references. Use to inform technical decision-making when the user requires specific library usage, framework patterns, or syntax details. Trigger on requests to 'search docs', 'find code examples', or 'check implementation details'.
10opensource-readme-generator
Generate high-quality, "All-Star" README files for open-source repositories. Use this skill when a user asks to create, update, or improve a README.md file for their project.
9frontend-design
Generates distinctive, production-grade frontend interfaces and artifacts (React, Vue, HTML/CSS). Prioritizes bold aesthetics, unique typography, and motion to avoid generic designs. Use when building websites, landing pages, dashboards, posters, or when the user requests to style, beautify, or create visually striking UI.
8brand-identity-creator
Comprehensive guide for creating brand identity guidelines. Use this skill when a user wants to define, create, or document a brand's identity, including mission, vision, values, personality, and visual elements.
8sequential-thinking
Performs dynamic, reflective problem-solving through iterative thought chains. Use for complex planning requiring revision, branching, backtracking, or hypothesis verification. Ideal for multi-step analysis where context maintenance is required or the full scope isn't initially clear.
8