mcpField
C
configure-pre-commit

configure-pre-commit

github.com/laurigatesテスト・品質5958 回インストール1 日前に更新
リポジトリ

configure-pre-commit について

プロジェクト標準に沿って pre-commit フックを設定、検証するスキルです。プロジェクト種別を判定し、フックの設定とバージョンを確認して、設定ファイルの作成や更新、フックのインストールを行えます。

主な機能

  1. 01フロントエンド、インフラ、Python の判定
  2. 02設定ファイルとフックのバージョン確認
  3. 03プロジェクト種別に応じたフックの提案
  4. 04フック設定の作成と更新
  5. 05変更後のフックインストール

活用シーン

  1. 01プロジェクトへの pre-commit フック導入
  2. 02設定済みフックの標準準拠状況の監査
  3. 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:プロジェクトの種類を検出する
  1. .project-standards.yaml が存在する場合、project_type フィールドを読み取ります
  2. 見つからない場合は、自動検出します。
    • infrastructure:terraform/、helm/、argocd/、または *.tf ファイルがある
    • frontend:vue/react 依存関係を含む package.json がある
    • python:pyproject.toml または requirements.txt がある
  3. --type フラグが指定されている場合は、その値で上書きします
ステップ 2:設定ファイルを確認する
  1. .pre-commit-config.yaml がない場合:FAIL と報告し、テンプレートからの作成を提案します
  2. 存在する場合:設定を読み取り、解析します
ステップ 3:フックのバージョンを最新リリースと照合する

重要:古いフックとして指摘する前に、WebSearch または WebFetch を使って最新リリースを確認します。

  1. pre-commit-hooks:GitHub リリース
  2. conventional-pre-commit:GitHub リリース
  3. biome:GitHub リリース
  4. ruff-pre-commit:GitHub リリース
  5. gitleaks:GitHub リリース
ステップ 4:準拠状況を分析する

既存の設定を REFERENCE.md にあるプロジェクト標準と比較します。

必須の基本フック(すべてのプロジェクト):

  • pre-commit-hooks v5.0.0 以上。次の項目を含みます:trailing-whitespace、end-of-file-fixer、check-yaml、check-json、check-merge-conflict、check-added-large-files
  • conventional-pre-commit v4.3.0 以上。commit-msg ステージを含みます

フロントエンド固有:

  • biome(pre-commit)v0.4.0 以上
  • helm/ ディレクトリがある場合は helmlint

インフラストラクチャ固有:

  • tflint、helmlint(gruntwork v0.1.29 以上)
  • actionlint v1.7.7 以上
  • helm-docs v1.14.2 以上
  • gitleaks v8.22.1 以上

Python 固有:

  • ruff-pre-commit v0.8.4 以上(ruff、ruff-format)
  • gitleaks v8.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 フラグが設定されている場合、またはユーザーが確認した場合:

  1. 設定ファイルがない場合:検出されたプロジェクトタイプの標準テンプレートから作成します
  2. フックがない場合:標準バージョンの必須フックを追加します
  3. バージョンが古い場合:rev: の値を標準バージョンに更新します
  4. フックタイプがない場合: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 - 正式なフック一覧、固定バージョン、プロジェクトタイプごとの設定

コメント