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.

소스 정보

저장소
laurigates/claude-plugins
최근 소스 활동
2026년 9월 24일 08:58
감지된 SKILL.md 언어
영어
스타
60
포크
6

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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
GitHub에서 보기