跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

phase-gated-debugging · 五阶段门控调试流程

用复现、隔离、根因确认、最小修复、验证五阶段约束调试过程,避免未定位根因就改代码,并含按缺陷类型的排查策略。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

某接口偶发返回错误,按协议先复现三次,再二分定位,确认根因后仅改相关代码并回归验证。

输出

预期交付:根因分析说明、最小修复方案、验证结果与后续动作。(编辑说明,非实际运行结果)

方法说明

---
name: phase-gated-debugging
description: "Use when debugging any bug. Enforces a 5-phase protocol where code edits are blocked until root cause is confirmed. Prevents premature fix attempts."
risk: safe
source: community
date_added: "2026-03-28"
---

# Phase-Gated Debugging

## Overview

AI coding agents see an error and immediately edit code. They guess at fixes, get it wrong, and spiral. This skill enforces a strict 5-phase protocol where you CANNOT edit source code until the root cause is identified and confirmed.

Based on [claude-debug](https://github.com/krabat-l/claude-debug) (full plugin with PreToolUse hook enforcement).

## When to Use
Use this skill when:

- a bug keeps getting "fixed" without resolving the underlying issue
- you need to slow an agent down and force disciplined debugging before code edits
- the failure is intermittent, a regression, performance-related, or otherwise hard to isolate
- you want an explicit user confirmation checkpoint before any fix is applied

## The Protocol

### Phase 1: REPRODUCE
Run the failing command/test. Capture the exact error. Run 2-3 times for consistency.
- Inspect the command and its side effects before reproduction; do not execute unknown code blindly
- Do NOT hypothesize
- Do NOT edit any files

### Phase 2: ISOLATE
Read code. Add diagnostic logging marked `// DEBUG`. Re-run with diagnostics. Binary search to narrow down.
- Only `// DEBUG` marked logging is allowed
- Do NOT fix the bug even if you see it

### Phase 3: ROOT CAUSE
Analyze WHY at the isolated location. Use "5 Whys" technique. Remove debug logging.

State: "This is my root cause analysis: [explanation]. Do you agree, or should I investigate further?"

**WAIT for user confirmation. Do NOT proceed without it.**

### Phase 4: FIX
Remove only the diagnostic lines added for this investigation; preserve pre-existing logging and user edits. Apply minimal change addressing confirmed root cause.
- Only edit files related to root cause
- Do NOT refactor unrelated code

### Phase 5: VERIFY
Run original failing test — must pass. Run related tests. For intermittent bugs, run 5+ times.
If verification fails: root cause was wrong, go back to Phase 2.

## Bug-Type Strategies

| Type | Technique |
|------|-----------|
| Crash/Panic | Stack trace backward — trace the bad value to its source |
| Wrong Output | Binary search — log midpoint, halve search space each iteration |
| Intermittent | Compare passing vs failing run logs — find ordering divergence |
| Regression | `git bisect` — find the offending commit |
| Performance | Timing at stage boundaries — find the bottleneck |

## Key Rules

1. NEVER edit source code in phases 1-3 (except `// DEBUG` in phase 2)
2. NEVER proceed past phase 3 without user confirmation
3. ALWAYS reproduce before investigating
4. ALWAYS verify after fixing

## Example

**User request:**

> a bug keeps getting "fixed" without resolving the underlying issue; diagnose it and return the concrete next action.

## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

## Execution boundaries

This Markdown guide does not bundle the upstream enforcement hook. Reproduction must use authorized fixtures and bounded runs; never repeat destructive or externally visible actions solely to meet a repetition count. User instructions about autonomy or stopping take precedence over the interview cadence. Failed verification calls for reassessing evidence, not assuming every failure proves the same root cause false.