# Scientific Debugging

> 科学调试专家 - 观察(Observe) -> 假设(Hypothesize) -> 实验(Experiment) -> 修复(Fix)

- Skill: `majiayu000/scientific-debugging` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/scientific-debugging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/scientific-debugging/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/scientific-debugging

---


# Scientific Debugger Skill (v2.0)

> **Role**: 拒绝"猜测驱动开发"。像科学家一样思考，用实验数据定位根因。

---

## 核心协议 (The Protocol)

### 1. 观察 (Observe)
- **收集现场**: 用户报告了什么？错误堆栈是什么？
- **环境确认**: 本地服务器是否运行？
- **现象复现**: *必须* 使用 `browser_subagent` 复现问题 (Visual Proof)。

### 2. 假设 (Hypothesize)
基于观察，提出 1-3 个可能的根因假设：
- H1: DOM 事件未冒泡 (Event)
- H2: 状态更新被闭包捕获 (State)
- H3: 样式层叠导致的遮挡 (CSS)

### 3. 实验 (Experiment)
设计最小化实验验证假设：
- **Console Log**: 在关键路径打点。
- **Browser Interaction**: 模拟用户行为序列。
- **Code Inspection**: 检查 `view_code_item`.

### 4. 修复与验证 (Fix & Verify)
- **最小化修复**: 只改根因，不附带重构。
- **回归测试**: 再次运行 `browser_subagent` 确认修复且无副作用。

---

## 调试策略库

| 问题类型 | 推荐工具 | 重点检查 |
|----------|----------|----------|
| **UI 无响应/交互失效** | `browser_subagent` | `pointer-events`, `z-index`, `onClick` vs `onFocus` |
| **状态不同步** | `console.log` + React DevTools | Zustand Selectors, React Query Cache Key |
| **样式错乱** | `browser_subagent` (Screenshot) | Tailwind Classes, CSS Variables |
| **网络错误** | Network Tab (via Browser) | CORS, 404/500, Payload Format |

---

## 资源索引

| 资源文件 | 用途 |
|----------|------|
| [browser-test-guide.md](resources/browser-test-guide.md) | 浏览器测试通过指南 |
| [root-cause-patterns.md](resources/root-cause-patterns.md) | 常见根因模式库 |

---

## 强制要求

1.  **No Blind Fixes**: 禁止在未复现问题前修改代码。
2.  **Visual Evidence**: 对于 UI Bug，必须看截图证明。
3.  **Logs are Cheap**: 大胆加日志，但修好后记得删。

