Files
claude-plugins-official/plugins/claude-code-setup/skills/claude-automation-recommender/references/hooks-patterns.md

4.0 KiB

Hooks Recommendations

Hooks automatically run commands in response to Claude's tool usage. They're ideal for enforcement and automation that should happen consistently.

Auto-Formatting Hooks

Prettier (JavaScript/TypeScript)

Detection File Exists
.prettierrc, .prettierrc.json, prettier.config.js

Recommend: PostToolUse hook on Edit/Write to auto-format Value: Code stays formatted without thinking about it

ESLint (JavaScript/TypeScript)

Detection File Exists
.eslintrc, .eslintrc.json, eslint.config.js

Recommend: PostToolUse hook on Edit/Write to auto-fix Value: Lint errors fixed automatically

Black/isort (Python)

Detection File Exists
pyproject.toml with black/isort, .black, setup.cfg

Recommend: PostToolUse hook to format Python files Value: Consistent Python formatting

Ruff (Python - Modern)

Detection File Exists
ruff.toml, pyproject.toml with [tool.ruff]

Recommend: PostToolUse hook for lint + format Value: Fast, comprehensive Python linting

gofmt (Go)

Detection File Exists
go.mod

Recommend: PostToolUse hook to run gofmt Value: Standard Go formatting

rustfmt (Rust)

Detection File Exists
Cargo.toml

Recommend: PostToolUse hook to run rustfmt Value: Standard Rust formatting


Type Checking Hooks

TypeScript

Detection File Exists
tsconfig.json

Recommend: PostToolUse hook to run tsc --noEmit Value: Catch type errors immediately

mypy/pyright (Python)

Detection File Exists
mypy.ini, pyrightconfig.json, pyproject.toml with mypy

Recommend: PostToolUse hook for type checking Value: Catch type errors in Python


Protection Hooks

Block Sensitive File Edits

Detection Presence Of
.env, .env.local, .env.production Environment files
credentials.json, secrets.yaml Secret files
.git/ directory Git internals

Recommend: PreToolUse hook that blocks Edit/Write to these paths Value: Prevent accidental secret exposure or git corruption

Block Lock File Edits

Detection Presence Of
package-lock.json, yarn.lock, pnpm-lock.yaml JS lock files
Cargo.lock, poetry.lock, Pipfile.lock Other lock files

Recommend: PreToolUse hook that blocks direct edits Value: Lock files should only change via package manager


Test Runner Hooks

Jest (JavaScript/TypeScript)

Detection Presence Of
jest.config.js, jest in package.json Jest configured
__tests__/, *.test.ts, *.spec.ts Test files exist

Recommend: PostToolUse hook to run related tests after edit Value: Immediate test feedback on changes

pytest (Python)

Detection Presence Of
pytest.ini, pyproject.toml with pytest pytest configured
tests/, test_*.py Test files exist

Recommend: PostToolUse hook to run pytest on changed files Value: Immediate test feedback


Quick Reference: Detection → Recommendation

If You See Recommend This Hook
Prettier config Auto-format on Edit/Write
ESLint config Auto-lint on Edit/Write
Ruff/Black config Auto-format Python
tsconfig.json Type-check on Edit
Test directory Run related tests on Edit
.env files Block .env edits
Lock files Block lock file edits
Go project gofmt on Edit
Rust project rustfmt on Edit

Hook Placement

Hooks go in .claude/settings.json:

.claude/
└── settings.json  ← Hook configurations here

Recommend creating the .claude/ directory if it doesn't exist.