apple-notes
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.
Claude Code
$ npx -y skills add braxtonROSE4/zorro-agent --skill systematic-debugging --agent claude-code
Codex
$ npx skills add braxtonROSE4/zorro-agent --skill systematic-debugging -a codex -y
Cursor
$ npx skills add braxtonROSE4/zorro-agent --skill systematic-debugging -a cursor -y
Gemini CLI
$ npx skills add braxtonROSE4/zorro-agent --skill systematic-debugging -a gemini-cli -y
GitHub Copilot
$ npx skills add braxtonROSE4/zorro-agent --skill systematic-debugging -a github-copilot -y
OpenCode
$ npx skills add braxtonROSE4/zorro-agent --skill systematic-debugging -a opencode -y
Windsurf
$ npx skills add braxtonROSE4/zorro-agent --skill systematic-debugging -a windsurf -y
name: systematic-debugging
description: Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.
version: 1.1.0
author: Zorro Agent (adapted from obra/superpowers)
license: MIT
metadata:
zorro:
tags: [debugging, troubleshooting, problem-solving, root-cause, investigation]
related_skills: [test-driven-development, writing-plans, subagent-driven-development]Random fixes waste time and create new bugs. Quick patches mask underlying issues.
**Core principle:** ALWAYS find root cause before attempting fixes. Symptom fixes are failure.
**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:**
---
**Fix the root cause, not the symptom:**
# Run the specific regression test pytest tests/test_module.py::test_regression -
A self-evolving CLI agent. Most agents treat memory as an afterthought — a flat text file that grows until it's useless.
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Manage Apple Reminders via remindctl CLI (list, add, complete, delete).
Track Apple devices and AirTags via FindMy.app on macOS using AppleScript and screen capture.
Delegate coding tasks to Claude Code (Anthropic's CLI agent). Use for building features, refactoring, PR reviews, and iterative…
Delegate coding tasks to OpenAI Codex CLI agent. Use for building features, refactoring, PR reviews, and batch issue fixing.…
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.