Skip to main content

configure-pre-commit

Set up .pre-commit-config.yaml: hooks for the project type at current revs. Use when installing pre-commit in a repo, auditing stale hook revs, or migrating to pre-commit.

Quellinformationen

Repository
laurigates/claude-plugins
Letzte Quellaktivität
24. September 2026 um 08:58
Erkannte Sprache von SKILL.md
Englisch
Sterne
60
Forks
6

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
created
2025-12-16T00:00:00.000Z
modified
2026-09-23T00:00:00.000Z
reviewed
2026-07-05T00:00:00.000Z
description
Set up .pre-commit-config.yaml: hooks for the project type at current revs. Use when installing pre-commit in a repo, auditing stale hook revs, or migrating to pre-commit.
allowed-tools
Glob, Grep, Read, Write, Edit, Bash, AskUserQuestion, TodoWrite, WebSearch, WebFetch
args
[--check-only] [--fix] [--type <frontend|infrastructure|python>]
argument-hint
[--check-only] [--fix] [--type <frontend|infrastructure|python>]
name
configure-pre-commit
# /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 hooks | Project doesn't use pre-commit framework (use git hooks directly) | | Checking compliance with project standards | Just running hooks manually (use `pre-commit run` command) | | Installing project-type-specific hooks | Hooks are already properly configured | | Migrating to pre-commit framework | Simple project with no quality checks needed | | Updating hook configurations for detected tools | Need 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](https://github.com/pre-commit/pre-commit-hooks/releases) 2. **conventional-pre-commit**: [GitHub releases](https://github.com/compilerla/conventional-pre-commit/releases) 3. **biome**: [GitHub releases](https://github.com/biomejs/biome/releases) 4. **ruff-pre-commit**: [GitHub releases](https://github.com/astral-sh/ruff-pre-commit/releases) 5. **gitleaks**: [GitHub releases](https://github.com/gitleaks/gitleaks/releases) ### Step 4: Analyze compliance Compare existing configuration against the project standards in [REFERENCE.md](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`: ```yaml standards_version: "2025.1" project_type: "[detected]" last_configured: "[timestamp]" components: pre-commit: "2025.1" ``` ## Agentic Optimizations | Context | Command | |---------|---------| | Check if pre-commit installed | `command -v pre-commit >/dev/null 2>&1 && echo "installed" \|\| echo "missing"` | | Validate config syntax | `pre-commit validate-config .pre-commit-config.yaml 2>&1` | | List configured hooks | `grep -E '^\s+- id:' .pre-commit-config.yaml 2>/dev/null \| sed 's/.*id:[[:space:]]*//'` | | Check hook versions | `pre-commit autoupdate --freeze 2>&1` | | Quick compliance check | `/configure:pre-commit --check-only` | | Auto-fix configuration | `/configure:pre-commit --fix` | ## Flags | Flag | Description | |------|-------------| | `--check-only` | Report status without offering fixes | | `--fix` | Apply 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](REFERENCE.md) - Canonical hook list, pinned versions, per-project-type configurations
Auf GitHub ansehen