mcpField
C
configure-pre-commit

configure-pre-commit

github.com/laurigatesTesting & quality5958 installsUpdated 1d ago
Repository

About configure-pre-commit

A skill for setting up or validating pre-commit hooks against project standards. It detects project type, checks hook configuration and versions, and can create or update the configuration and install hooks.

Key features

  1. 01Detects frontend, infrastructure, and Python projects
  2. 02Checks pre-commit configuration and hook versions
  3. 03Recommends hooks by project type
  4. 04Creates or updates hook configuration
  5. 05Installs hooks after changes

Use cases

  1. 01Set up pre-commit hooks for a project
  2. 02Audit configured hooks against project standards
  3. 03Adapt hook sets after a project type change

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-pre-commit

After installing, type/configure-pre-commitin Claude Code to confirm it loaded.

Bundled filesREFERENCE.md

Details

From the project README

/configure:pre-commit

Check and configure pre-commit hooks against project standards.

When to Use This Skill

Use this skill when...Use another approach when...
Setting up or validating pre-commit hooksProject doesn't use pre-commit framework (use git hooks directly)
Checking compliance with project standardsJust running hooks manually (use pre-commit run command)
Installing project-type-specific hooksHooks are already properly configured
Migrating to pre-commit frameworkSimple project with no quality checks needed
Updating hook configurations for detected toolsNeed to disable pre-commit entirely

Context

  • Pre-commit config: !find . -maxdepth 1 -name \'.pre-commit-config.yaml\'
  • Project standards: !find . -maxdepth 1 -name \'.project-standards.yaml\'
  • Project type in standards: !find . -maxdepth 1 -name '.project-standards.yaml' -exec grep -m1 "^project_type:" {} +
  • Has terraform: !find . -maxdepth 2 \( -name '*.tf' -o -type d -name 'terraform' \) -print -quit
  • Has helm: !find . -maxdepth 2 -type d -name 'helm' -print -quit
  • Has package.json: !find . -maxdepth 1 -name \'package.json\'
  • Has pyproject.toml: !find . -maxdepth 1 -name \'pyproject.toml\'

Parameters

Parse from $ARGUMENTS:

  • --check-only: Report status without offering fixes
  • --fix: Apply all fixes automatically without prompting
  • --type <type>: Override project type detection (frontend, infrastructure, python)

Execution

Execute this pre-commit compliance check:

Step 1: Detect project type
  1. Read .project-standards.yaml for project_type field if it exists
  2. If not found, auto-detect:
    • infrastructure: Has terraform/, helm/, argocd/, or *.tf files
    • frontend: Has package.json with vue/react dependencies
    • python: Has pyproject.toml or requirements.txt
  3. Apply --type flag override if provided
Step 2: Check configuration file
  1. If .pre-commit-config.yaml is missing: report FAIL, offer to create from template
  2. If it exists: read and parse the configuration
Step 3: Verify hook versions against latest releases

CRITICAL: Before flagging outdated hooks, verify latest releases using WebSearch or WebFetch:

  1. pre-commit-hooks: GitHub releases
  2. conventional-pre-commit: GitHub releases
  3. biome: GitHub releases
  4. ruff-pre-commit: GitHub releases
  5. gitleaks: GitHub releases
Step 4: Analyze compliance

Compare existing configuration against the project standards in REFERENCE.md:

Required Base Hooks (All Projects):

  • pre-commit-hooks v5.0.0+ with: trailing-whitespace, end-of-file-fixer, check-yaml, check-json, check-merge-conflict, check-added-large-files
  • conventional-pre-commit v4.3.0+ with commit-msg stage

Frontend-specific:

  • biome (pre-commit) v0.4.0+
  • helmlint (if helm/ directory exists)

Infrastructure-specific:

  • tflint, helmlint (gruntwork v0.1.29+)
  • actionlint v1.7.7+
  • helm-docs v1.14.2+
  • gitleaks v8.22.1+

Python-specific:

  • ruff-pre-commit v0.8.4+ (ruff, ruff-format)
  • gitleaks v8.22.1+
Step 5: Generate compliance report

Print a report in this format:

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
Step 6: Apply fixes (if requested)

If --fix flag is set or user confirms:

  1. Missing config file: Create from standard template for detected project type
  2. Missing hooks: Add required hooks with standard versions
  3. Outdated versions: Update rev: values to standard versions
  4. Missing hook types: Add default_install_hook_types with pre-commit and commit-msg

After modification, run pre-commit install --install-hooks to install hooks.

Step 7: Update standards tracking

Update or create .project-standards.yaml:

standards_version: "2025.1"
project_type: "[detected]"
last_configured: "[timestamp]"
components:
  pre-commit: "2025.1"

Agentic Optimizations

ContextCommand
Check if pre-commit installedcommand -v pre-commit >/dev/null 2>&1 && echo "installed" || echo "missing"
Validate config syntaxpre-commit validate-config .pre-commit-config.yaml 2>&1
List configured hooksgrep -E '^\s+- id:' .pre-commit-config.yaml 2>/dev/null | sed 's/.*id:[[:space:]]*//'
Check hook versionspre-commit autoupdate --freeze 2>&1
Quick compliance check/configure:pre-commit --check-only
Auto-fix configuration/configure:pre-commit --fix

Flags

FlagDescription
--check-onlyReport status without offering fixes
--fixApply all fixes automatically without prompting
--type <type>Override project type detection (frontend, infrastructure, python)

Error Handling

  • No git repository: Warn but continue (pre-commit still useful)
  • Invalid YAML: Report parse error, offer to replace with template
  • Unknown hook repos: Skip (do not remove custom hooks)
  • Permission errors: Report and suggest manual fix

See Also

  • /configure:all - Run all compliance checks
  • /configure:status - Quick compliance overview
  • REFERENCE.md - Canonical hook list, pinned versions, per-project-type configurations

Comments

Markdown supported