# Pre-commit hooks configuration # Install: pip install pre-commit # Setup: pre-commit install # Run manually: pre-commit run --all-files repos: # Code validators (architecture, security, performance, audit) - repo: local hooks: - id: validate-architecture name: Validate Architecture Patterns entry: python scripts/validate/validate_architecture.py language: python pass_filenames: false always_run: true additional_dependencies: [pyyaml] verbose: true - id: validate-security name: Validate Security Patterns entry: python scripts/validate/validate_all.py --security language: python pass_filenames: false always_run: true additional_dependencies: [pyyaml] verbose: true - id: validate-performance name: Validate Performance Patterns entry: python scripts/validate/validate_all.py --performance language: python pass_filenames: false always_run: true additional_dependencies: [pyyaml] verbose: true - id: validate-audit name: Validate Audit Patterns entry: python scripts/validate/validate_all.py --audit language: python pass_filenames: false always_run: true additional_dependencies: [pyyaml] verbose: true # Python code quality - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml exclude: mkdocs.yml # Uses Python tags (!!python/name) unsupported by basic YAML checker - id: check-added-large-files args: ['--maxkb=1000'] - id: check-json - id: check-merge-conflict - id: debug-statements # Ruff - linting and import sorting (replaces black + isort) - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.8.4 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix]