configure-pre-commit について
プロジェクト標準に沿って pre-commit フックを設定、検証するスキルです。プロジェクト種別を判定し、フックの設定とバージョンを確認して、設定ファイルの作成や更新、フックのインストールを行えます。
主な機能
- 01フロントエンド、インフラ、Python の判定
- 02設定ファイルとフックのバージョン確認
- 03プロジェクト種別に応じたフックの提案
- 04フック設定の作成と更新
- 05変更後のフックインストール
活用シーン
- 01プロジェクトへの pre-commit フック導入
- 02設定済みフックの標準準拠状況の監査
- 03プロジェクト種別変更後のフック構成の調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-pre-commitインストール後、Claude Code で/configure-pre-commitを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
/configure:pre-commit
プロジェクトの標準に照らして、pre-commit フックを確認および設定します。
このスキルを使用するタイミング
| 次のような場合にこのスキルを使用します… | 次のような場合は別の方法を使用します… |
|---|---|
| pre-commit フックを設定または検証する | プロジェクトで pre-commit フレームワークを使用していない(git フックを直接使用します) |
| プロジェクト標準への準拠を確認する | フックを手動で実行するだけの場合(pre-commit run コマンドを使用します) |
| プロジェクトの種類に応じたフックをインストールする | フックがすでに適切に設定されている |
| pre-commit フレームワークに移行する | 品質チェックが不要なシンプルなプロジェクト |
| 検出されたツールに合わせてフック設定を更新する | pre-commit を完全に無効にする必要がある |
コンテキスト
- Pre-commit 設定: !
find . -maxdepth 1 -name \'.pre-commit-config.yaml\' - プロジェクト標準: !
find . -maxdepth 1 -name \'.project-standards.yaml\' - 標準に記載されたプロジェクトの種類: !
find . -maxdepth 1 -name '.project-standards.yaml' -exec grep -m1 "^project_type:" {} + - Terraform の有無: !
find . -maxdepth 2 \( -name '*.tf' -o -type d -name 'terraform' \) -print -quit - Helm の有無: !
find . -maxdepth 2 -type d -name 'helm' -print -quit - package.json の有無: !
find . -maxdepth 1 -name \'package.json\' - pyproject.toml の有無: !
find . -maxdepth 1 -name \'pyproject.toml\'
パラメーター
$ARGUMENTS から解析します。
--check-only:修正を提案せずにステータスを報告します--fix:確認を求めず、すべての修正を自動的に適用します--type <type>:プロジェクトの種類の検出を上書きします(frontend、infrastructure、python)
実行
次の pre-commit 準拠チェックを実行します。
ステップ 1:プロジェクトの種類を検出する
.project-standards.yamlが存在する場合、project_typeフィールドを読み取ります- 見つからない場合は、自動検出します。
- infrastructure:
terraform/、helm/、argocd/、または*.tfファイルがある - frontend:vue/react 依存関係を含む
package.jsonがある - python:
pyproject.tomlまたはrequirements.txtがある
- infrastructure:
--typeフラグが指定されている場合は、その値で上書きします
ステップ 2:設定ファイルを確認する
.pre-commit-config.yamlがない場合:FAIL と報告し、テンプレートからの作成を提案します- 存在する場合:設定を読み取り、解析します
ステップ 3:フックのバージョンを最新リリースと照合する
重要:古いフックとして指摘する前に、WebSearch または WebFetch を使って最新リリースを確認します。
- pre-commit-hooks:GitHub リリース
- conventional-pre-commit:GitHub リリース
- biome:GitHub リリース
- ruff-pre-commit:GitHub リリース
- gitleaks:GitHub リリース
ステップ 4:準拠状況を分析する
既存の設定を REFERENCE.md にあるプロジェクト標準と比較します。
必須の基本フック(すべてのプロジェクト):
pre-commit-hooksv5.0.0 以上。次の項目を含みます:trailing-whitespace、end-of-file-fixer、check-yaml、check-json、check-merge-conflict、check-added-large-filesconventional-pre-commitv4.3.0 以上。commit-msg ステージを含みます
フロントエンド固有:
biome(pre-commit)v0.4.0 以上helm/ディレクトリがある場合はhelmlint
インフラストラクチャ固有:
tflint、helmlint(gruntwork v0.1.29 以上)actionlintv1.7.7 以上helm-docsv1.14.2 以上gitleaksv8.22.1 以上
Python 固有:
ruff-pre-commitv0.8.4 以上(ruff、ruff-format)gitleaksv8.22.1 以上
ステップ 5:準拠レポートを作成する
次の形式でレポートを出力します。
Pre-commit Compliance Report
================================
Project Type: [type] ([detected|override])
Config File: .pre-commit-config.yaml ([found|missing])
Hook Status:
[hook-name] [version] [PASS|WARN|FAIL] ([details])
Outdated Hooks:
- [hook]: [current] -> [standard]
Overall: [N] issues found
ステップ 6:修正を適用する(要求された場合)
--fix フラグが設定されている場合、またはユーザーが確認した場合:
- 設定ファイルがない場合:検出されたプロジェクトタイプの標準テンプレートから作成します
- フックがない場合:標準バージョンの必須フックを追加します
- バージョンが古い場合:
rev:の値を標準バージョンに更新します - フックタイプがない場合:
pre-commitとcommit-msgを指定したdefault_install_hook_typesを追加します
変更後、pre-commit install --install-hooks を実行してフックをインストールします。
ステップ 7:標準の追跡情報を更新する
.project-standards.yaml を更新または作成します:
standards_version: "2025.1"
project_type: "[detected]"
last_configured: "[timestamp]"
components:
pre-commit: "2025.1"
エージェント向け最適化
| コンテキスト | コマンド |
|---|---|
| pre-commit がインストールされているか確認 | command -v pre-commit >/dev/null 2>&1 && echo "installed" || echo "missing" |
| 設定構文を検証 | pre-commit validate-config .pre-commit-config.yaml 2>&1 |
| 設定済みフックを一覧表示 | grep -E '^\s+- id:' .pre-commit-config.yaml 2>/dev/null | sed 's/.*id:[[:space:]]*//' |
| フックのバージョンを確認 | pre-commit autoupdate --freeze 2>&1 |
| コンプライアンスを簡易チェック | /configure:pre-commit --check-only |
| 設定を自動修正 | /configure:pre-commit --fix |
フラグ
| フラグ | 説明 |
|---|---|
--check-only | 修正を提案せずにステータスを報告します |
--fix | 確認を求めずにすべての修正を自動で適用します |
--type <type> | プロジェクトタイプの検出結果を上書きします(frontend、infrastructure、python) |
エラー処理
- Git リポジトリがない場合:警告しますが、処理は続行します(pre-commit は引き続き有用です)
- YAML が無効な場合:解析エラーを報告し、テンプレートへの置き換えを提案します
- 不明なフックリポジトリ:スキップします(カスタムフックは削除しません)
- 権限エラー:エラーを報告し、手動での修正を提案します
関連項目
/configure:all- すべてのコンプライアンスチェックを実行します/configure:status- コンプライアンスの概要をすばやく確認します- REFERENCE.md - 正式なフック一覧、固定バージョン、プロジェクトタイプごとの設定
コメント
Markdown 対応