Skip to content
cccskills
FreePublished on GitHub

credential-leak-prevention

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

The English summary is being prepared. Showing the original description.

See how to install

Files included (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 (original)

Review the instructions the agent will receive before you install.

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` により、リリース直後の不安定なバージョンへの即時更新を防ぐ。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

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.

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

変更をコミットしてドラフト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直接実行しない。

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

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

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

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

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

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

The English summary is being prepared. Showing the original description.

hodanov/my-pde3Updated Oct 23, 2026

See all skills by hodanov

Report a problem with this skill