Skip to main content

hunt

Bug 系统化排查。给定问题描述后先复现 → 定位 → 提假设 → 验证 → 再决定怎么修。任何 bug、回归、线上异常、"为什么不 work" 类问题开始前必须执行。

Source facts

Repository
jackwener/exam-system
Last source activity
May 11, 2026 at 10:46
Detected SKILL.md language
Chinese
Stars
14
Forks
5

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
hunt
description
Bug 系统化排查。给定问题描述后先复现 → 定位 → 提假设 → 验证 → 再决定怎么修。任何 bug、回归、线上异常、"为什么不 work" 类问题开始前必须执行。
# /hunt · Bug 系统化根因排查 ## 使用场景 - 报 bug:某个功能不 work / 行为不符合预期 - 测试失败:某个 test case 红了 - 回归:之前能跑的现在不能跑 - 线上异常:日志里出现错误堆栈 ## 目标 **找到根因再动手**——Agent 默认倾向于"看起来像 bug 就直接改",结果往往是 patch 表面、留下根因不改,下次再以另一种形态复现。 ## 必须步骤 ### 1. 复现 - 先把 bug **稳定复现**——给出最小复现路径(命令 / 步骤 / 输入) - 如果暂时不能复现:说明"目前无法稳定复现",**不允许**直接开始修 - 复现的同时把环境信息记下来:Node 版本、依赖版本、env 变量、相关日志 ### 2. 定位最近变更 - `git log --oneline -20` 看最近 commit - `git blame` 关注嫌疑代码的最近修改 - 找出**疑似引入 bug 的 commit / PR** ### 3. 提出假设 至少提 **2 个假设**。每个假设要回答: - 它如何解释观察到的现象? - 怎么**验证**它(验证方法必须可执行:跑命令 / 加 log / 改测试)? - 如果假设成立,**最小**修复方案是什么? ### 4. 逐个验证假设 按"成本低的假设先验"的顺序。每验证一个: - 通过 → 进入修复阶段 - 证伪 → 记录"为什么不是",转下一个 ### 5. 修复(仅在根因确认后) 修完后: - 跑一遍**原始复现路径**——bug 应消失 - 加 1 个测试用例**复现 + 修复证据**(防回归) - 在 `gotchas.md` 记一条"踩坑:xxx + 根因 yyy + 防回归方法 zzz" ## 禁止事项 - ❌ 未确认根因前**不允许**动代码 - ❌ 不允许用"反正这样改了就好了"作为根因 - ❌ 不允许删除 / 跳过让你不舒服的测试用例 - ❌ 不允许用 `--no-verify` 绕过 pre-commit 检查 - ❌ 不允许把"workaround"包装成"修复"(如必须 workaround,明确标注 `// TODO: workaround for X`) ## 输出格式 ```markdown ## 现象 - 期望:... - 实际:... - 复现路径:... ## 最近变更 - 嫌疑 commit:abc1234(PR #N) - 修改了:xxx ## 假设 ### H1:... - 为何成立:... - 验证:跑 `xxx` - 修复方向:... ### H2:... (同上) ## 验证结果 - H1:证伪。理由:... - H2:成立。证据:... ## 根因 (一两句话) ## 修复 - 改动:... - 防回归:新增测试 `xxx.test.ts`,确保未来同类 bug 不再出现 ## 验证 - 命令:`pnpm test`,全过 ✓ - 手测:原始复现路径不再触发 ``` ## 与其他 Skill 的关系 - 修复方案确定后用 [`/small-diff`](../small-diff/SKILL.md) 控制改动范围 - 完成后用 [`/check`](../check/SKILL.md) 审查 diff 是否引入新问题 - 新发现的边界 case 用 [`/update-context`](../update-context/SKILL.md) 写入 gotchas
View on GitHub