mcpField
F
footgun-scan

footgun-scan

github.com/maxrave-dev测试与质量1.7k89 次安装1 周前更新
代码仓库

关于 footgun-scan

footgun-scan 是供开发者检查 Git 代码变更的命令行技能,用于发现与已知陷阱相关的代码模式。Python 脚本匹配 32 种模式,并指向对应的陷阱说明;命中项仍需人工判断,不能直接视为缺陷。

主要功能

  1. 01扫描新增行中的 32 种模式
  2. 02支持工作区和分支差异
  3. 03审查指定路径
  4. 04可对疑似命中返回非零状态
  5. 05关联对应的陷阱说明

适用场景

  1. 01审查未提交的变更
  2. 02对照目标分支扫描代码
  3. 03审查指定源码路径
  4. 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 退出。

逐一分诊命中项

  1. 阅读命中项指向的陷阱文件(-> 后的路径)。
  2. 阅读命中项附近的代码,并根据该陷阱自身的条件判断是否适用。 除非满足陷阱中提到的例外情况,否则 likely 命中项就是误报。look 命中项表示陷阱建议检查的位置,确认之前不要轻信。
  3. 对每个确认的问题,报告陷阱中给出的修复方法及其验证步骤。将排除的命中项逐项列出,每项占一行并说明原因,例如“列为 NOT NULL”或“淡出效果转为黑屏”。

同一检测器在同一文件中的命中项会合并显示:先对这一组进行分诊,再检查列出的行是否存在例外情况。

扫描器无法运行时

它需要 python3 和 git。如果缺少这些工具,请阅读 scripts/scan.py:DETECTORS 列表中列出了每种模式、其消息及对应的陷阱。使用 Grep 工具在变更文件中运行这些模式,并按相同方式进行分诊。

评论

支持 Markdown