This repo uses hk for pre-commit and lint checks.
Configuration lives in hk.pkl (Pkl language).
Hooks auto-install via the mise postinstall hook. You can also install manually:
hk install --mise
# Run all checks
hk check -a
# Fix auto-fixable issues
hk fix -a
| Check | Files | What it does |
nixfmt | **/*.nix | Format Nix files |
shfmt | **/*.sh | Format shell scripts |
pkl_format | **/*.pkl | Format Pkl files |
tombi_format | **/*.toml | Format TOML files |
actionlint | .github/workflows/*.yml | Lint GitHub Actions |
shellcheck | **/*.sh | Lint shell scripts |
mise-fmt | mise.toml | Format the mise config |
mise | mise.toml | Validate mise task definitions |
| Check | What it does |
detect-private-key | Catch accidentally committed private keys |
check-merge-conflict | Detect merge conflict markers |
check-added-large-files | Prevent large file commits |
check-byte-order-marker | Detect UTF-8 BOM |
check-case-conflict | Detect case-only filename conflicts |
check-symlinks | Validate symlink targets exist |
| Check | What it does |
trailing-whitespace | Remove trailing whitespace |
mixed-line-ending | Enforce consistent line endings |
newlines | Ensure files end with newline |