api-and-interface-desi…
Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating…
4-phase root cause debugging: understand bugs before fixing.
Claude Code
$ npx -y skills add kevinnft/ai-agent-skills --skill systematic-debugging --agent claude-code
Codex
$ npx skills add kevinnft/ai-agent-skills --skill systematic-debugging -a codex -y
Cursor
$ npx skills add kevinnft/ai-agent-skills --skill systematic-debugging -a cursor -y
Gemini CLI
$ npx skills add kevinnft/ai-agent-skills --skill systematic-debugging -a gemini-cli -y
GitHub Copilot
$ npx skills add kevinnft/ai-agent-skills --skill systematic-debugging -a github-copilot -y
OpenCode
$ npx skills add kevinnft/ai-agent-skills --skill systematic-debugging -a opencode -y
Windsurf
$ npx skills add kevinnft/ai-agent-skills --skill systematic-debugging -a windsurf -y
name: dev-systematic-debugging
description: "4-phase root cause debugging: understand bugs before fixing."
version: 1.1.0
author: Hermes Agent (adapted from obra/superpowers)
license: MIT
metadata:
hermes:
tags: [debugging, troubleshooting, problem-solving, root-cause, investigation]
related_skills: [test-driven-development, writing-plans, subagent-driven-development]
origin: adapted
source_repo: obra/superpowers
source_url: https://github.com/obra/superpowers
source_license: MIT
language: enRandom fixes waste time and create new bugs. Quick patches mask underlying issues. This skill enforces a 4-phase approach: understand the bug before fixing it.
**Invalid Commands:** Check command exists before using (e.g., `hermes config get` doesn't exist, use `hermes config show` or grep config file directly)
**Missing Auth Checks:** After installing CLI tools (gh, glab), check authentication before using (e.g., `gh auth status`)
**Wrong Installation Paths:** When cloning repos with nested structure, copy inner content not outer directory
**Hardcoded Values:** Detect username/repo dynamically, don't hardcode specific user
**Variable Expansion:** Use `<< EOF` (no quotes) for variable expansion in heredocs, `<< 'EOF'` to prevent
**Error Messages:** Include troubleshooting hints (possible causes, manual steps), not just "failed"
**Violating the letter of this process is violating the spirit of debugging.**
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
If you haven't completed Phase 1, you cannot propose fixes.
Use for ANY technical issue:
**Use this ESPECIALLY when:**
**Don't skip when:**
You MUST complete each phase before proceeding to the next.
---
**BEFORE attempting ANY fix:**
**Action:** Use `read_file` on the relevant source files. Use `search_files` to find the error string in the codebase.
**Action:** Use the `terminal` tool to run the failing test or trigger the bug:
# Run specific failing test pytest tests/test_module.py::test_name -v # Run with verbose output pytest tests/test_module.py -v --tb=long
**Action:**
# Recent commits git log --oneline -10 # Uncommitted changes git diff # Changes in specific file git log -p --follow src/problematic_file.py | head -100
**WHEN system has multiple components (API → service → database, CI → build → deploy):**
**BEFORE proposing fixes, add diagnostic instrumentation:**
For EACH component boundary:
Run once to gather evidence showing WHERE it breaks. THEN analyze evidence to identify the failing component. THEN investigate that specific component.
**WHEN error is deep in the call stack:**
**Action:** Use `search_files` to trace references:
# Find where the function is called
search_files("function_name(", path="src/", file_glob="*.py")
# Find where the variable is set
search_files("variable_name\\s*=", path="src/", file_glob="*.py")**STOP:** Do not proceed to Phase 2 until you understand WHY it's happening.
---
**Find the pattern before fixing:**
**Action:** Use `search_files` to find comparable patterns:
search_files("similar_pattern", path="src/", file_glob="*.py")---
**Scientific method:**
191 attribution-first agent skills for Hermes Agent, Claude Code, Cursor — one installer, 28 categories, searchable catalog. See NOTICE for upstream attribution.
Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating…
Tests in real browsers. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM,…
Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate…
Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a…
Simplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder…
Optimizes agent context setup. Use when starting a new session, when agent output quality degrades, when switching between tasks,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.