name: security-check description: Claude Code 利用における情報漏えいリスクをチェックする。 Auto Memory や CLAUDE.md への機密混入、.env の gitignore 漏れ、機密ファイルの存在などを検査する。

Claude Code の利用に関する情報漏えいリスクをチェックしてください。

チェック対象

以下の 4 カテゴリを順番に検査する。

1. Auto Memory の機密スキャン

~/.claude/ 配下の memory ファイルを検査する:

  1. 以下のパスを Glob で列挙する:
    • ~/.claude/projects/*/memory/*.md
    • ~/.claude/projects/*/memory/**/*.md
  2. 各ファイルを Read で読み込み、以下のパターンを Grep で検出する:
    • API キー・トークン: (?i)(api[_-]?key|secret[_-]?key|access[_-]?token|bearer)\s*[:=]\s*\S+
    • パスワード: (?i)(password|passwd|pwd)\s*[:=]\s*\S+
    • AWS 認証情報: (?i)(AKIA[0-9A-Z]{16}|aws[_-]?secret)
    • 接続文字列: (?i)(mysql|postgres|redis|mongodb):\/\/\S+
    • 個人情報パターン: メールアドレス、電話番号、マイナンバーらしき数字列
    • 金額・契約情報: (?i)(契約金額|単価|請求|売上)\s*[::]\s*[\d,¥¥$]+
    • 顧客 ID の具体値: (?i)(顧客id|customer[_-]?id|ユーザーid|user[_-]?id)\s*[:=:]\s*\d+
  3. 検出があれば、ファイルパス・行番号・該当箇所を報告する

2. CLAUDE.md の機密スキャン

プロジェクトの CLAUDE.md およびグローバルの ~/.claude/CLAUDE.md を検査する:

  1. 両ファイルを Read で読み込む
  2. チェック 1 と同じパターンで Grep 検査する
  3. 加えて、以下も確認する:
    • URL にトークンやキーが含まれていないか(?token=, ?key=, ?secret=
    • 内部 IP アドレスやホスト名が含まれていないか
  4. CLAUDE.md はリポジトリにコミットされるため、検出時は即時対応を推奨として強調する

3. 機密ファイルの gitignore チェック

プロジェクトルートで以下を確認する:

  1. Glob で機密ファイルの存在を確認する:
    • .env, .env.*.env.example は除外)
    • *.pem, *.key, *.p12, *.pfx
    • credentials.json, service-account*.json
    • *.tfstate, *.tfvars*.example は除外)
    • ~/.aws/credentials, ~/.ssh/id_*(ホームディレクトリ)
  2. 存在するファイルについて、.gitignore に含まれているか確認する:
    • git check-ignore -v <file> で gitignore のルールを確認
  3. gitignore されていないファイルを警告として報告する
  4. Git 履歴に過去コミットされていないかも確認する:
    • git log --all --diff-filter=A -- <file> で追加履歴を確認

4. Anthropic API への送信リスク評価

現在のプロジェクト構成から、API 送信リスクの高いファイルを列挙する:

  1. 以下のファイルが存在するか確認する:
    • データベースダンプ: *.sql, *.dump
    • ログファイル: *.log(本番ログに個人情報が含まれる可能性)
    • バックアップ: *.bak, *.backup
  2. これらが Read/Bash ツールで読み込まれた場合、内容が Anthropic API に送信される旨を注意喚起する

出力フォーマット

検査結果を以下の形式で報告する:

## セキュリティチェック結果

### Auto Memory
- [ ] 問題なし / [x] 要確認: {件数}件の検出

### CLAUDE.md
- [ ] 問題なし / [x] 要確認: {件数}件の検出

### gitignore
- [ ] 問題なし / [x] 要確認: {件数}件の未保護ファイル

### API 送信リスク
- [ ] 問題なし / [x] 注意: {件数}件のリスクファイル

### 推奨アクション
1. ...
2. ...

検出がゼロの場合も「問題なし」と明示する。 検出があった場合は、具体的なファイルパス・行番号・推奨アクションを提示する。