关于 bug-hunt
bug-hunt 是面向开发者的代码审查技能,通过三个相互隔离的 Agent 查找并核验项目中的问题,可扫描项目、目录、文件或分支变更,并生成结构化报告。
主要功能
- 01三个 Agent 对抗式审查
- 02扫描项目、目录或文件
- 03对比基准分支扫描变更
- 04独立核验问题
- 05按严重程度整理报告
适用场景
- 01合并前审查功能分支
- 02调查单个文件中的疑似问题
- 03检查目录中的缺陷
- 04按严重程度整理已核验问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ danpeg/ bug-hunt --skill bug-hunt安装后在 Claude Code 中输入/bug-hunt确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CODE_OF_CONDUCT.mdREADME.mdLICENSE.gitignoreCONTRIBUTING.mdCHANGELOG.md.github/PULL_REQUEST_TEMPLATE.md.github/ISSUE_TEMPLATE/feature_request.mdbug_report.mdprompts/hunter.mdreferee.mdskeptic.md详细介绍
Bug Hunt - 对抗式 Bug 查找
在你的代码库中运行由 3 个 Agent 组成的对抗式 Bug 查找。每个 Agent 都在隔离环境中运行。
用法
/bug-hunt # Scan entire project
/bug-hunt src/ # Scan specific directory
/bug-hunt lib/auth.ts # Scan specific file
/bug-hunt -b feature-xyz # Scan files changed in feature-xyz vs main
/bug-hunt -b feature-xyz --base dev # Scan files changed in feature-xyz vs dev
目标
原始参数为:$ARGUMENTS
按以下方式解析参数:
- 如果参数包含
-b <branch>:这是分支差异模式。- 提取
-b后面的分支名称。 - 如果还包含
--base <base-branch>,则将其用作基准分支;否则默认为main。 - 使用 Bash 工具运行
git diff --name-only <base>...<branch>,获取已更改文件列表。 - 如果命令失败(例如,找不到分支),向用户报告错误并停止。
- 如果没有文件更改,告知用户没有可扫描的更改并停止。
- 扫描目标为已更改文件列表(扫描其完整内容,而不只是差异部分)。
- 提取
- 如果参数不包含
-b:将整个参数字符串视为路径目标(文件或目录)。如果为空,则扫描当前工作目录。
执行步骤
你必须严格按照以下顺序执行这些步骤。每个 Agent 都必须通过 Agent 工具作为独立子 Agent 运行,以确保上下文隔离。
步骤 1:解析参数并确定目标
按照上文目标部分的规则确定扫描目标。如果处于分支差异模式,立即运行 git diff 命令并收集文件列表。
步骤 2:读取提示词文件
使用技能目录变量读取以下文件:
- ${CLAUDE_SKILL_DIR}/prompts/hunter.md
- ${CLAUDE_SKILL_DIR}/prompts/skeptic.md
- ${CLAUDE_SKILL_DIR}/prompts/referee.md
步骤 3:运行 Hunter Agent
使用 Hunter 提示词启动一个通用子 Agent。将扫描目标包含在 Agent 的任务中。如果处于分支差异模式,传入明确的文件列表,让 Hunter 只扫描这些文件(完整内容)。Hunter 必须使用工具(Read、Glob、Grep)检查实际代码。
等待 Hunter 完成并完整获取其输出。
步骤 3b:检查发现结果
如果 Hunter 报告 TOTAL FINDINGS: 0,则跳过步骤 4-5,直接进入步骤 6并生成无问题报告。对于零条发现,无需运行 Skeptic 和 Referee。
步骤 4:运行 Skeptic Agent
使用 Skeptic 提示词启动一个新的通用子 Agent。注入 Hunter 结构化的 Bug 列表(BUG-IDs、文件、行号、主张、证据、严重性、分值)。不要包含结构化发现结果之外的任何叙述或方法说明。
Skeptic 必须独立阅读代码,以验证每项主张。
等待 Skeptic 完成并完整获取其输出。
步骤 5:运行 Referee Agent
使用 Referee 提示词启动一个新的通用子 Agent。注入以下两项:
- Hunter 的完整 Bug 报告
- Skeptic 的完整质疑报告
Referee 必须独立阅读代码,作出最终判断。
等待 Referee 完成并完整获取其输出。
步骤 6:呈现最终报告
向用户显示 Referee 最终验证的 Bug 报告。包括:
- 汇总统计
- 按严重性排序的已确认 Bug 表格
- 标记为低置信度、需人工复核的项目
- 一个可折叠区域,列出已驳回的 Bug(以便透明说明)
如果确认的 Bug 数量为零,请明确说明——扫描无发现也是很好的结果。