mcpField
B
bug-hunt

bug-hunt

github.com/danpeg测试与质量14670 次安装34 周前更新
代码仓库

关于 bug-hunt

bug-hunt 是面向开发者的代码审查技能,通过三个相互隔离的 Agent 查找并核验项目中的问题,可扫描项目、目录、文件或分支变更,并生成结构化报告。

主要功能

  1. 01三个 Agent 对抗式审查
  2. 02扫描项目、目录或文件
  3. 03对比基准分支扫描变更
  4. 04独立核验问题
  5. 05按严重程度整理报告

适用场景

  1. 01合并前审查功能分支
  2. 02调查单个文件中的疑似问题
  3. 03检查目录中的缺陷
  4. 04按严重程度整理已核验问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/danpeg/bug-hunt --skill bug-hunt

安装后在 Claude Code 中输入/bug-hunt确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CODE_OF_CONDUCT.md
README.md
LICENSE
.gitignore
CONTRIBUTING.md
CHANGELOG.md
.github/
PULL_REQUEST_TEMPLATE.md
.github/ISSUE_TEMPLATE/
feature_request.md
bug_report.md
prompts/
hunter.md
referee.md
skeptic.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

按以下方式解析参数:

  1. 如果参数包含 -b <branch>:这是分支差异模式。
    • 提取 -b 后面的分支名称。
    • 如果还包含 --base <base-branch>,则将其用作基准分支;否则默认为 main。
    • 使用 Bash 工具运行 git diff --name-only <base>...<branch>,获取已更改文件列表。
    • 如果命令失败(例如,找不到分支),向用户报告错误并停止。
    • 如果没有文件更改,告知用户没有可扫描的更改并停止。
    • 扫描目标为已更改文件列表(扫描其完整内容,而不只是差异部分)。
  2. 如果参数不包含 -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 报告。包括:

  1. 汇总统计
  2. 按严重性排序的已确认 Bug 表格
  3. 标记为低置信度、需人工复核的项目
  4. 一个可折叠区域,列出已驳回的 Bug(以便透明说明)

如果确认的 Bug 数量为零,请明确说明——扫描无发现也是很好的结果。

评论

支持 Markdown