mcpField
D
deepsec

deepsec

github.com/vercel-labsセキュリティ1.6k90 回インストール1 日前に更新
リポジトリ

deepsec について

deepsecは、現在のVercelプロジェクトのチェックアウトを対象に、範囲を限定したDeepSecセキュリティスキャンを繰り返し実行するスキルです。プロジェクト情報の準備からスキャン、AI処理、結果の出力までを案内します。

主な機能

  1. 01セキュリティ上重要なファイルの確認
  2. 02DeepSecワークスペースの初期化
  3. 03プロジェクト固有のスキャン情報の追加
  4. 04範囲を限定したスキャンと処理
  5. 05結果のMarkdown出力

活用シーン

  1. 01Vercelチェックアウトの初回セキュリティ確認
  2. 02DeepSecスキャン前のプロジェクト情報準備
  3. 03確認用スキャン結果の出力

インストール

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

$npx skills add https://github.com/vercel-labs/dev3000 --skill deepsec

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

詳細

DeepSec Dev3000 運用手順書

このスキルを使うと、手作業の DeepSec ワークフローを、現在の Vercel プロジェクトのチェックアウトに対する再現可能な dev3000 の実行に変えられます。

運用ポリシー

  • 実際のプロジェクトのチェックアウト /workspace/repo で作業します。
  • AI の認証情報を .deepsec/.env.local や追跡対象のファイルに書き込まないでください。dev3000 のランタイムは、プロセス環境変数を通じて AI Gateway の認証情報を渡します。
  • dev3000 のデフォルトの実行は、範囲を限定した最初のパスです。ユーザーが実行ごとの指示で DeepSec のフルスキャンを明示的に求めない限り、上限のない process または revalidate コマンドを実行しないでください。
  • 生成されたスキャン状態は、DeepSec がすでに gitignore している場所に保持します。コミットするのは、永続的なセットアップ/コンテキストファイルと、人が読める調査結果レポートだけにします。
  • DeepSec はシェルアクセス権を持つコーディングエージェントとして扱います。信頼できないソース入力に対して実行しないでください。

デフォルトのフロー

  1. プロジェクトの構成を調べます。
    • README.md があれば読みます。
    • AGENTS.md または CLAUDE.md があれば読みます。
    • 認証、ミドルウェア、リクエストハンドラー、データアクセス、課金、Webhook、セキュリティ上重要な境界に関する代表的なファイルに目を通します。
  2. 必要に応じて DeepSec を初期化します。
    • .deepsec/ が存在しない場合は、npx --yes deepsec@latest init を実行します。
    • .deepsec/ がすでに存在する場合は、強制的に上書きしないでください。
  3. DeepSec ワークスペースの依存関係をインストールします。
    • .deepsec/ から corepack pnpm install を実行します。
    • DeepSec が実際に使用する Claude Agent SDK のネイティブバイナリが利用可能であることを確認します。Claude Code の postinstall は実行しないでください。DeepSec は @anthropic-ai/claude-agent-sdk を使用します。
    • corepack pnpm が利用できない場合は、pnpm が存在することを確認してから pnpm install を実行します。
  4. 生成されたプロジェクトコンテキストを補完します。
    • .deepsec/node_modules/deepsec/SKILL.md を読みます。
    • .deepsec/data/<id>/SETUP.md を読みます。
    • .deepsec/data/<id>/INFO.md を、プロジェクト固有の簡潔なコンテキストに置き換えます。
    • INFO.md は、おおむね50~100行に収めます。
    • 各セクションに3~5個の例を使います。認証ヘルパー、ミドルウェア、データベースクライアント、Webhook ハンドラー、特権 API など、ローカルのプリミティブに名前を付けます。
    • 行番号、一般的な CWE の一覧、広範なフレームワークの概要は含めないでください。
  5. スキャンを実行します。
    • .deepsec/ から corepack pnpm deepsec scan を実行します。
  6. AI 処理の範囲を限定して実行します。
    • デフォルトのコマンド:corepack pnpm deepsec process --limit 25 --concurrency 2 --batch-size 3。
    • 候補の件数が上限を下回る場合は、検出された候補をすべて処理したと明記します。
    • ユーザーがフル実行を明示的に求めた場合は、指定された上限/並列数を使用するか、--limit を省略します。
    • process コマンドが失敗した場合は、そこで停止して失敗を報告します。正規表現で検出した候補から手動で代替レポートを生成しないでください。
  7. 調査結果レポートを生成します。
    • corepack pnpm deepsec export --format md-dir --out ./findings を実行します。
    • 調査結果がない場合は、.deepsec/findings/README.md を作成し、この範囲を限定したパスで調査結果がなかったことと、実行したコマンドを正確に記載します。
  8. 実行内容を要約します。
    • 実行したコマンド、プロジェクト ID、上限/並列数、レポートに調査結果が含まれるかどうかを記載します。
    • デフォルトでは「次のステップ - フルスキャン」のセクションを含めないでください。
    • DeepSec が未処理の候補を報告した場合、またはユーザーがより広い範囲の調査について明示的に尋ねた場合に限り、追加スキャンのセクションを含めます。「任意の追加調査」と見出しを付け、完了した実行との違いを正確に説明します。

検証

  • 検証には、DeepSec 自身のコマンド出力、corepack pnpm deepsec status、生成された調査結果ファイルを優先します。
  • ユーザーがビジュアル/ランタイム検証を明示的に求めない限り、開発サーバーやブラウザーを起動しないでください。
  • 作業を終える前に git diff --stat を確認し、シークレット、node_modules、.env.local、未加工のスキャン状態が誤ってステージされていないことを確かめます。

コメント