本文へ移動
cccskills
無料GitHub で公開

credential-leak-prevention

gitleaks + pre-commit を使ってローカルコミット時のクレデンシャル混入を機械的にブロックする。「クレデンシャル漏洩防止」「シークレット混入対策」「gitleaks」「pre-commit シークレット」「credential leak prevention」に言及した場合に使用する。

インストール方法を見る

含まれるファイル(5)

  • SKILL.md6.0 KB
  • references/gitleaks-guide.md3.0 KB
  • scripts/scan.sh1.9 KB
  • scripts/setup.sh1.9 KB
  • scripts/validate.sh1.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Credential Leak Prevention

gitleaks + pre-commit を導入し、ローカルコミット時にシークレット(API キー・トークン等)が混入するのを機械的にブロックするスキル。

ワークフロー全体像

Phase 0: 前提ツール確認
Phase 1: 現状スキャン
Phase 2: 自動セットアップ
Phase 3: 動作検証

Phase 0: 前提ツール確認

pre-commit と gitleaks は本スキルの必須前提条件である。

which pre-commit && pre-commit --version
which gitleaks && gitleaks version

どちらかが未インストールの場合、作業を中断してユーザーにインストールを促す:

⚠️ 以下のツールが未インストールです。

インストール方法(Homebrew):
  brew install pre-commit gitleaks

インストール後に再度このスキルを実行してください。

両方確認できたら Phase 1 に進む。


Phase 1: 現状スキャン

調査スクリプト scripts/scan.sh を実行し、現状を取得する。

スクリプトは以下の状態を出力する:

  • pre-commit / gitleaks のインストール状況とバージョン
  • .pre-commit-config.yaml の有無と gitleaks hook の設定状況
  • .gitleaks.toml の有無と useDefault = true の設定状況
  • git hook が有効か(core.hooksPath と worktree を考慮した hooks ディレクトリに pre-commit があるか)
  • core.hooksPath の設定有無(husky 等の既存 hook 管理と競合するか)

スキャン結果をテーブル形式でユーザーに提示する:

項目状態
pre-commit インストール✓ / ✗
gitleaks インストール✓ / ✗
.pre-commit-config.yaml存在 / なし
gitleaks hook 設定済 / 未設定
.gitleaks.toml存在 / なし
useDefault = true設定済み / 未設定
git hook 有効化済 / 未実施

全て対策済みの場合: その旨を報告し、Phase 3 の検証のみ実行する。


Phase 2: 自動セットアップ

ユーザーに確認を取ってからセットアップスクリプト scripts/setup.sh を実行する。

スクリプトは以下を冪等に実行する:

  1. .pre-commit-config.yaml に gitleaks hook を追加
    • ファイルなし → 新規作成
    • ファイルあり・gitleaks なし → gitleaks ブロックを末尾に追記
    • gitleaks 設定済み → スキップ
  2. .gitleaks.toml を作成(既に存在する場合はスキップ。go.sum があるリポジトリでのみ allowlist に追加)

続けて pre-commit install を実行する。.git/hooks への書き込みはサンドボックスに拒否されるため、最初からサンドボックス外で実行する。 Phase 1 で core.hooksPath が設定済みだった場合は pre-commit install が拒否されるため、実行せずにユーザーへ統合方針を確認する。

注意事項

  • .gitleaks.toml が既に存在する場合はスキップするため、既存の設定を壊さない
  • .pre-commit-config.yaml が複雑な構造の場合、追記した gitleaks ブロックの位置が適切か目視確認する
  • 詳細は references/gitleaks-guide.md を参照

Phase 3: 動作検証

動作検証用のスクリプト scripts/validate.sh を実行する。

スクリプトはダミーの GitHub PAT を含むファイルを一時作成し、pre-commit run gitleaks でブロックされることを自動確認する。ファイルは検証後に自動削除される。

期待結果: gitleaks hook の出力に Failed が表示され、スクリプトは「✓ シークレットが正しく検出・ブロックされました」を出して exit code 0 で終了する。検出されなかった場合は exit code 1。

検証結果をテーブル形式で報告する:

検証項目結果
gitleaks hook がシークレットを検出してブロック✓ / ✗
.gitleaks.toml の useDefault = true✓ / ✗
git hook が有効化されている✓ / ✗

全て ✓ なら導入完了。


Phase 4: バージョンの継続的更新(オプション)

.pre-commit-config.yaml の rev は定期的に更新しないと、フックが陳腐化しセキュリティ上の穴が生じる。

ユーザーに下記を提案して終了する(提案だけ。修正はユーザーに任せる)。

`.pre-commit-config.yaml` の `rev` は定期的に更新しないと、フックが陳腐化しセキュリティ上の穴が生じます。

`pre-commit autoupdate` で手動更新するか、dependabotなどで自動更新してください。

Dependabot による自動更新の設定例↓

---
# `.github/dependabot.yml` に `pre-commit` エコシステムを追加する:
version: 2
updates:
  - package-ecosystem: "pre-commit"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
    cooldown:
      semver-patch-days: 3 # パッチは 3 日後
      semver-minor-days: 5 # マイナーは 5 日後
      semver-major-days: 7 # メジャーは 7 日後
---

`cooldown` により、リリース直後の不安定なバージョンへの即時更新を防ぐ。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Convert Claude markdown subagent files to Codex CLI TOML format. Parses YAML frontmatter and body, applies model/permission/tool mappings, and outputs to agents/codex/<name>.toml.

日本語の概要は準備中です。原文の説明を表示しています。

hodanov/my-pde32026年10月12日 更新

Create or update a Markdown blog draft from recent work and export it with `YYYY-MM-DD_slug.md` naming. Output directory can be set via environment variable or CLI option; if missing, ask the user and pass it explicitly.

日本語の概要は準備中です。原文の説明を表示しています。

hodanov/my-pde32026年10月12日 更新

commit-and-draft-pr

無料日本語概要

変更をコミットしてドラフトPRを作成する一連のGit/ghワークフロー。ユーザーが「コミットして」「PR作って」「draft PR」等を求めたときに使用し、status/diff確認・命令形コミット・push・gh pr create --draft(--assignee hodanov)まで実行する。ユーザーの明示リクエストが無くても、実装完了後にcommitやPRが必要になった場面(dev-workflowのcommitフェーズ等)では必ずこれを使う。`git commit` や `gh pr create` を単体でBash直接実行しない。

hodanov/my-pde32026年10月12日 更新

commit-split

無料日本語概要

1 つの作業ツリーに混ざった差分を、変更理由ごとの意味単位のコミットへ分割する。ユーザーが「コミットを分割して」「意味単位で分けて」「commit-split」等を求めたとき、または機能追加・付随リファクタ・設定/ドキュメント修正が 1 コミットに混在していると気づいたときに使用する。分割案を提示して承認を得てからステージし、コミットごとに単独で成立することを確認する。メッセージ規約・push・PR の作成は commit-and-draft-pr へ委譲する。

hodanov/my-pde32026年10月12日 更新

dependency-update

無料日本語概要

依存パッケージ(Go modules / npm / Terraform provider / GitHub Actions / pre-commit 等)の アップグレードを、outdated 検出 → CHANGELOG・破壊的変更の確認 → 更新 → lint/test 検証 → コミットまで一連の手順で安全に適用する。「依存更新」「パッケージを上げて」「dependency update」 「go get -u」「npm update」「provider を上げる」等に言及されたときに使用する。

hodanov/my-pde32026年10月12日 更新

deploy-ai-config

無料日本語概要

ai-agents/ と dotfiles/ の編集内容を各 AI CLI(~/.claude, ~/.codex)と ~/.config へ反映するデプロイ手順。「設定を反映」「デプロイ」「~/.claude に配って」「スキル/エージェント/設定を更新したから配布」等を求められたときに使用する。

hodanov/my-pde32026年10月12日 更新

hodanov のスキルをすべて見る

このスキルの問題を報告する