skills/laurigates/claude-plugins/pre-commit-standards

pre-commit-standards

Installation
SKILL.md

Pre-commit Standards

When to Use This Skill

Use this skill when... Use configure-pre-commit instead when...
You need the canonical hook list, pinned versions, and conventional-commit conventions You want to audit or install pre-commit hooks for a project end-to-end as an interactive workflow
You are checking whether a .pre-commit-config.yaml matches the documented standard You want runtime detection of project type (frontend, infra, python) before choosing hook sets
Another skill needs to cite the standard hook versions or rule set The user asked you to actually create or repair pre-commit configuration

Version: 2025.1

Standard pre-commit configuration for repository compliance.

Standard Versions (2025.1)

Hook Version Purpose
pre-commit-hooks v5.0.0 Core hooks (trailing-whitespace, check-yaml, etc.)
conventional-pre-commit v4.3.0 Conventional commit message validation
biome v0.4.0 Code formatting and linting (JS, TS, JSON)
gruntwork pre-commit v0.1.29 helmlint, tflint (infrastructure only)
actionlint v1.7.7 GitHub Actions validation (infrastructure only)
helm-docs v1.14.2 Helm documentation (infrastructure only)
gitleaks v8.22.1 Secret scanning (recommended)

Project Type Configurations

Frontend App (Vue/React)

Required hooks for frontend applications:

default_install_hook_types:
  - pre-commit
  - commit-msg

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.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.3.0
    hooks:
      - id: conventional-pre-commit
        stages: [commit-msg]

  - repo: https://github.com/biomejs/pre-commit
    rev: v0.4.0
    hooks:
      - id: biome-check
        additional_dependencies: ["@biomejs/biome@1.9.4"]

  # Optional: If project has Helm charts
  - repo: https://github.com/gruntwork-io/pre-commit
    rev: v0.1.29
    hooks:
      - id: helmlint
        files: ^helm/

Infrastructure Repository

Required hooks for infrastructure (Terraform, Helm, ArgoCD):

default_install_hook_types:
  - pre-commit
  - commit-msg

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.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.3.0
    hooks:
      - id: conventional-pre-commit
        stages: [commit-msg]

  - repo: https://github.com/gruntwork-io/pre-commit
    rev: v0.1.29
    hooks:
      - id: tflint
      - id: helmlint

  - repo: https://github.com/rhysd/actionlint
    rev: v1.7.7
    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.22.1
    hooks:
      - id: gitleaks

Python Service

Required hooks for Python projects:

default_install_hook_types:
  - pre-commit
  - commit-msg

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.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.3.0
    hooks:
      - id: conventional-pre-commit
        stages: [commit-msg]

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.4
    hooks:
      - id: ruff
        args: [--fix]
      - id: ruff-format

  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.22.1
    hooks:
      - id: gitleaks

Compliance Checking

Required Base Hooks (All Projects)

Every repository MUST have these hooks:

  1. pre-commit-hooks (v5.0.0+)

    • trailing-whitespace
    • end-of-file-fixer
    • check-yaml
    • check-json
    • check-merge-conflict
    • check-added-large-files
  2. conventional-pre-commit (v4.3.0+)

    • conventional-pre-commit in commit-msg stage

Status Levels

Status Meaning
PASS Hook present with compliant version
WARN Hook present but version outdated
FAIL Required hook missing
SKIP Hook not applicable for project type

Version Comparison

When checking versions:

  • Exact match or newer: PASS
  • Older by patch version: WARN (functional but should update)
  • Missing entirely: FAIL (must add)

Exclusion Patterns

Frontend Apps

Exclude Kubernetes/Helm templates from YAML/prettier checks:

exclude: ^(helm/templates/|skaffold/|k8s/).*\.ya?ml$

Infrastructure

Exclude ArgoCD and Helm templates:

exclude: argocd/.*templates/|helm/[^/]+/templates/

Python

No special exclusions needed for standard Python projects.

Installation

After configuring .pre-commit-config.yaml:

pre-commit install
pre-commit install --hook-type commit-msg

Or simply:

pre-commit install --install-hooks

Updating

To update all hooks to latest versions:

pre-commit autoupdate

Then verify versions match project standards.

Weekly Installs
66
GitHub Stars
29
First Seen
5 days ago