PreCommit について
複数言語のプロジェクトで pre-commit フックを管理するスキルです。コード品質、フォーマット、リンティング、セキュリティスキャンを自動化するための設定生成・検証ツールと、セットアップや調査のワークフローを備えています。
主な機能
- 01pre-commit 設定テンプレートの生成
- 02フック設定の検証
- 03複数言語のフック管理
- 04セットアップとトラブルシューティング
- 05フォーマット、リンティング、セキュリティスキャン
活用シーン
- 01新規プロジェクトへの Git フック導入
- 02Terraform 検証フックの追加
- 03シークレット検出スキャンの追加
- 04失敗したコードチェックフックの調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill precommitインストール後、Claude Code で/precommitを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
ConfigurationGuide.mdHooksReference.mdQuickStartGuide.mdSecurityHooks.mdTools/HookGenerator.tsHookValidator.tsPreCommitManager.tspackage.jsonWorkflows/AddHooks.mdCIIntegration.mdCustomHook.mdSetup.mdTroubleshoot.md詳細
PreCommit
pre-commit フックを管理するための包括的なスキルです。複数の言語に対応した pre-commit フック管理フレームワークであり、コード品質のチェック、フォーマット、Lint、セキュリティスキャンを自動化します。
クイックリファレンス
| コマンド | 説明 |
|---|---|
pre-commit install | Git フックをインストール |
pre-commit run --all-files | すべてのファイルですべてのフックを実行 |
pre-commit autoupdate | フックを最新バージョンに更新 |
pre-commit run <hook-id> | 指定したフックを実行 |
ワークフローの振り分け
| ワークフロー | トリガー | ファイル |
|---|---|---|
| Setup | 「pre-commit をセットアップ」、「フックを初期化」、「設定を作成」 | Workflows/Setup.md |
| AddHooks | 「フックを追加」、「Lint を追加」、「フォーマッターを追加」、「セキュリティを追加」 | Workflows/AddHooks.md |
| Troubleshoot | 「pre-commit を修正」、「フックが失敗」、「フックをデバッグ」 | Workflows/Troubleshoot.md |
| CIIntegration | 「CI パイプライン」、「GitHub Actions」、「GitLab CI」 | Workflows/CIIntegration.md |
| CustomHook | 「カスタムフックを作成」、「ローカルフック」、「フックを記述」 | Workflows/CustomHook.md |
ドキュメント
| ドキュメント | 目的 |
|---|---|
QuickStartGuide.md | インストールと初回セットアップ |
HooksReference.md | 言語・用途別の包括的なフック一覧 |
ConfigurationGuide.md | 高度な設定オプション |
SecurityHooks.md | シークレットの検出とセキュリティスキャン |
ツール
| ツール | 目的 |
|---|---|
Tools/PreCommitManager.ts | pre-commit 設定を管理する CLI |
Tools/HookGenerator.ts | .pre-commit-config.yaml のテンプレートを生成 |
Tools/HookValidator.ts | フック設定を検証 |
例
例 1:新しいプロジェクトで pre-commit をセットアップ
User: "Setup pre-commit for my Python project"
→ Invokes Setup workflow
→ Creates .pre-commit-config.yaml with Python hooks (black, isort, flake8)
→ Runs pre-commit install
例 2:Terraform フックを追加
User: "Add Terraform validation hooks"
→ Invokes AddHooks workflow
→ Adds terraform_fmt, terraform_validate, terraform_docs hooks
→ Configures tflint and checkov integration
例 3:セキュリティスキャンを追加
User: "Add secret detection to pre-commit"
→ Invokes AddHooks workflow
→ Adds gitleaks, detect-secrets, trufflehog hooks
→ Configures appropriate exclusion patterns
例 4:失敗するフックをデバッグ
User: "My eslint pre-commit hook is failing"
→ Invokes Troubleshoot workflow
→ Checks hook configuration and dependencies
→ Provides fix recommendations
サポート対象のフックカテゴリ
- Python:black、isort、flake8、mypy、bandit、pyupgrade
- JavaScript/TypeScript:prettier、eslint、biome
- インフラストラクチャ:terraform、terragrunt、helm、kustomize
- Kubernetes:kubeconform、kubeval、checkov
- セキュリティ:gitleaks、detect-secrets、trufflehog、trivy
- 一般:yamllint、jsonlint、shellcheck、markdownlint
コメント
Markdown 対応