关于 footgun-scan
footgun-scan 是供开发者检查 Git 代码变更的命令行技能,用于发现与已知陷阱相关的代码模式。Python 脚本匹配 32 种模式,并指向对应的陷阱说明;命中项仍需人工判断,不能直接视为缺陷。
主要功能
- 01扫描新增行中的 32 种模式
- 02支持工作区和分支差异
- 03审查指定路径
- 04可对疑似命中返回非零状态
- 05关联对应的陷阱说明
适用场景
- 01审查未提交的变更
- 02对照目标分支扫描代码
- 03审查指定源码路径
- 04在 CI 中添加疑似命中检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ maxrave-dev/ kotlin-footguns --skill footgun-scan安装后在 Claude Code 中输入/footgun-scan确认已加载。
附带文件scripts/scan.py
详细介绍
Footgun 扫描
scripts/scan.py 会将 32 种模式与变更新增的行进行匹配。每种模式都对应 kotlin-footguns 技能目录中的一个陷阱文件。它查找的是代码形态,而非 Bug:每个命中项都必须根据对应陷阱进行判断,才能成为一条发现。
运行
在用户的 Git 仓库内,将此技能的基目录设为 <skill>:
python3 <skill>/scripts/scan.py # lines added in the working tree and index since HEAD
python3 <skill>/scripts/scan.py --base origin/main # lines added on this branch since it left main
python3 <skill>/scripts/scan.py --all src/ # every line under a path: an audit, and noisier
根据请求选择范围。未提交的工作使用默认范围。分支或拉取请求使用 --base 并指定目标分支。“审计代码库”使用 --all,并缩小范围,只检查相关路径。对于提交前钩子或 CI 步骤,添加 --fail,使其在出现任何 likely 命中项时以状态码 1 退出。
逐一分诊命中项
- 阅读命中项指向的陷阱文件(
->后的路径)。 - 阅读命中项附近的代码,并根据该陷阱自身的条件判断是否适用。
除非满足陷阱中提到的例外情况,否则
likely命中项就是误报。look命中项表示陷阱建议检查的位置,确认之前不要轻信。 - 对每个确认的问题,报告陷阱中给出的修复方法及其验证步骤。将排除的命中项逐项列出,每项占一行并说明原因,例如“列为 NOT NULL”或“淡出效果转为黑屏”。
同一检测器在同一文件中的命中项会合并显示:先对这一组进行分诊,再检查列出的行是否存在例外情况。
扫描器无法运行时
它需要 python3 和 git。如果缺少这些工具,请阅读 scripts/scan.py:DETECTORS 列表中列出了每种模式、其消息及对应的陷阱。使用 Grep 工具在变更文件中运行这些模式,并按相同方式进行分诊。
评论
支持 Markdown