mcpField
S
scan

scan

github.com/continuedevテスト・品質81 回インストール
リポジトリ

scan について

別のスキルに記載された具体的な基準でコードベースを監査する、開発者向けスキルです。ルールをチェックリストにまとめ、対象ファイルを検査し、問題と修正順を含むレポートを作成します。

主な機能

  1. 01スキルから検証可能な基準を抽出
  2. 02推定した範囲からファイルを特定
  3. 03大規模コードベースの並列スキャン
  4. 04重要度別の問題レポート
  5. 05グループ単位の修正順を提案

活用シーン

  1. 01スキルの基準でフロントエンドやバックエンドを監査
  2. 02大規模リポジトリ内のルール違反を発見
  3. 03コード修正前に優先順位付きレポートを作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/continuedev/skills --skill scan

インストール後、Claude Code で/scanを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
fix-team-instructions.md
report-format.md
teammate-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. チーム構成を計画する

ディレクトリツリーごとにファイルを分割し、同じファイルが複数のエージェントに割り当てられないようにします。

対象候補のファイル数チームメンバー
< 1002(20未満の場合はチームを省略)
100–5003
500+4–5、最上位ディレクトリごとに分割

非常に小規模なスキャン(20ファイル未満)の場合はチームを省略し、インラインでスキャンしてステップ6に進みます。

4. スキャンチームを起動する
  1. 名前を scan-<skill-name> として spawnTeam を実行します。
  2. 各チャンクにつき1つずつ TaskCreate を作成し、次の内容を含めます。
    • 件名:Scan <directory-area> against <skill-name> criteria
    • 説明:基準チェックリスト全体、ファイルの対象範囲(globパターン)、および references/teammate-instructions.md にあるチームメンバー向けの指示を含めます。
  3. general-purpose の subagent_type でチームメンバーを起動します(Read、Glob、Grep、およびチーム内の連絡が必要です)。
  4. チームメンバーには scanner-1、scanner-2 のように名前を付けます。
  5. 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. 修正チーム(ユーザーが承諾した場合)
  1. レポートの「推奨される修正順序」セクションを読みます。
  2. 修正を、重複しないファイル単位のバッチにまとめます。
  3. 名前を fix-<skill-name> として spawnTeam を実行します。
  4. バッチごとにタスクを作成します。各タスクの説明には次の内容を含めます。
    • 修正対象の具体的な違反(レポートから)
    • 関連する基準の定義
    • references/fix-team-instructions.md の指示
  5. general-purpose のチームメンバーを fixer-1、fixer-2 のように起動します(Edit/Writeが必要です)。
  6. タスクを割り当てて完了を待ちます。
  7. 修正チームをシャットダウンしてクリーンアップします。
  8. 修正を確認するために再スキャンするかユーザーに尋ねます。

コメント