Skip to main content

systematic-debugging

Structured root-cause debugging protocol. Use when encountering any bug, test failure, or unexpected behavior.

Ir para a instalação

Informações da origem

Repositório
XHXIAIEIN/orchestrator
Última atividade na origem
26 de abril de 2026 às 06:50
Idioma detectado do SKILL.md
inglês
Estrelas
0
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
3 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
systematic-debugging
description
Structured root-cause debugging protocol. Use when encountering any bug, test failure, or unexpected behavior.
origin
Orchestrator — earned through direct practice (see commit history)
source_version
2026-04-18
# Systematic Debugging Protocol ``` IRON LAW: NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST. ``` You MUST complete Phase 1 before proposing any fix. If you catch yourself wanting to "just try something" — STOP. That impulse is the problem this protocol exists to solve. ## Phase 1: Root Cause Investigation (MANDATORY GATE) Complete ALL of these before moving to Phase 2: 1. **Read the full error** — every line of the stack trace, every warning. Don't skim. 2. **Reproduce reliably** — run the failing command yourself. If it can't be reproduced, collect more data. Do NOT guess. 3. **Check recent changes** — `git diff`, `git log --oneline -10`, env changes. The bug is usually in what changed. 4. **Add diagnostic logging** — at every component boundary: input/output/state. Run once. Find where the chain breaks. 5. **Backward trace (5 levels)** — from the error, trace backwards through the call chain. At each level ask: "Is the input to this function correct?" Find where the bad value was introduced. **Gate check**: Can you state the root cause in one sentence? If not, you're not done with Phase 1. ## Phase 2: Pattern Analysis 1. Find a **working example** of similar functionality 2. **Line-by-line comparison** — list every difference between working and broken 3. Identify **hidden assumptions** and **implicit dependencies** ## Phase 3: Hypothesis & Testing 1. Write down **one hypothesis** — be specific ("X is null because Y doesn't initialize before Z") 2. Design the **smallest possible test** for that hypothesis 3. Run the test 4. If falsified → **new hypothesis from scratch**. Do NOT stack fixes. Do NOT combine "maybe this AND that". ## Phase 4: Implementation 1. **Write a failing test** that reproduces the bug 2. **Make the minimal fix** — change as few lines as possible 3. **Run all tests** — verify no regressions 4. If the fix exposes a new problem in a different location → see 3-Attempt Rule below ## 3-Attempt Architectural Escalation Track your fix attempts: - **Attempt 1** fails → OK, revise hypothesis, try again - **Attempt 2** fails → Slow down. Re-read Phase 1 notes. Is the root cause actually identified? - **Attempt 3** fails → **STOP IMMEDIATELY**. This is likely an architectural issue, not a local bug. On the third failure, output this report to the user: ``` ## Debugging Escalation Report **Bug**: [description] **Root cause hypothesis**: [your best guess] **3 attempts tried**: [what each attempt changed and why it failed] **Why this might be architectural**: [what pattern you're seeing] **Recommendation**: [what the user should consider] ``` Do NOT attempt a 4th fix. The user decides the next step. ## Rationalization Immunity These thoughts mean you're about to violate the protocol: | Thought | Reality | |---------|---------| | "I already know what's wrong" | Then Phase 1 should take 30 seconds. Do it anyway. | | "This is a simple typo" | Typos don't need 3 attempts. If it's simple, Phase 1 is fast. | | "Let me just try this quick fix" | Quick fixes that skip investigation cause 80% of debugging spirals. | | "The error message is clear enough" | Read the FULL trace. The obvious line is often not the root cause. | | "I don't need to reproduce it" | If you can't reproduce it, you can't verify the fix. | | "I'll add the test after fixing" | That's not TDD, that's confirmation bias. Test first. | | "This is taking too long, let me just..." | Impatience is the #1 cause of debugging spirals. Slow down. | | "The third attempt is different enough" | Three failures = wrong mental model. Stop and escalate. | ## Post-Fix Hardening After a successful fix, add ONE layer of defense: - A validation at the function entry point, OR - A type check where the bad value was introduced, OR - A test case that catches this category of bug Goal: make this class of bug structurally impossible, not just fixed in this instance.
Ver no GitHub