scan について
別のスキルに記載された具体的な基準でコードベースを監査する、開発者向けスキルです。ルールをチェックリストにまとめ、対象ファイルを検査し、問題と修正順を含むレポートを作成します。
主な機能
- 01スキルから検証可能な基準を抽出
- 02推定した範囲からファイルを特定
- 03大規模コードベースの並列スキャン
- 04重要度別の問題レポート
- 05グループ単位の修正順を提案
活用シーン
- 01スキルの基準でフロントエンドやバックエンドを監査
- 02大規模リポジトリ内のルール違反を発見
- 03コード修正前に優先順位付きレポートを作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ continuedev/ skills --skill scanインストール後、Claude Code で/scanを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/fix-team-instructions.mdreport-format.mdteammate-instructions.md詳細
コードベースのスキャン
並列エージェントチームを使って、コードベースを別のスキルの基準に照らして監査します。
ワークフロー
1. 引数を解析してスキルを読み込む
このスキルに渡された引数からスキル名を抽出します。
- スキル名が指定されていない場合は、
.claude/skills/にあるスキルを一覧表示し、どのスキルを基準にスキャンするかユーザーに尋ねます。 - スキルが存在しない場合は、利用可能なスキルを一覧表示してユーザーに伝えます。
.claude/skills/<name>/SKILL.mdと、references/およびrules/サブディレクトリ内のすべてのファイルを読み込みます。- スキルの内容を、番号付きの基準チェックリストにまとめます。これは具体的で検証可能なルールを列挙したリストで、C1、C2、C3のようにラベルを付けます。各基準は、確認すべき内容を1文で記述します。
- 評価可能なコード基準がないスキル(コードパターンやルールを定義していない
whyのようなワークフロー専用スキルなど)の場合は、スキャン対象外であることをユーザーに伝えて終了します。
2. 関連ファイルを特定する
スキルの基準に基づいて、対象とするファイルの範囲を推測します。
- React/フロントエンドの基準 →
app/**/*.tsx、app/**/*.ts - バックエンドの基準 →
services/**/*.ts - 全般/複合的な基準 → 上記の両方
- CSS/スタイリング →
app/**/*.css、app/**/*.tsx
常に次のものを除外します:node_modules/、dist/、*.test.*、*.spec.*、**/migrations/**、**/*.d.ts、生成ファイル。
対象候補のファイル数を数えます。0件の場合はユーザーに伝えて終了します。
3. チーム構成を計画する
ディレクトリツリーごとにファイルを分割し、同じファイルが複数のエージェントに割り当てられないようにします。
| 対象候補のファイル数 | チームメンバー |
|---|---|
| < 100 | 2(20未満の場合はチームを省略) |
| 100–500 | 3 |
| 500+ | 4–5、最上位ディレクトリごとに分割 |
非常に小規模なスキャン(20ファイル未満)の場合はチームを省略し、インラインでスキャンしてステップ6に進みます。
4. スキャンチームを起動する
- 名前を
scan-<skill-name>としてspawnTeamを実行します。 - 各チャンクにつき1つずつ
TaskCreateを作成し、次の内容を含めます。- 件名:
Scan <directory-area> against <skill-name> criteria - 説明:基準チェックリスト全体、ファイルの対象範囲(globパターン)、および
references/teammate-instructions.mdにあるチームメンバー向けの指示を含めます。
- 件名:
general-purposeの subagent_type でチームメンバーを起動します(Read、Glob、Grep、およびチーム内の連絡が必要です)。- チームメンバーには
scanner-1、scanner-2のように名前を付けます。 ownerを指定してTaskUpdateでタスクを割り当てます。
5. 結果を収集して統合する
すべてのチームメンバーがタスクを完了するまで待ちます。各チームメンバーは、次の構造化形式で検出結果を報告します。
FINDING: C<n> | SEVERITY | file/path.ts:LINE | Description
チームメンバーからのメッセージに含まれるすべての検出結果を収集します。
6. レポートを作成する
references/report-format.md の形式に従って .claude-scan/<skill-name>.md を作成します。
主なセクション:
- エグゼクティブサマリー(2~3文)
- 評価した基準(違反件数を含む表)
- 重大度別の検出結果(Critical → Warning → Info の各表)
- 観察されたパターン
- 統計
- 推奨される修正順序(重複しないファイルグループごとにまとめる)
7. クリーンアップして結果を提示する
- チームを起動した場合は、すべてのチームメンバーに
shutdown_requestを送信してからcleanupを実行します。 - インラインで概要を表示します:重大度別の検出件数、最も多く違反している基準、スキャン範囲
- 完全なレポートが
.claude-scan/<skill-name>.mdにあることをユーザーに伝えます。 - 「これらの検出結果に対応する修正チームを起動しますか?」と尋ねます。
8. 修正チーム(ユーザーが承諾した場合)
- レポートの「推奨される修正順序」セクションを読みます。
- 修正を、重複しないファイル単位のバッチにまとめます。
- 名前を
fix-<skill-name>としてspawnTeamを実行します。 - バッチごとにタスクを作成します。各タスクの説明には次の内容を含めます。
- 修正対象の具体的な違反(レポートから)
- 関連する基準の定義
references/fix-team-instructions.mdの指示
general-purposeのチームメンバーをfixer-1、fixer-2のように起動します(Edit/Writeが必要です)。- タスクを割り当てて完了を待ちます。
- 修正チームをシャットダウンしてクリーンアップします。
- 修正を確認するために再スキャンするかユーザーに尋ねます。
コメント
Markdown 対応