default_install_hook_types:
- pre-commit
- commit-msg
default_stages:
- pre-commit
exclude: ^target/|\.alef/
repos:
- repo: local
hooks:
- id: no-project-special-casing
name: no project-name special casing
entry: hooks/check_project_mentions.py
language: python
types:
- text
- id: no-backend-local-naming-helpers
name: no backend-local naming helpers
entry: hooks/check_backend_naming_helpers.py
language: python
pass_filenames: false
- repo: https://github.com/Goldziher/gitfluff
rev: v0.8.0
hooks:
- id: gitfluff-lint
args:
- --write
stages:
- commit-msg
- repo: https://github.com/kreuzberg-dev/pre-commit-hooks
rev: v2.1.10
hooks:
- id: ai-rulez-generate
- id: trailing-whitespace
- id: end-of-file-fixer
exclude: ^src/backends/php/templates/php_file_header\.jinja$
- id: check-merge-conflict
- id: check-added-large-files
- id: detect-private-key
- id: check-case-conflict
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
exclude: \.(jinja|rs)$
- id: mixed-line-ending
- id: typos
args:
- --force-exclude
- id: check-json
- id: check-yaml
args:
- --allow-multiple-documents
- --unsafe
- id: check-toml
- id: actionlint
- id: gh-actions-updater
- id: shfmt
args:
- -w
- -i
- "2"
- id: shellcheck
- id: rumdl-fmt
- id: markdownlint-rumdl-strict
exclude: ^(\.ai-rulez/|CHANGELOG\.md|README\.md|docs/design/|skills/alef/)
- id: textlint
exclude: ^docs/design/
- id: cargo-fmt
args:
- --all
- id: cargo-clippy
args:
- --fix
- --allow-dirty
- --allow-staged
- --all-targets
- --
- -D
- warnings
- -A
- clippy::needless_update
- id: cargo-sort
- id: cargo-machete
- id: cargo-deny
args:
- check
- id: rustdoc-lint
- id: rust-max-lines
args:
- --max=1000
- id: ruff
files: ^hooks/.*\.py$
- id: ruff-format
files: ^hooks/.*\.py$
- id: mypy
files: ^hooks/.*\.py$
- id: oxfmt