diagnose

Guide developers through a six-phase debugging loop for complex software issues.

Updated Sep 30, 2024
One-click install
npx skills add https://github.com/phillip-hirsch/dotfiles --skill diagnose-phillip-hirsch
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: diagnose
Source: https://github.com/phillip-hirsch/dotfiles/tree/main/.agents/skills/diagnose
Command: npx skills add https://github.com/phillip-hirsch/dotfiles --skill diagnose-phillip-hirsch

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

The diagnose skill solves the problem of difficult bugs and performance regressions by guiding users through a disciplined diagnosis loop that ensures thorough investigation and efficient resolution.

Core Features & Use Cases

  • Disciplined Loop: Provides a systematic approach to debugging and performance troubleshooting with six clear phases: Build Feedback Loop, Reproduce, Hypothesise, Instrument, Fix + Regression Test, and Cleanup + Post-Mortem.
  • Dynamic Feedback Loop: Encourages creating a feedback loop with methods ranging from failing tests to replaying traces.
  • Minimisation and Hypothesising: Guides users to simplify issues and generate testable hypotheses.
  • Instrumentation: Offers suggestions on debugging tools and techniques like debug logs and repl inspection.
  • Regression Testing: Ensures the resolution of the problem through systematic testing before moving forward.

Quick Start

To use the diagnose skill, first create a reproducible loop for your bug. Then, iterate through the six-phase process to resolve your issue effectively.

Frequently Asked Questions about diagnose

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug complex software issues using a structured approach?

Debugging complex software issues requires a disciplined loop: build a reproducible feedback loop, minimize the bug, hypothesize, instrument the code, fix it, and write a regression test to ensure thorough investigation and efficient resolution.

What is the best way to create a feedback loop for performance analysis and bug tracking?

Creating a feedback loop for performance analysis involves establishing a reproducible test, ranging from a failing test case to replaying execution traces, to consistently trigger the bug and verify your fixes.

How do you minimize bugs and formulate testable hypotheses during software debugging?

Minimizing bugs involves simplifying the failing scenario to its core components, then generating specific, testable hypotheses about the root cause before instrumenting the code to verify those assumptions.

What debugging tools and instrumentation techniques help identify performance regressions?

Identifying performance regressions relies on instrumentation techniques like adding debug logs and using repl inspection to monitor code behavior and capture data within your dynamic feedback loop.

Why do I need regression testing after fixing a difficult software bug?

Regression testing after fixing a bug ensures the resolution actually addresses the root cause and prevents the same performance issue from reoccurring in future code changes before moving to the cleanup phase.