关于 find-bugs
面向代码审查的只读技能,用于检查分支变更并报告经证据验证的缺陷或漏洞。它要求审阅实际差异、核查上下文并按严重程度排序,不修改应用代码。
主要功能
- 01审阅分支差异与变更文件
- 02检查安全及逻辑缺陷
- 03验证候选问题与上下文
- 04按严重程度排列发现
- 05只读审查,不编辑代码
适用场景
- 01合并前审查分支变更
- 02检查认证或数据完整性风险
- 03验证疑似并发或边界问题
- 04记录带证据的缺陷报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ulpi-io/ skills --skill find-bugs安装后在 Claude Code 中输入/find-bugs确认已加载。
附带文件references/review-checklists.md
详细介绍
此技能仅用于报告,且必须以证据为依据。
不可妥协的规则:
- 报告发现之前,先阅读完整的分支差异。
- 根据周边代码和框架行为验证每项发现。
- 只报告真实缺陷或漏洞,不报告风格方面的看法。
- 工作流必须为只读。不要在使用此技能时编辑应用代码。
- 使用检查清单参考来系统地开展审查,但不要在每次调用时粘贴整个检查清单。
查找 Bug
输入
$request:可选的审查指导,例如关注领域、威胁模型或子系统提示
目标
生成可信的分支审查,并做到:
- 阅读实际变更的代码
- 梳理相关的攻击面和缺陷面
- 在报告前验证发现
- 根据严重性优先处理真实问题
- 如果没有发现重大问题,明确说明审查结果良好
步骤 0:确定审查范围
此技能审查的是分支变更,默认不审查整个代码库。
确定:
- 默认分支
- 审查目标是整个分支、某个提交范围,还是用户提供的当前差异指导
- 用户是否指定了关注领域,例如身份验证、数据完整性、并发或机密信息
如果相对于审查基准没有变更,请停止并明确说明。
成功标准:审查范围明确,并且有实际差异内容可供检查。
步骤 1:阅读实际差异和变更文件
通过以下方式检查审查范围:
- 与默认基准分支进行分支差异比较
- 变更文件列表
- 根据需要使用
Read查看变更文件的上下文
规则:
- 阅读实际变更行,而不只是
--stat - 如果差异输出过大,则逐个文件与基准版本比较并阅读
- 仅当
codemap等嵌套辅助工具能显著改善代码发现时,才使用Skill
成功标准:已阅读所有与审查相关的变更文件,并掌握足够上下文以进行推理。
步骤 2:梳理攻击面和缺陷面
对于每个变更文件,识别相关面:
- 用户输入
- 数据库查询
- 身份验证与授权
- 会话或令牌处理
- 外部调用
- 加密或机密信息处理
- 序列化和解析
- 文件系统路径和上传
- 并发或状态转换
- 边界情况和边界行为
安全风险较低的文件仍可能包含逻辑 Bug,因此不要完全跳过。
加载 references/review-checklists.md,查看完整的审查矩阵。
成功标准:根据变更文件实际暴露的风险对其进行分类。
步骤 3:运行针对性的审查检查清单
使用 references/review-checklists.md 评估:
- 注入
- XSS 和不安全的渲染
- 身份验证和授权
- 会话和 CSRF 处理
- 竞态条件
- 加密和机密信息处理
- 信息泄露
- 拒绝服务和资源耗尽
- 业务逻辑正确性
- 一般逻辑 Bug,例如空值访问、异步错误、边界错误和缺少返回值
规则:
- 不要假定框架会保护某种模式;应检查保护措施是否确实适用于此处
- 不要因为某个文件“看起来简单”就跳过检查清单中的任何部分
- 聚焦于变更代码,但要阅读足够的周边代码以验证判断
成功标准:已根据实际变更面评估所有有意义的检查清单项目。
步骤 4:验证每项候选发现
报告问题前,请检查:
- 周边函数和调用方上下文
- 中间件、辅助函数或封装器是否已缓解问题
- 现有测试是否已覆盖该场景
- 问题在实践中是否确实可利用,或是否会导致错误行为
如果无法有把握地验证发现,请将其删除,或明确标注验证方面的不足。
不要把依据薄弱的怀疑夸大成发现。
成功标准:每项报告的问题都通过了误报检查。
步骤 5:分类并确定优先级
根据实际影响分配严重级别:
CriticalHighMediumLow
优先处理:
- 可利用的安全问题
- 其次是正确性和数据完整性缺陷
- 最后是风险较低但仍属于真实缺陷的质量问题
加载 references/review-checklists.md,获取严重级别指引。
成功标准:问题按实际风险排序,而不是按发现难易程度排序。
步骤 6:提供附带证据的报告
对于每项发现,报告:
File:Line- 严重级别
- 类别
- 简洁的问题说明
- 证明问题确实存在的证据
- 相关的利用路径或故障路径
- 具体的修复方向
还需报告:
- 已审查的文件
- 检查清单覆盖情况摘要
- 未完全验证的领域
如果没有发现重大问题,请明确说明。
成功标准:其他工程师无需从头重新推导问题,就能据此采取行动。
注意事项
- 不要将编辑代码作为此技能的一部分。
- 不要报告仅涉及风格的问题。
- 不要为了显得全面而杜撰问题。
- 不要添加
disable-model-invocation;用户要求进行主动审查时,此技能应保持可用。 - 不要添加
paths:;这是通用工作流技能。 - 将详尽的检查清单内容放在 references 中,而不是内联到
SKILL.md中。
何时加载参考资料
references/review-checklists.md用于详细的安全、逻辑、严重级别和报告检查清单。
输出约定
报告:
- 已审查的文件
- 按严重级别列出的发现
- 附带证据的简洁详细发现
- 检查清单覆盖情况及验证缺口
- 如果未发现重大缺陷,请明确说明审查结果为干净
评论
支持 Markdown