repomix-safe-mixer
repomixでコードベースをパッケージ化する際に、ハードコードされた認証情報を自動検出・除去してから安全にパックします。コードの配布用パッケージ作成やリファレンスパッケージの生成時、またはrepomixでのコード共有に関するセキュリティ上の懸念がある場合にご利用ください。
description の原文を見る
Safely package codebases with repomix by automatically detecting and removing hardcoded credentials before packing. Use when packaging code for distribution, creating reference packages, or when the user mentions security concerns about sharing code with repomix.
SKILL.md 本文
Repomix Safe Mixer
概要
repomix でコードベースを安全にパッケージ化し、ハードコーディングされた認証情報を自動的に検出して削除します。
このスキルは、repomix でコードをパッケージ化する際の認証情報の意図しない露出を防ぎます。ハードコーディングされたシークレット(API キー、データベース認証情報、トークン)をスキャンして報告し、安全なパッケージ化を確保します。
使用時機: コードを repomix で配布用にパッケージ化する場合、共有可能なリファレンスパッケージを作成する場合、またはコード内のハードコーディングされた認証情報に関するセキュリティ上の懸念がある場合。
コアワークフロー
標準的な安全なパッケージ化
このスキルの scripts/ ディレクトリから safe_pack.py を使用して、完全なワークフロー(スキャン → レポート → パック)を実行します。
python3 scripts/safe_pack.py <directory>
実行内容:
- ディレクトリをハードコーディングされた認証情報についてスキャン
- ファイル/行番号の詳細を含むレポート出力
- シークレットが見つかった場合、パッケージ化をブロック
- スキャンがクリーンな場合のみ repomix でパック
例:
python3 scripts/safe_pack.py ./my-project
クリーンな場合の出力:
🔍 Scanning ./my-project for hardcoded secrets...
✅ No secrets detected!
📦 Packing ./my-project with repomix...
✅ Packaging complete!
Package is safe to distribute.
シークレットが見つかった場合の出力:
🔍 Scanning ./my-project for hardcoded secrets...
⚠️ Security Scan Found 3 Potential Secrets:
🔴 supabase_url: 1 instance(s)
- src/client.ts:5
Match: https://ghyttjckzmzdxumxcixe.supabase.co
❌ Cannot pack: Secrets detected!
オプション
カスタム出力ファイル:
python3 scripts/safe_pack.py \
./my-project \
--output package.xml
repomix 設定付き:
python3 scripts/safe_pack.py \
./my-project \
--config repomix.config.json
スキャンから除外するパターン:
python3 scripts/safe_pack.py \
./my-project \
--exclude '.*test.*' '.*\.example'
強制パック(危険、スキャンをスキップ):
python3 scripts/safe_pack.py \
./my-project \
--force # ⚠️ NOT RECOMMENDED
スタンドアロンのシークレットスキャン
このスキルの scripts/ ディレクトリから scan_secrets.py を使用して、スキャンのみを実行します(パッケージ化なし)。
python3 scripts/scan_secrets.py <directory>
ユースケース:
- 認証情報削除後のクリーンアップを検証
- プリコミットセキュリティチェック
- 既存コードベースの監査
例:
python3 scripts/scan_secrets.py ./my-project
プログラム使用向けの JSON 出力:
python3 scripts/scan_secrets.py \
./my-project \
--json
除外パターン:
python3 scripts/scan_secrets.py \
./my-project \
--exclude '.*test.*' '.*example.*' '.*SECURITY_AUDIT\.md'
検出されるシークレットタイプ
スキャナーは以下を含む一般的な認証情報パターンを検出します:
クラウドプロバイダー:
- AWS Access Keys (
AKIA...) - Cloudflare R2 アカウント ID およびアクセスキー
- Supabase プロジェクト URL および Anon キー
API キー:
- Stripe キー (
sk_live_...,pk_live_...) - OpenAI API キー (
sk-...) - Google Gemini API キー (
AIza...) - 一般的な API キー
認証:
- JWT トークン (
eyJ...) - OAuth クライアントシークレット
- プライベートキー (
-----BEGIN PRIVATE KEY-----) - Turnstile キー (
0x...)
完全なリストとパターンについては references/common_secrets.md を参照してください。
検出されたシークレットへの対応
シークレットが見つかった場合:
ステップ 1: 結果を確認
各結果を確認して、実際の認証情報であることを確認します(プレースホルダーや例ではなく)。
ステップ 2: 環境変数で置き換え
前:
const SUPABASE_URL = "https://ghyttjckzmzdxumxcixe.supabase.co";
const API_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
後:
const SUPABASE_URL = import.meta.env.VITE_SUPABASE_URL || "https://your-project-ref.supabase.co";
const API_KEY = import.meta.env.VITE_API_KEY || "your-api-key-here";
// 検証
if (!import.meta.env.VITE_SUPABASE_URL) {
console.error("⚠️ Missing VITE_SUPABASE_URL environment variable");
}
ステップ 3: .env.example を作成
# 環境変数の例
VITE_SUPABASE_URL=https://your-project-ref.supabase.co
VITE_API_KEY=your-api-key-here
# 使用方法:
# 1. このファイルを .env にコピー
# 2. プレースホルダーを実際の値に置き換え
# 3. .env をバージョン管理にコミットしない
ステップ 4: クリーンアップを検証
スキャナーを再度実行してシークレットが削除されたことを確認:
python3 scripts/scan_secrets.py ./my-project
ステップ 5: 安全なパック
クリーンになったら、安全にパッケージ化:
python3 scripts/safe_pack.py ./my-project
露出後の対応
認証情報がすでに露出している場合(例: git にコミットされた、公開共有された):
- 認証情報を直ちにローテーション - 新しいキー/トークンを生成
- 古い認証情報を取り消し - 危険にさらされた認証情報を無効化
- 使用を監査 - ログで無許可アクセスをチェック
- 監視 - 不活動のアラートを設定
- デプロイを更新 - 新しい認証情報でコードをデプロイ
- インシデントを文書化 - 露出内容と実施したアクションを記録
一般的な誤検知
スキャナーは一般的な誤検知をスキップします:
プレースホルダー:
your-api-key,example-key,placeholder-value<YOUR_API_KEY>,${API_KEY},TODO: add key
テスト/例ファイル:
.*test.*,.*example.*,.*sample.*に一致するファイル
コメント:
//,#,/*,*で始まる行
環境変数参照(正しい使用方法):
process.env.API_KEYimport.meta.env.VITE_API_KEYDeno.env.get('API_KEY')
必要に応じて --exclude を使用して追加パターンをスキップしてください。
Repomix との統合
このスキルは標準的な repomix で動作します:
デフォルト使用法(設定なし):
python3 scripts/safe_pack.py ./project
repomix 設定付き:
python3 scripts/safe_pack.py \
./project \
--config repomix.config.json
カスタム出力場所:
python3 scripts/safe_pack.py \
./project \
--output ~/Downloads/package-clean.xml
このスキルはセキュリティ検証後に repomix を内部で実行し、設定と出力オプションを渡します。
ワークフロー例
ワークフロー 1: クリーンなプロジェクトをパッケージ化
# スキャンとパックを 1 つのコマンドで実行
python3 scripts/safe_pack.py \
~/workspace/my-project \
--output ~/Downloads/my-project-package.xml
ワークフロー 2: シークレットを含むプロジェクトをクリーンアップしてパッケージ化
# ステップ 1: スキャンしてシークレットを検出
python3 scripts/scan_secrets.py ~/workspace/my-project
# ステップ 2: 結果を確認し、認証情報を環境変数に置き換え
# (ファイルを手動または自動で編集)
# ステップ 3: クリーンアップを検証
python3 scripts/scan_secrets.py ~/workspace/my-project
# ステップ 4: 安全にパッケージ化
python3 scripts/safe_pack.py \
~/workspace/my-project \
--output ~/Downloads/my-project-clean.xml
ワークフロー 3: コミット前に監査
# プリコミットフック: シークレットをスキャン
python3 scripts/scan_secrets.py . --json
# シークレットが見つかった場合は終了コード 1(コミットをブロック)
# クリーンな場合は終了コード 0(コミットを許可)
リソース
参照資料:
references/common_secrets.md- 完全な認証情報パターンカタログ
スクリプト:
scripts/scan_secrets.py- スタンドアロンセキュリティスキャナーscripts/safe_pack.py- 完全なスキャン → パックワークフロー
関連スキル:
repomix-unmixer- repomix パッケージからファイルを抽出skill-creator- 新しい Claude Code スキルを作成
セキュリティに関する注意
このスキルは一般的なパターンを検出しますが、すべての認証情報タイプをキャッチできない場合があります。常に:
- 結果を手動で確認
- 露出した認証情報をローテーション
- .env.example テンプレートを使用
- 環境変数を検証
- 無許可アクセスを監視
代わりにはなりません: CI/CD のシークレットスキャン、git 履歴スキャン、または包括的なセキュリティ監査。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- daymade
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/daymade/claude-code-skills / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。