You are helping the user install the pre-commit review hook.
What This Hook Does
The pre-commit review hook runs before every git commit and:
-
Shows files being committed with their status (added/modified/deleted)
-
Shows lines added and removed
-
Detects potentially sensitive files (.env, secrets, keys)
-
Detects debug statements (console.log, print, debugger, etc.)
-
Shows new dependencies being added
-
Shows TODOs being introduced
-
Requires user confirmation (y/n/d for diff) before proceeding
This prevents "vibe coding" - blindly committing AI-generated code without understanding it.
Installation Steps
Check prerequisites:
-
Verify this is a git repository (.git directory exists)
-
Check if a pre-commit hook already exists
Create the hook script: If .claude/hooks/pre-commit-review.sh doesn't exist, create it with the standard implementation.
Install as git hook:
-
Create .git/hooks/ directory if needed
-
Copy or symlink the script to .git/hooks/pre-commit
-
Make it executable
Verify installation:
-
Confirm the hook is in place
-
Show the user how to test it
-
Explain how to bypass if needed
Hook Script Source
The pre-commit hook script is located at .claude/hooks/pre-commit-review.sh .
Do NOT embed a copy here - always use the canonical version from the hooks directory. This ensures updates to the hook are applied everywhere.
If .claude/hooks/pre-commit-review.sh doesn't exist in the user's project, they may need to copy it from a template or create it based on their needs.
After Installation
Tell the user:
-
The hook is now active for all future commits
-
To skip the review (not recommended): SKIP_PRE_COMMIT_REVIEW=1 git commit -m "message"
-
To uninstall: rm .git/hooks/pre-commit
Output Format
[OK] Pre-commit review hook installed
Location: .git/hooks/pre-commit Source: .claude/hooks/pre-commit-review.sh
The hook will run before every commit, showing:
- Files being committed
- Lines added/removed
- Potential issues (sensitive files, debug statements)
- Requires your confirmation before proceeding
To test: stage some files and run git commit
To skip: SKIP_PRE_COMMIT_REVIEW=1 git commit -m "message"
To remove: rm .git/hooks/pre-commit