footgun-scan について
footgun-scanは、Gitリポジトリの変更に既知の落とし穴に関係するコードパターンがないか調べるコマンドラインスキルです。Pythonスクリプトが32種類のパターンを検出し、対応する注意点の説明を示しますが、検出結果は手動で確認する必要があります。
主な機能
- 01追加行の32種類のパターンを検査
- 02作業ツリーとブランチの差分に対応
- 03指定パスの監査
- 04可能性の高い検出で非ゼロ終了
- 05検出内容を注意点の説明に関連付け
活用シーン
- 01未コミット変更のレビュー
- 02対象ブランチとの差分スキャン
- 03指定したソースパスの監査
- 04CIへの検出チェックの追加
インストール
コマンドをコピーしてターミナルで実行します。
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 領域のスキルにある 1 つのトラップファイルに対応しています。これは問題そのものではなく、その兆候を見つけるものです。指摘として扱う前に、必ず各トラップの判断基準に照らして確認してください。
実行方法
ユーザーの 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 のステップでは、likely の指摘があれば終了コード 1 で終了するよう、--fail を追加します。
各指摘をトリアージする
- 指摘が示すトラップファイル(
->のパス)を読みます。 - 指摘周辺のコードを読み、トラップ独自の条件に基づいて該当するか判断します。トラップに記載された例外が当てはまらない限り、
likelyの指摘は誤りです。lookの指摘は、信頼する前に確認するようトラップが示している箇所です。 - 確認できた問題は、それぞれトラップに記載された修正方法と検証手順とともに報告します。却下した指摘は、「カラムが NOT NULL」や「フェードの遷移先が黒」のように、理由を添えて 1 行ずつ列挙します。
同じファイル内にある同一検出器の指摘はまとめられます。グループ全体を一度トリアージしてから、記載された各行に例外がないか確認します。
スキャナーを実行できない場合
python3 と git が必要です。これらを利用できない場合は、scripts/scan.py を読みます。DETECTORS リストに各パターン、そのメッセージ、トラップが記載されています。変更されたファイルに対して Grep ツールでこれらのパターンを実行し、同じ方法でトリアージしてください。