pre-commit-standards について
リポジトリの準拠確認に使う pre-commit のフック、バージョン、規約をまとめたリファレンススキルです。既存設定の確認や他のスキルへの規則提示に使い、対話形式での導入や修復は行いません。
主な機能
- 01標準フックと固定バージョンの一覧
- 02プロジェクト種別ごとの設定
- 03必須フックとバージョン状態の確認
- 04種別に応じた除外ルール
- 05インストールと更新コマンドの説明
活用シーン
- 01.pre-commit-config.yaml の確認
- 02不足または古いフックの特定
- 03他のスキルで標準バージョンを参照
- 04プロジェクト種別に応じた除外設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill pre-commit-standardsインストール後、Claude Code で/pre-commit-standardsを入力して読み込まれたか確認します。
詳細
pre-commit 標準
このスキルを使用する場面
| このスキルを使用する場面... | 代わりに configure-pre-commit を使用する場面... |
|---|---|
| 標準のフック一覧、固定バージョン、Conventional Commits の規約を確認する必要がある場合 | 対話形式のワークフローで、プロジェクトの pre-commit フックを最初から最後まで監査またはインストールしたい場合 |
.pre-commit-config.yaml が文書化された標準に準拠しているか確認する場合 | フックセットを選択する前に、プロジェクトの種類(フロントエンド、インフラ、Python)を実行時に検出したい場合 |
| 別のスキルで標準フックのバージョンやルールセットを参照する必要がある場合 | ユーザーから pre-commit の設定を実際に作成または修復するよう依頼された場合 |
バージョン:2025.1
リポジトリの準拠性を確保するための標準 pre-commit 設定です。
標準バージョン(2025.1)
| フック | バージョン | 目的 |
|---|---|---|
| pre-commit-hooks | v6.0.0 | 基本フック(trailing-whitespace、check-yaml など) |
| conventional-pre-commit | v4.4.0 | Conventional Commits のコミットメッセージ検証 |
| biome | v2.4.16 | コードのフォーマットと lint(JS、TS、JSON) |
| gruntwork pre-commit | v0.1.30 | helmlint、tflint(インフラのみ) |
| actionlint | v1.7.12 | GitHub Actions の検証(インフラのみ) |
| helm-docs | v1.14.2 | Helm ドキュメント(インフラのみ) |
| gitleaks | v8.30.1 | シークレットのスキャン(推奨) |
プロジェクトの種類別設定
フロントエンドアプリ(Vue/React)
フロントエンドアプリケーションに必須のフック:
default_install_hook_types:
- pre-commit
- commit-msg
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: ^(helm/templates/|skaffold/|k8s/).*\.ya?ml$
- id: check-json
exclude: tsconfig\.json$
- id: check-added-large-files
args: ['--maxkb=1000']
- id: check-merge-conflict
- id: detect-private-key
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v4.4.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
- repo: https://github.com/biomejs/pre-commit
rev: v2.4.16
hooks:
- id: biome-check
additional_dependencies: ["@biomejs/[email protected]"]
# Optional: If project has Helm charts
- repo: https://github.com/gruntwork-io/pre-commit
rev: v0.1.30
hooks:
- id: helmlint
files: ^helm/
インフラストラクチャリポジトリ
インフラストラクチャ(Terraform、Helm、ArgoCD)に必須のフック:
default_install_hook_types:
- pre-commit
- commit-msg
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
args: [--allow-multiple-documents]
exclude: argocd/.*templates/|helm/[^/]+/templates/
- id: check-json
- id: check-merge-conflict
- id: check-symlinks
- id: check-toml
- id: check-added-large-files
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v4.4.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
- repo: https://github.com/gruntwork-io/pre-commit
rev: v0.1.30
hooks:
- id: tflint
- id: helmlint
- repo: https://github.com/rhysd/actionlint
rev: v1.7.12
hooks:
- id: actionlint
- repo: https://github.com/norwoodj/helm-docs
rev: v1.14.2
hooks:
- id: helm-docs
args:
- --chart-search-root=helm
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.1
hooks:
- id: gitleaks
Python サービス
Python プロジェクトに必須のフック:
default_install_hook_types:
- pre-commit
- commit-msg
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-json
- id: check-toml
- id: check-added-large-files
- id: check-merge-conflict
- id: detect-private-key
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v4.4.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.15
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.1
hooks:
- id: gitleaks
準拠状況の確認
必須の基本フック(すべてのプロジェクト)
すべてのリポジトリに次のフックが必要です。
-
pre-commit-hooks(v6.0.0+)
trailing-whitespaceend-of-file-fixercheck-yamlcheck-jsoncheck-merge-conflictcheck-added-large-files
-
conventional-pre-commit(v4.4.0+)
commit-msgステージのconventional-pre-commit
ステータスレベル
| ステータス | 意味 |
|---|---|
| PASS | 準拠バージョンのフックが存在します |
| WARN | フックは存在しますが、バージョンが古くなっています |
| FAIL | 必須フックがありません |
| SKIP | プロジェクトの種類に該当しないフックです |
バージョンの比較
バージョンを確認する際は、次のように判定します。
- 完全一致またはそれより新しい場合:PASS
- パッチバージョンが古い場合:WARN(機能しますが、更新が必要です)
- まったく存在しない場合:FAIL(追加が必要です)
除外パターン
フロントエンドアプリ
YAML/prettier のチェック対象から Kubernetes/Helm テンプレートを除外します。
exclude: ^(helm/templates/|skaffold/|k8s/).*\.ya?ml$
インフラストラクチャ
ArgoCD と Helm のテンプレートを除外します。
exclude: argocd/.*templates/|helm/[^/]+/templates/
Python
標準的な Python プロジェクトでは、特別な除外は必要ありません。
インストール
.pre-commit-config.yaml の設定後:
pre-commit install
pre-commit install --hook-type commit-msg
または、次のように実行します。
pre-commit install --install-hooks
更新
すべてのフックを最新バージョンに更新するには:
pre-commit autoupdate
その後、バージョンがプロジェクトの標準に一致していることを確認してください。
コメント
Markdown 対応